「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)

参考文献

add new syslog facility