永久地址:rsyslog│日志服务(保存网址不迷路 🙃)
日志发送及处理流程
1)应用程序使用 syslog 协议,发送日志到 rsyslog 服务,并发送设备及优先级;
2)当 rsyslog 服务收到日志后,根据设备与优先级,将日志写入到不同文件中;
第一步、发送日志到服务
使用 logger 命令可以向 rsyslog 服务发送日志:
logger -p local7.notice "testing"
local7:设备,还有其他设备
notice:优先级,还有其他优先级
"testing":日志内容
第二步、将日志写入文件
至于日志将被写入哪个文件,需要在 /etc/rsyslog.conf 中配置。多数发行版支持 /etc/rsyslog.d/*.conf 配置文件。
配置文件的格式如下:
# 将设备 local7,优先级 notice 日志写入 /var/log/misc.log 中 local7.notice /var/log/misc.log # 到设备 local7 的所有消息,都不要写入 /var/log/misc.log 中 local7.none /var/log/misc.log # 到设备 local5 的所有消息,部分优先级,全部写入 /var/log/local5.log 中 local5.* /var/log/local5.log
可用的日志设备
日志设备定义在 /usr/include/sys/syslog.h 文件中,用户不能够随便定义设备名称,参考 rsyslog.conf(5) 手册。
可用的日志优先级
编码 | 优先级 | 严重性 |
---|---|---|
0 | emerg | 系统不可用。该日志消息将写入用户终端中。 |
1 | alert | 必须立即采取措施 |
2 | crit | 严重状况 |
3 | err | 非严重错误状况 |
4 | warning | 警告状况 |
5 | notice | 非常但重要的事情 |
6 | info | 信息性事件 |
7 | debug | 调试级别消息 |
注意事项
某些应用程序不使用 rsyslog 服务,而直接将日志写入 /var/log 目录中。比如 Samba 将日志写入 /var/log/samba/ 目录。
分析系统日志条目
有 rsyslog 写入的日志文件,文件最开始是最早的日志,新日志逐渐追加到文本中。
每个日志条目具有标准的格式:
1)该日志的时间戳;
2)发送该日志消息的主机;
3)发送该日志消息的程序或进程;
4)日志的内容;
持续监控系统日志
使用 tail 命令可以持续查看系统日志,默认只显示最后十行,当有新日志写入文件时,新日志会被持续输出:
tail -f /var/log/message
相关文档
rsyslog.conf(5)
相关文章
「logrotate」- 日志轮转
「CentOS 7」- Journald
「systemd-journald」- 日志服务