Rsyslog-legacy(旧版本语法)配置说明及举例
1、 RULES-书写规则
格式:日志设备(类型).日志级别 日志处理方式
(1)日志类型分类
auth |
pam产生的日志 |
authpriv |
ssh,ftp等登录信息的验证信息 |
cron |
时间任务相关 |
kern |
内核 |
lpr |
打印 |
|
邮件 |
mark(syslog) |
rsyslog服务内部的信息,时间标识 |
news |
新闻组 |
user |
用户程序产生的相关信息 |
uucp |
unix主机之间相关的通讯 |
local 1~7 |
自定义的日志设备(类型) |
(2)日志级别分类
debug |
有调试信息的,日志信息最多 |
info |
一般信息的日志,最常用 |
notice |
最具有重要性的普通条件的信息 |
warning |
警告级别 |
err |
错误级别,阻止某个功能或模块不能正常工作的信息 |
crit |
严重级别,阻止整个系统或整个软件不能正常工作的信息 |
alert |
需要立即修改的信息 |
emerg |
内核崩溃等严重信息 |
none |
什么都不记录 |
备注:从上到小,级别由低到高,记录的信息也越来越少。
(3)连接符号
.xxx |
表示大于等于xxx级别的信息 |
.=xxx |
表示等于xxx级别的信息 |
.!xxx |
表示在xxx之外的等级的信息 |
(4)演示
记录到普通文件或设备文件 |
*.* /var/log/file.log #绝对路径 *.* /dev/pts/0 |
转发到远程 |
*.* @192.168.0.1 #UDP *.* @@192.168.0.1:10514 #TCP |
发送给用户(在线用户才生效) |
*.* root *.* root,test #多个用户使用英文逗号分开 *.* * #*表示所有在线用户 |
忽略,丢弃 |
local3.* ~ #忽略所有local3类型的所有级别的日志 |
执行脚本 |
local3.* ^/tmp/a.sh #^后跟可执行脚本或程序的绝对路径 #日志内容可作为脚本的第一个参数 |
触发报警 |
.. note:: |
备注:日志记录的顺序有先后关系
2、实例
(1)过滤日志,由:号开头
:msg,contains, "error" /var/log/error.log |
:msg,contains, "error" ~ |
:msg,contains, "user vicky" ~ |
:msg, contains, "module-alsa-sink.c: ALSA woke us up to write new data to the device, but there was actually nothing to write" ~ |
local3.* ~ |
& ~ #忽略所有日志 |
(2)使用模板来定义日志格式
- 默认模板格式:
$template myFormat, "%rawmsg%\n"
- 定义模板格式:
详见文档rsyslog的模板
- 为规则使用模板:
cron.* /var/log/cron;myFormat #分号后面添加模板名
(3)远程发送和接收
*.* @192.168.0.1 #UDP *.* @@192.168.0.1:10514 #TCP
client端:配置发送到哪里,有无端口,使用什么协议发送
server端:配置使用什么协议监听哪个端口,收到的日志保存到哪里
(4)作为server端,将不同client端发送过来的日志保存到不同的文件
:FROMHOST-IP,isequal, "192.168.0.3" /var/log/host3.log :FROMHOST-IP,isequal, "192.168.0.133" /var/log/host133.log :FROMHOST-IP,startwith, "192.168.1." /var/log/network1.log :FROMHOST-IP,startwith, "192.168.2." /var/log/network2.log