rsyslog 最重要的两个内容.note

noteId: WEBc7339188901b72796de447ef6d5f0967 · 原始路径:/ALL/Linux - A模块/服务配置/日志服务(rsyslog)/rsyslog 最重要的两个内容.note · 图片:5 · 附件待处理:0

 
1、filter:
# 定义如何处理日志
用于决定:
哪些日志应该写到指定文件
哪些日志应该发到指定服务器
哪些日志应该丢弃
哪些日志应该单独分类
 
# 常见 facility/severity:
facility:(表示日志属于哪一来源)
kern    //内核日志
user    //用户级程序日志
mail    //邮件系统日志(如:postfix、dovecot、sendmail)
daemon    //系统守护进程日志
auth    //认证相关日志(如sshd、radius等)
authpriv    //私有认证日志(如:sshd、sudo、PAM、登陆失败等比auth更敏感的信息)
syslog    //syslog系统日志
cron    //计划任务日志
local0 ~ local7    //本地自定义facility
 
severity:(表示日志的严重程度)
0(emerg):系统不可用(极严重故障,几乎不能正常运行)
1(alert):必须立刻处理(紧急告警)
2(crit):严重错误(严重服务异常)
3(error):错误(服务失败、命令失败、认证失败)
4(warning):警告(异常但未必失败)
5(notice):正常但重要(重要状态变更)
6(info):一般信息(常规运行信息)
7(debug):调试信息(详细调试输出)
 
# 常见变量:
$hostname    //日志中声明的来源主机名
$fromhost    //rsyslog识别的来源主机名
$fromhost-ip    //来源IP
$programname    //程序名(如:sshd、sudo、nginx)
$msg    //日志消息正文内容
$timereported    //日志报告时间
$timegenerated    //日志接收时间
 
·示例:
 
按照facility过滤:
vim /etc/rsyslog.conf
默认的这些就是
 
按照日志严重等级过滤(可以和facility结合):
 
按照程序名过滤:
 
按照来源IP进行过滤:
 
(重点)可以额外关联 template,自定义日志输出格式:
template根据下面的操作来定义
 
2、tempalte:
 
用于定义日志输出的格式
# 常见变量:
## 与filter类似,但是是用两个百分号%包裹变量的
%hostname%    //主机名
%fromhost-ip%    //来源IP
%programname%    //程序名
%$YEAR%    //年
%$MONTH%    //月
%$DAY%    //日
%$HOUR%    //时
%$MINUTE%    //分
%$SECOND%    //秒
 
·示例:
 
输出以时间变量命名:
template(name="DailyFile" type="string"
         string="/var/log/remote/%$YEAR%-%$MONTH%-%$DAY%.log")
 
template 结合 filter:
template(name="SSHFmt" type="string"
         string="time=%timegenerated% host=%HOSTNAME% ip=%fromhost-ip% msg=%msg%\n")
 
if $programname == 'sshd' then {
    action(type="omfile" file="/var/log/sshd.log" template="SSHFmt")
}