2.3 Linux系统中的日志管理
一、基础知识
1.systemd-journald.service服务
服务名称:systemd-journald.service
服务管理命令:journalctl
默认日志存放路径: /run/log/journal/c5b149eb16204714a69a29628edcc4e9/system.journal
[root@westoslinux100 log]# systemctl status systemd-journald.service #查看服务状态
[root@westoslinux100 log]# systemctl restart systemd-journald.service #重启服务,可用于日志文件被删除时使用,担心出现日志文件,但之前的日志消失了
[root@westoslinux100 log]# systemctl stop systemd-journald.service #停止服务
2.journalctl命令的用法
[root@westoslinux200 ~]# journalctl -o export # 适合传出和备份的二进制格式
[root@westoslinux200 ~]# journalctl -o json #js格式显示输出
[root@westoslinux200 ~]# journalctl -p 0 #emerge系统的严重问题日志
[root@westoslinux200 ~]# journalctl -p 1 #alert系统中立即要更改的信息
[root@westoslinux200 ~]# journalctl -p 2 #crit严重级别会导致系统软件不能正常工作
[root@westoslinux200 ~]# journalctl -p 3 #err程序报错
[root@westoslinux200 ~]# journalctl -p 4 #warning程序警告
[root@westoslinux200 ~]# journalctl -p 5 #notice重要信息的普通日志
[root@westoslinux200 ~]# journalctl -p 6 #info普通信息
[root@westoslinux200 ~]# journalctl -p 7 #debug程序拍错信息
[root@westoslinux200 ~]# journalctl -F PRIORITY #查看可控级别日志2到7
[root@westoslinux200 ~]# journalctl -u sshd.service #查看指定服务的日志
[root@westoslinux200 ~]# journalctl --disk-usage #查看日志占多大的文件
[root@westoslinux200 ~]# journalctl --vacuum-size=1G #设定日志存放最大为1G
[root@westoslinux200 ~]# journalctl --vacuum-time=1w #注意是小写w,日志在系统中最长存放时间为1周,可以使用设置以上参数来设置回滚
[root@westoslinux200 ~]# journalctl -f #监控日志
journalctl _PID=10924 _SYSTEMD_UNIT=sshd.service
实验二用journald服务永久存放日志
系统中默认日志在:/run/log/journal中
默认方式在系统重启后日志会被清理要永久保存日志请完成以下操作:
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod 2775 /var/log/journal
systemctl restart systemd-journald.service
当服务重启日志存放路径会被制定到:/var/log/journa
测试:
1.在操作以上步骤之前查看日志
2.重启系统
3.再次查看日志
4.可以看到日志是不会被保存下来的只能看到重启之后的日志
5.完成以上操作后再次重启系统可以看到日志是被保存下来的
二、rsyslog
服务名称:rsyslog.service
日志存放 | |
---|---|
/var/log/messages | 系统服务日志,常规信息,服务报错 |
/var/log/secure | 系统认证信息日志 |
/var/log/maillog | 系统邮件日志信息 |
/var/log/cron | 系统定时任务信息 |
/var/log/boot.log | #系统启动日志信息 |
配置文件 | /etc/rsyslog.conf |
使用上述命令进入配置文件
日志类型.日志级别 日志存放路径
*.* /var/log/westos #把系统中所有级别的日志存放到westos中
*.*;authpriv.none /var/log/westos #系统中所有级别的日志存放到westos中
##但是authpriv不存放到westos中
日志类型 | |
---|---|
auth | #用户认证 |
authpriv | #服务认证 |
cron | #时间任务 |
kern | #内核类型 |
#邮件 | |
news | #系统更新信息 |
user | #用户 |
日志级别 | |
---|---|
ebug | #程序排错信息 |
info | 程序常规运行信息 |
notice | #重要信息的普通日志 |
waring | 程序警告 |
err | #程序报错 |
crit | 严重级别会导致系统软件不能正常工作 |
alert | #系统中立即要更改的信息 |
emerg | 系统的严重问题日志 |
none | 不采集 |
1.设定日志采集格式应用
1.设置所有类型的的日志都存储在/var/log/westos
2.服务认证的日志不存储在wetos中
定义日志采集格
$template WESTOS_FORMAT, "%FROMHOST-IP% %timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"
WESTOS_FORMAT | 格式名称 |
---|---|
%FROMHOST-IP% | 日志来源主机IP |
%timegenerated% | 日志生成时间 |
%syslogtag% | 日志生成服务 |
%msg% | 日志内容 |
\n | 换行 |
2.日志同步
@表示用udp传输日志
@@表示用tcp传输日志
@172.25.254.100把本机日志用udp的传输方式发送大172.25.254.100主机上
三、timedatectl
##如果是0表示使用utc时间计算方式
时间同步实验
服务名称:chronyd.service
配置文件:/etc/chrony.conf
用100主机来同步200主机的时间
在100主机上,使用/etc/chrony.conf更改配置,然后重启服务
在200主机上设定,并重启服务