Você está procurando por omprog.
module(load="omprog")
action(type="omprog"
binary="/pathto/omprog.py --parm1=\"value 1\" --parm2=\"value2\"
template="RSYSLOG_TraditionalFileFormat")
Veja os documentos para mais detalhes: link
Eu tenho a seguinte linha no meu /etc/rsyslog.conf
:programname, contains, "suhosin" /var/log/suhosin.log
que registra todos os incidentes relacionados à segurança do php em /var/log/suhosin.log
. Isso é legal, mas eu gostaria que o rsyslog executasse meu script action.sh
ao invés de logar no arquivo. Como eu pude fazer isso?
Você está procurando por omprog.
module(load="omprog")
action(type="omprog"
binary="/pathto/omprog.py --parm1=\"value 1\" --parm2=\"value2\"
template="RSYSLOG_TraditionalFileFormat")
Veja os documentos para mais detalhes: link
Talvez você deva usar algo como link em vez de executar seu script para cada incidente de segurança via rsyslog
.
O seguinte executa "hi.bash" para mim se uma mensagem contiver "hellothere"
:msg, regex, "hellothere" ^/usr/local/bin/hi.bash
De acordo com os documentos, ele aguarda que ele termine, por isso, embora funcione, imagino que cause eventos descartados.
Existe uma maneira de enviar um parâmetro "Templated", mas eu não joguei com ele.
Suhosin pode executar um script para cada mensagem de log. Exemplo php.ini:
suhosin.log.script=255
suhosin.log.script.name=/usr/local/bin/action.sh
Da documentação: "O script é chamado com 2 parâmetros. O primeiro é a classe de alerta na notação de string e o segundo parâmetro é a mensagem de log."
Tags rsyslog