rsyslog:在匹配的日志事件上执行脚本

rsyslog:在匹配的日志事件上执行脚本

我的中有以下行/etc/rsyslog.conf

:programname, contains, "suhosin" /var/log/suhosin.log

它将所有 php 安全相关事件记录到/var/log/suhosin.log.这很好,但我希望 rsyslog 执行我的脚本action.sh而不是记录到文件。我怎么能这么做呢?

答案1

您正在寻找 omprog。

module(load="omprog")
action(type="omprog"
       binary="/pathto/omprog.py --parm1=\"value 1\" --parm2=\"value2\"
       template="RSYSLOG_TraditionalFileFormat")

请参阅文档了解更多详细信息: http://www.rsyslog.com/doc/v8-stable/configuration/modules/omprog.html

答案2

如果消息包含“hellothere”,以下命令会为我运行“hi.bash”

:msg, regex, "hellothere" ^/usr/local/bin/hi.bash

根据文档,它会等待它完成,因此尽管它有效,但我想它会导致事件丢失。

有一种方法可以发送模板参数,但我还没有使用它。

答案3

也许你应该使用类似的东西http://www.logcheck.org/而不是通过rsyslog.

答案4

Suhosin 可以为每条日志消息执行脚本。示例 php.ini:

suhosin.log.script=255
suhosin.log.script.name=/usr/local/bin/action.sh

从文档中:“该脚本使用 2 个参数调用。第一个参数是字符串表示法中的警报类,第二个参数是日志消息。”

相关内容