【Linux】 Rsyslog日志系统的应用

一、前言。

linux有个自带的日志系统——Rsyslog。我在搭建邮件系统时,发现了Postfix协议的日志系统是采用Rsyslog这个模块的。

最后通过详细了解Rsyslog模块,我们知道了,linux系统,对于许多日志的记录都是通过该模块来完成。


二、对于该模块的应用。

比如,Nginx的access_log非常的多,我们想对这些日志进行分类,可以接入linux的Rsyslog。在/etc/rsyslog.conf(主配置文件)

这个文件下,写好配置。就可以依据你定义的规则来筛选log了。

可以参考:http://www.biglog.cn/nginx-syslog/


三、我的应用。

我有一些mail.log需要重定向后,进行特别的筛选,而且后续会不断更新规则,以免运维不断重启Rsyslog模块。

我打算将maillog重定向到一个程序。然后通过这个程序来处理。https://segmentfault.com/a/1190000003509909。

在这篇文档里提到了Rsyslog模块,可以定义多种action。其中有个就如下:

在下面第2行,就是执行一个可执行文件。

 kern.=crit user1
 & ^test-program;temp
 & @192.168.0.1

所以,我的定义就变成了以下这样了。

mail.info ^/tmp/maillog.sh
在maillog.sh中 ,写好要执行的PHP程序。如下所示:

/usr/bin/php index.php "&ct=mailLog&ac=log&par=$1"
这样,每次maillog来一条的时候,就会执行下 index.php 文件,这个文件会接收参数$1(也就是日志内容)。

接下来就看你的处理了。


四、建议。

官方的建议时,规则都尽量写在Rsyslog的配置中,比如:/etc/rsyslog.conf(主配置文件)、

/etc/rsyslog.d/(子配置文件)。尽量少用action = program,这样可执行文件重定向的方式。

除非你能确保你的可执行文件,可以在短时间内结束的,不会

出现各种bug或者死循环。因为,Rsyslog会一直等待这个可执行文件执行结束了,

才会执行下一行。



参考:http://www.rsyslog.com/doc/v5-stable/configuration/actions.html (Rsyslog模块)、

           https://segmentfault.com/a/1190000003509909(Linux环境下使用rsyslog管理日志)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值