Fácil notificação de eventos arbitrários em computadores Linux / Unix remotos

2

Estou procurando uma maneira de definir facilmente as notificações únicas de alguns eventos que ocorrem em uma caixa do Linux. Os eventos podem incluir itens como: file /tmp/my.lock is unlinked ou process 666 finished ou, talvez, algo mais complicado, como process 'backup.sh' closed file 'backup.tgz' AND process 'backup.sh' exited with return code 0 .

As notificações também devem ser flexíveis. Como notify 192.168.0.100 via org.freedesktop.Notifications.Notify ou notify [email protected] via email .

Na verdade, é algo como o Nagios, mas projetado para eventos não repetitivos, com custo mínimo, quase zero, de criação de tarefas. Eu sou um sonhador? Eu deveria escrever eu mesmo? Ou devo simplesmente usar scripts de shell?

    
por minaev 14.07.2010 / 15:23

3 respostas

1

O Nagios pode notificar exatamente os eventos apenas uma vez.
Usamos para abrir ingressos.
Basta definir notification_interval = 0 (para serviço e host) e você receberá o email / sms apenas uma vez.

    
por 14.07.2010 / 15:45
1

Apenas para adicionar mais alguma entrada à pergunta eu devo escrever por mim mesmo , você pode criar um arquivo FIFO ou simples para usar como um log personalizado e adicionar comandos aos seus scripts personalizados que gravam saída importante para esse arquivo de log. Ou, como alternativa, você pode criar um script simples que verifique periodicamente o status de arquivos e processos importantes e envie sua saída para esse log.

Para criar o FIFO no servidor:

mkfifo /var/log/mylog

Para ler os registros do servidor:

ssh user@host "tail -f /var/log/mylog"

Coloque essas funções em seus scripts personalizados para gravar facilmente no log:

function warning { echo -e "\e[33;1m :: \e[0m$@" > /var/log/mylog; };
function error { echo -e "\e[31;1m :: \e[0m$@" > /var/log/mylog; };
function information { echo -e "\e[32;1m :: \e[0m$@" > /var/log/mylog; };

E, em seguida, insira entradas no log emitindo estes comandos:

information "Some text"
warning "Some more text"
error "Some important text"

Você também pode adicionar uma função de shell que usa sendmail (ou similar) para enviar por e-mail.

    
por 15.07.2010 / 13:31
0

Eu acho que uma combinação de inotifywatch , ps , logger e syslog em alguns scripts personalizados podem resolver o problema.

    
por 14.07.2010 / 15:40