格式:: 日志设备(类型).(连接符号)日志级别 日志处理方式(action) 日志设备(可以理解为日志类型): ———————————————————————- auth –pam产生的日志 authpriv –ssh,ftp等登录信息的验证信息 cron –时间任务相关 kern –内核 lpr –打印 mail –邮件 mark(syslog)–rsyslog服务内部的信息,时间标识 news –新闻组 user –用户程序产生的相关信息 uucp –unix to unix copy, unix主机之间相关的通讯 local 1~7 –自定义的日志设备 日志级别: ———————————————————————- debug –有调式信息的,日志信息最多 info –一般信息的日志,最常用 notice –最具有重要性的普通条件的信息 warning –警告级别 err –错误级别,阻止某个功能或者模块不能正常工作的信息 crit –严重级别,阻止整个系统或者整个软件不能正常工作的信息 alert –需要立刻修改的信息 emerg –内核崩溃等严重信息 none –什么都不记录 从上到下,级别从低到高,记录的信息越来越少 详细的可以查看手册: man 3 syslog 连接符号 ———————————————————————- .xxx: 表示大于等于xxx级别的信息 .=xxx:表示等于xxx级别的信息 .!xxx:表示在xxx之外的等级的信息 Actions ———————————————————————- 实例: 过滤特定的日志到文件, 忽略(丢弃)包含某个字符串的日志 msg, contains, “error” /var/log/error.log :msg, contains, “error” ~ # 忽略包含error的日志 :msg, contains, “user nagios” ~ :msg, contains, “user kadefor” ~ :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.* ~ PS. & ~ # 忽略所有的日志 实例: 使用模板来定义日志格式 $EscapeControlCharactersOnReceive off #关闭rsyslog默认转译ASCII<32的所有怪异字符,包括换行符等 $template nginx-zjzc01,"/rsyslog/data/nginx/zjzc/nginx_access01_log.%$year%-%$month%-%$day%" #定义TC:日志存放路径 $template nginx-zjzc02,"/rsyslog/data/nginx/zjzc/nginx_access02_log.%$year%-%$month%-%$day%" #定义TCBeta:日志存放路径 $template nginx-uat01,"/rsyslog/data/nginx/uat/nginx_access01_log.%$year%-%$month%-%$day%" #定义TCBeta:日志存放路径 $template tocFormat,"'%syslogtag%','%msg%' " #定义toc日志format :rawmsg,contains,"nginx-zjzc01" -?nginx-zjzc01;tocFormat #接受TC:日志,并应用tocFormat格式 :rawmsg,contains,"nginx-zjzc02" -?nginx-zjzc02;tocFormat #接受TCBeta:日志,并应用tocFormat格式 :rawmsg,contains,"uat-nginx" -?nginx-uat01;tocFormat #接受TCBeta:日志,并应用tocFormat格式 $template logformat,”%TIMESTAMP:::date-mysql% %FROMHOST-IP%%msg% ” # 定义一个名为logformat模板, 为信息加上日志时间 $template DynFile,”/var/log/tlog%$year%%$month%%$day%.log” # 定义日志文件的名称,按照年月日 :rawmsg, contains, “sdns_log” ?DynFile;logformat # 把rawmsg(也可以使用msg)日志中包含sdns_log标志的信息写到DynFile定义的日志文件里