linux下的系统日志管理
1.systemd-journald.service日志采集查看服务
指令:#journalctl
配置文件:/etc/systemd/journald.conf
默认日志存放路径:/run/log/journal
日志在内存中重启会消失
常见使用:
#journalctl 查看所有日志信息
#journalctl -n 5 最新5条日志信息
#journalctl --since "2020-02-13 15:00" --until "2020-02-13 15:00" 查看指定时间段日志信息
#journalctl -o short 精简格式显示日志
-o verbose 详细显示全部字节
-o expert便于传输和备份的二进制格式显示
-o json js格式显示
#journalctl -p emerg 系统的严重问题日志(内核级别崩溃)
-p alert系统中立即要更改的信息
-p crit严重级别会导致系统软件不能正常工作
-p err程序报错
-p warning程序警告
-p notice重要信息的普通日志
-p info普通信息
-p debug程序排错信息
#journalctl -u sshd显示指定服务日志
#journalctl -o verbose 然后 **/关键字** 然后 #journalctl _PID=932 _COMM=sshd
#journalctl --disk-usage查看日志大小
#journalctl --vacuum-size=1G设定日志存放大小后自动删除
#journalctl --vacuum-time=1w日志在系统中最长存放时间
#journalctl -f日志监控
永久设定日志什么情况自动删除
#vim /etc/systemd/journald.conf
内容:SystemMaxUse系统日志存储最大容量
SystemMaxFileUse单个文件最大容量
RuntimeMaxUse内存中日志存储最大容量
RuntimeMaxfileUse内存中单个日志存储最大容量
2.systemd-journald.service永久存放日志
系统中默认日志存放在/run/log/journal
默认方式在系统重启后日志会被清理
要永久保存日志请完成以下操作:
#mkdir /var/log/journal
#chgrp systemd-journal /var/log/journal
#chmod g+s /var/log/journal
#systemctl restart systemd-journald
#ls /var/log/journal
3.rsyslog.service日志采集服务
配置文件:/etc/rsyslog.conf
日志存放路径:
/var/log/messages系统服务日志,常规信息,服务报错
/var/log/secure系统认证信息日志
/var/log/maillog系统邮件日志信息
/var/log/cron系统定时任务信息
/var/log/boot.log系统启动日志信息
(1)自定义日志采集策略
配置文件:#vim /etc/rsyslog.conf
内容:
日志类型.日志级别 日志存放路径
*.* /var/log/westos 所有类型的所有级别日志都放在westos下
*.*;authpriv.none /var/log/westos 除了系统认证外所有类型的所有级别都放在westos下
日志类型 | |
---|---|
auth | 用户认证 |
authpriv | 系统认证 |
cron | 时间任务 |
kern | 内核类型 |
邮件 | |
news | 系统更新信息 |
user | 用户程序 |
日志级别 | |
– | – |
debug | 程序排错信息 |
info | 普通信息 |
notice | 比较重要的注意信息 |
warning | 警告信息 |
err | 程序错误 |
crit | 严重的级别会导致系统软件无法正常工作 |
alert | 需要立即修改的信息 |
emerg | 内核级的崩溃信息 |
注意:修改完以后重启服务#systemctl restart rsyslog.service
(2)自定义日志采集格式
配置文件:#vim /etc/rsyslog.conf
内容:
对指定日志目录自定义采集格式
30 。$template WESTOS, "%FROMHOST-IP% %timegenerated% %FROMHOST-IP%
%syslogtag% %msg%\n"
*.*;authpriv.none /var/log/ westos;WESTOS
全部目录自定义采集格式
29.$ActionFileDefaultTemplate WESTOS
%FROMHOST-IP% | 日志产生主机ip |
---|---|
%HOSTNAME% | 日志产生主机 名称 |
%timegenerated% | 日志产生时间 |
%syslogtag% | 日志产生服务 |
%msg% | 日志内容 |
注意:修改完以后重启服务#systemctl restart rsyslog.service
(3)日志远程同步
配置文件:#vim /etc/rsyslog.conf
内容:
接收端(服务端)
rhel7
15 $ModLoad imudp ##打开日志接受插件
16 $UDPServerRun 514 ##指定插件使用接口
rhel8
module(load=“imudp”)
input(type=“imudp”port=“514”)
注意:udp和tcp都可以,但是udp传输速度快,但安全性不高。
修改完以后重启服务#systemctl restart rsyslog.service
关闭火墙#systemctl restart rsyslog
查询端口:
root@rhel7_node1 ~]# netstat -antlupe | grep rsyslog udp 0 0 0.0.0.0:514
0.0.0.0:* 0 67600 11115/ rsyslogd udp6 0 0 :::
514 :::* 0
67601 11115/rsyslogd
发送端(客服端)
*.* @172.25.254.11 把本机日志用udp的传输方式发送到172.25.254.11主机
注意:udp和tcp都可以@ 表示使用udp传输日志 @@ 表示使用tcp传输日志
修改完以后重启服务#systemctl restart rsyslog.service
关闭火墙#systemctl restart rsyslog
4.timedatectl系统时间工具
#timedatectl 显示系统时间信息
#timedatectl set-time "2020-02-13 10:41:55" ##设定系统时间
#timedatectl list-timezones ##显示系统的所有时区
#timedatectl set-timezone "Asia/Shanghai" ##设定系统时区
#timedatectl set-local-rtc 0|1 0代表rtc为universer time格林威治时间
0表示使用utc时间计算方式
5.chronyd.service时间同步服务
服务名称: chronyd.service
指令:#chronyc sources -v查看是否同步
配置文件: vim /etc/chrony.conf
内容:
时间源端(服务端)
26 allow 172.25.254.0/24 ##允许172.25.254.0网段主机同步时间
29 local stratum 10 ##开启时间同步服务器功能并设定级别为10
注意:修改完以后重启服务#systemctl restart chronyd.service
关闭火墙#systemctl restart chronyd.service
需要同步端(客服端)
server 172.25.254.11 iburst 立即同步172.25.254.11主机时间
注意:修改完以后重启服务#systemctl restart chronyd.service
关闭火墙#systemctl restart chronyd.service
测试
在客户端:
#chronyc sources -v
##查看有没有同步成功