日志rsyslog

Posted 你很棒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了日志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级别日志

以上是关于日志rsyslog的主要内容,如果未能解决你的问题,请参考以下文章

使用rsyslog编程,产生trace信息,记录到日志中

linux搭的rsyslog日志服务器接收设备日志有延时

rsyslog日志基础介绍

logstash收集rsyslog日志

rsyslog日志格式介绍

logstash结合rsyslog,收集系统日志