rsyslog: executa o script no evento de log correspondente

6

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?

    
por Martin Vegter 18.08.2013 / 09:03

4 respostas

3

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

    
por 18.12.2015 / 14:24
2

Talvez você deva usar algo como link em vez de executar seu script para cada incidente de segurança via rsyslog .

    
por 18.08.2013 / 12:54
2

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.

    
por 05.02.2016 / 03:33
1

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."

    
por 20.08.2014 / 09:44

Tags