我的中有以下行/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 个参数调用。第一个参数是字符串表示法中的警报类,第二个参数是日志消息。”