一、介绍
rsyslog可以理解为增强的syslog,在syslog基础上增加了很多其他功能。如数据库支持、日志内容筛选、定义日志格式模板等。
二、日志级别
级别 | 说明 |
---|---|
debug | 调试信息 |
info | 正常信息 |
notice | 提醒信息 |
warn,warning | 警告信息 |
err,error | 错误信息 |
crit | 严重错误信息 |
alert | 报警信息,需要立即修改的信息 |
emerg,panic | 内核崩溃,系统接近崩溃 |
* | 所有日志级别 |
none | 不记录日志信息 |
三、搭建
- 环境准备
操作系统 | 名称 | 地址 |
---|---|---|
CentOS7 | server | 172.16.120.101 |
CentOS7 | client | 172.16.120.102 |
- rsyslog安装
yum install -y rsyslog - 修改配置
vim /etc/rsyslog.conf#开放通过UDP协议514端口接收日志信息功能 $ModLoad imudp $UDPServerRun 514 #开放通过TCP协议514端口接收日志信息功能 $ModLoad imtcp $InputTCPServerRun 514
- 重启服务
systemctl restart rsyslog - 客户端配置
vim /etc/rsyslog.conf#使用UDP协议 *.* @172.16.120.101 #使用TCP协议 #*.* @@172.16.120.101
- 启动客户端
systemctl restart rsyslog - 验证
#服务器端开启日志监听
tail -f /var/log/message
#客户端生成日志
logger "this is a test from 172.16.120.102"
四、自定义日志格式
1.以IP形式显示日志(服务端)
vim /etc/rsyslog.conf#GLOBAL DIRECTIVES $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $template myFormat,"%timestamp% %fromhost-ip% %syslogtag% %msg%\n" $ActionFileDefaultTemplate myFormat
说明:
$template 格式名称:“日志采集格式” 格式名称随便起
%timestamp%:日志生成时间
%fromhost-ip%:日志来源主机IP
%syslogtag%:日志生成程序
%msg%:日志内容
\n:换行
2.重启服务
systemctl restart rsyslog
五、自定义日志路径
1.修改配置(服务端)
vim /etc/rsyslog.conf#GLOBAL DIRECTIVES #根据客户端的IP单独存放主机日志在不同目录,rsyslog需要手动创建 $template RemoteLogs,"/var/log/rsyslog/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" #排除本地主机IP日志记录,只记录远程主机日志 :fromhost-ip, !isequal, "127.0.0.1" ?RemoteLogs #忽略之前所有的日志,远程主机日志记录完之后不再继续往下记录 & ~
说明:
~:忽略,过滤日志由:号开头
^:后跟可执行脚本或程序的绝对路径
2.重启服务
systemctl restart rsyslog