A questão parece ter mudado um pouco e ter sido alvo de scripts, em vez de enviar notificações. Eu posso remover essa resposta mais tarde.
Parece que é bastante simples para configurar o acionamento em tempo real de scripts shell baseados em mensagens passadas para o rsyslog. Se OP reescrever sua resposta para conter uma imagem melhor do que ele está buscando (como já foi postado nos comentários), estou disposto a fornecer uma resposta de alta qualidade aqui.
Não sei exatamente quais são seus requisitos, mas um software específico que eu poderia recomendar é logcheck
. Isso pode ser útil em sua situação também.
Sua finalidade é enviar resumos de mensagens em linhas específicas (interessantes) correspondentes. Estou assumindo que a configuração básica de e-mail está funcionando (por exemplo, echo bla | mail -s testmail [email protected]
works). Ele cuida das rotações de log e sabe de onde ele saiu, então não se preocupe mais com scripts!
Extraiu alguns dos passos essenciais de este tutorial :
-
Configurar itens básicos em
/etc/logcheck/logcheck.conf
:REPORTLEVEL="server" # default reportlevel with pre-configured filters SENDMAILTO="[email protected]"
-
Quais arquivos de log devem ser verificados em
/etc/logcheck/logcheck.logfiles
:/var/log/syslog /var/log/auth.log /var/log/myapp.log
-
Agora, para que seja acionado em uma linha específica semelhante a
myapp: Error: Login failed for admin123
para este log myapp, isso pode ser feito criando uma expressão regular em
/etc/logcheck/ignore.d.server/myapp
(notaserver
correspondente ao usadoREPORTLEVEL
anterior):^myapp:.*
Ok, este não é o regex mais específico, mas esse não é o ponto.
-
Espere os e-mails para chegar, por exemplo:
Subject: webserver.domain.tld 2013-01-01 10:17 System Events Jan 01 09:40:59 webserver myapp: IMAP Error: Login failed for gertvdijk