日志rsyslog

(1)日志基础

1)简介

rsyslog:记录大部分与系统操作有关,例如安全,认证sshd,su,计划任务at,cron
rsyslog日志可以存在本地,也可以存放在远程服务器

2)常见的日志文件

/var/log/messages 					//系统主日志文件
/var/log/secure						//认证丶安全
/var/log/maillog					//跟邮件postfix有关
/var/log/cron						//crond,at进程产生的日志
/var/log/dmesg						//和系统启动有关
/var/log/audit/audit.log 			//系统审计日志
/var/log/yum.log					//yum日志
/var/log/xferlog 					//和访问FTP服务器有关
w 									//当前登录的用户 /var/log/wtmp 
last 								//最近登录的用户 /var/log/btmp 
lastlog 							//所有用户的登录情况 /var/log/lastlog 

3)例

统计登录失败的top5 ip地址
#grep  "failure" /var/log/secure | awk -F'[ =]+' '{print $18}'  | grep -v user | sort | uniq -c | sort -k1 -rn | head -5
统计登录成功的top5 ip地址
#grep "Accept" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -k1 -rn | head -5

(2)rsyslog子系统

1)服务和配置文件

systemctl status rsyslog
/etc/logrotate.d/syslog 			//日志切割相关
/etc/rsyslog.conf 					//rsyslogd的主配置文件

2)主配置文件:/etc/rsyslog.conf

在主配置文件下定义了一套规则: 告诉rsyslogd进程哪个设备(facility),关于哪个级别的信息,以及如何处理

authpriv.*                                              /var/log/secure
设备.日志级别											日志文件
#### RULES ####
authpriv.*                                              /var/log/secure				//设备authpriv的所有级别都输出到/var/log/secure文件中
mail.*                                                  -/var/log/maillog			//设备mail的所有级别都延迟输出到/var/log/maillog文件中
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*					//所有设备的紧急级别日志都输出到屏幕上
local7.*                                                /var/log/boot.log
local4.*   												@192.168.1.253   //UDP 		//local4设备所有级别日志使用udp协议输出到192.168.1.253这台主机
local4.*   												@@192.168.1.253   //TCP 
local设备是系统保留的设备

级别 :遇到何种情况才会记录日志

emerg 				//紧急,致命,服务无法继续运行,如配置文件丢失
alert 				//报警,需要立即处理,如磁盘使用率95%
crit 				//致命行为
err					//错误行为
warning 			//警告信息
notice				//普通
info				//标准信息
debug				//调试信息,拍错所需

说明:例如sshd程序的配置文件(/etc/ssh/sshd_config)中定义SyslogFacility AUTHPRIV;表示sshd程序使用rsyslog程序中的AUTHPRIV这个设备,表示sshd的日志都会输出到AUTHPRIV这个设备,同时在rsyslog的配置文件上(/etc/rsyslog.conf)中定义了一个规则(authpriv.* /var/log/secure),这个规则表示设备AUTHPRIV这个设备的所有级别日志都会输出到/var/log/secure上

3)例:改变应用程序sshd的日志设备为local5,并定义local5设备日志记录到/var/log/sshd.log文件中

#vim /etc/ssh/sshd_config			//修改sshd使用rsyslog的设备为LOCAL5
#SyslogFacility AUTHPRIV
SyslogFacility LOCAL5
#systemctl restart sshd 
#vim /etc/rsyslog.conf 				//修改rsyslog配置文件定义设备local5的所有级别日志输出到/var/log/sshd.log中
local5.*     /var/log/sshd.log
#systemctl restart rsyslog 

4)命令logger

logger "pppppp"						//日志默认输出到/var/log/messages文件中
logger -p local5.info  "pppp"		//-p指定设备名和日志级别,日志输出到local5这个设备定义的输出文件中
logger -p local5.emerg "warnning"	//日志级别为紧急emerg,默认情况都会打印到屏幕上,

5)日志发送到远程服务器:192.168.1.40的local5设备的所有级别日志都发送到192.168.1.253上;

#vim /etc/rsyslog.conf 
local5.*       @192.168.1.253		//定义local5设备的所有级别日志发送到192.168.1.253这台主机
#systemctl restart rsyslog 
#tcpdump -i eth0 -nn port 514		//在192.168.1.253主机上进行抓包验证
#vim /etc/rsyslog.conf 				//修改rsyslog主配置文件,定义设备local5的所有级别日志都输出到/var/log/test.log文件中
local5.*       /var/log/test.log 
#systemctl restart rsyslog 
测试命令:logger -p local5.info  "pppp"		//在40主机上使用logger进程产生设备local5的info级别日志
原文地址:https://www.cnblogs.com/lovelinux199075/p/9037574.html