Rsyslog日志采集
目录
1 安装rsyslog
2 自定义日志路径
2.1 默认日志路径
2.2 更改默认日志存放路径
3 日志类型和级别
3.1 日志类型
3.2 日志级别
4 日志远程同步
4.1 设定日志接收服务器
4.2 设定日志发送方
5 自定义日志采集格式
1 安装rsyslog
# 安装
[root@server-a ~]# yum install -y rsyslog
# 服务名
rsyslog.service
# 主配置文件
/etc/rsyslog.conf
# 端口(默认未开启)
tcp/udp 514
2 自定义日志路径
2.1 默认日志路径
/var/log/boot.log # 系统启动日志
/var/log/cron # 系统周期化任务日志
/var/log/maillog # 邮件日志
/var/log/messages # 服务常规信息,服务启动报错
/var/log/secure # 系统认证日志
2.2 更改默认日志存放路径
[root@server-a ~]# vim /etc/rsyslog.conf
*.* /var/log/timinglee # 第一个*代表日志类型,第二个*代表日志类型
[root@server-a ~]# systemctl restart rsyslog.service
[root@server-a ~]# ll /var/log/timinglee
-rw------- 1 root root 819 9月 6 09:18 /var/log/timinglee
设置日志采集范围 .none表示不采集
# 不记录服务认证日志,其它都记录
*.*;authpriv.none /var/log/timinglee
生成测试日志
logger test message
40 #### RULES ####4142 *.* /var/log/timinglee43 # Log all kernel messages to the console.44 # Logging much else clutters up the screen.45 #kern.* /dev/console4647 # Log anything (except mail) of level info or higher.48 # Don't log private authentication messages!49 *.info;mail.none;authpriv.none;cron.none /var/log/messages5051 # The authpriv file has restricted access.52 authpriv.* /var/log/secure5354 # Log all the mail messages in one place.55 mail.* -/var/log/maillog565758 # Log cron stuff59 cron.* /var/log/cron6061 # Everybody gets emergency messages62 *.emerg :omusrmsg:*6364 # Save news errors of level crit and higher in a special file.65 uucp,news.crit /var/log/spooler6667 # Save boot messages also to boot.log68 local7.* /var/log/boot.log
3 日志类型和级别
3.1 日志类型
auth # 用户认证,如用户登录系统
authpriv # 服务认证,如ssh远程登录
cron # 时间任务
kern # 内核类型
mail # 邮件
news # 系统更新信息
user # 用户日志
3.2 日志级别
debug # 程序排错信息
info # 程序常规运行信息
notice # 重要信息的普通日志
waring # 程序警告
err # 程序报错
crit # 严重级别会导致系统软件不能正常工作
alert # 系统中立即要更改的信息
emerg # 系统的严重问题日志
none # 不采集
4 日志远程同步
在企业环境中,服务器系统数量较大,多个操作系统对于日志的查询分析难度较大,为了解决此问题,可以把所有主机的日志同步到同一台主机中,进行集中存储
4.1 设定日志接收服务器
在企业环境中,确定主机存在使用UDP来传输日志(传输较快)
日志接收方
[root@server-a ~]# vim /etc/rsyslog.conf32 module(load="imudp") # needs to be done just once # 加载日志接收模块33 input(type="imudp" port="514") # 指定模块端口
4.2 设定日志发送方
[root@server-b ~]# vim /etc/rsyslog.conf
# @表示UDP协议
41 *.* @192.168.36.10
[root@server-b ~]# systemctl restart rsyslog.service
# man手册查看发送方日志发送写法
man 5 rsyslog.conf
测试效果
只要在server-a中看到日志出现则表示日志同步成功
5 自定义日志采集格式
默认格式:[日志产生时间] [主机名称] [服务名称] [日志内容]
[root@server-a ~]# vim /etc/rsyslog.conf
# 编辑日志采集模板13 $template CUSTOM_LOGFRMAT,"%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n"43 *.* /var/log/timinglee;CUSTOM_LOGFRMAT
[root@server-a ~]# systemctl restart rsyslog.service# %FROMHOST-IP% # 生成日志的IP
# %timegenerated% # 生成日志的时间
# %syslogtag% # 生成日志的程序
# %msg% # 生成日志的内容
# \n # 换行# 如果想修改默认的日志格式13 $template CUSTOM_LOGFRMAT,"%FROMHOST-IP% %timegenerated% %syslogtag% %msg%\n"14 #module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")15 module(load="builtin:omfile" Template="CUSTOM_LOGFRMAT")
测试效果:
日志以 IP+时间+服务名称+内容 写入设定的日志文件中