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

Mar*_*ter 7 rsyslog

我有以下行 /etc/rsyslog.conf

:programname, contains, "suhosin" /var/log/suhosin.log
Run Code Online (Sandbox Code Playgroud)

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

Kar*_*rlo 7

您正在寻找 omprog。

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

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


mgj*_*gjk 6

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

:msg, regex, "hellothere" ^/usr/local/bin/hi.bash
Run Code Online (Sandbox Code Playgroud)

根据文档,它等待它完成,所以虽然它有效,但我想它会导致事件丢失。

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