É possível ack nagios alertas do terminal em uma estação de trabalho remota?

6

Eu tenho nagios alertas configurados para vir através de jabber com um link http para ack.

É possível que haja um script que eu possa executar de um terminal em uma estação de trabalho remota que use o nome do host como parâmetro e confirme o alerta?

./ ack hostname

O benefício, embora aparentemente mundano, é triplo. Primeiro, pegue o http load off nagios. Em segundo lugar, as páginas nagios http podem demorar até 10 a 20 segundos para serem carregadas, por isso quero poupar tempo lá. Em terceiro lugar, evitando o uso mais lento do mouse + interface web + firefox / outro navegador irritantemente lento.

Idealmente, gostaria que um script fosse vinculado a um atalho de teclado que simplesmente chama o alerta mais recente. Finalmente, eu quero pegar as entradas de um joystick, botões e outros enfeites, e conectar um a um grande botão vermelho ligado ao script para que eu possa obter o mais recente alerta de nagios pressionando o botão lol. (Seria rad também se o botão tivesse uma tela no gabinete que mostrasse o texto do alerta sendo acked rsrs)

Tire sarro de mim tudo o que você quiser, mas isso é realmente algo que seria útil para mim. Se eu posso economizar cinco segundos por alerta, e eu recebo 200 alertas por dia, preciso ack, isso me poupa 15 minutos por dia. E não é o objetivo do sysadmin automatizar o que pode ser automatizado?

Obrigado!

    
por cat pants 01.03.2012 / 19:07

3 respostas

6

Isto é definitivamente possível, mas tenha em mente que você está mergulhando nas entranhas de Nagios que têm uma curva de aprendizado íngreme. Deve ser uma curva de aprendizado interessante e gratificante.

Você pode fazer uso dos Comandos Externos do Nagios para permitir que programas externos insiram comandos no Nagios fila de comandos. Existem muitos comandos . Combine isso com o acesso remoto e as possibilidades da linha de comando e scripts de shell, e as possibilidades são bem grandes.

Aqui está um exemplo: De uma caixa remota, SSH no host Nagios. O comando ~/bin/ack inserirá um comando na fila command_file . O Nagios então lerá o command_file e executará seu comando. O comando pode parecer algo como:

ssh nagios.example.org ~/bin/ack hostA

Outro exemplo: Para desabilitar todas as notificações no Nagios de um host remoto, o comando é algo como:

ssh nagios.example.org "echo \"[\" date +% s \"] DISABLE_NOTIFICATIONS\" > /var/spool/nagios/cmd/nagios.cmd"

Você poderia, em teoria, fazer isso com outros daemons também, fazer uso do Netcat para escutar em um port e pipe comandos em um arquivo, ou até mesmo fazer isso usando Jabber, IRC, etc. Eu conheço um grupo que fez isso usando xinitd ouvindo em algumas portas. Seja muito cuidadoso para considerar as implicações de segurança de permitir acesso remoto não autenticado ao seu host Nagios.

Nagios tem mais informações sobre comandos externos no manual. Consulte Núcleo do Nagios: comandos externos

Aqui está um exemplo para executar comandos do Munin . Eles fazem uso de NSCA

    
por 01.03.2012 / 20:37
1

Se a segurança não for sua prioridade, algum script netcat + xinetd + de cada lado funcionará. Se você quer alguma segurança e / ou você não quer escrevê-lo você mesmo, você pode querer dar um NRCD ou nscaweb uma tentativa. Ou dê uma olhada neste script chamado nagios_commander

    
por 02.06.2014 / 16:26
0

Com as coisas distribuídas no núcleo padrão, eu diria que não. Mas se você expandir o cgi.c e o código do módulo de suporte para o site, você poderá fazer isso. O URI pode não parecer bonito. Um possível problema seria o pedido de autenticação para autorização para executar o comando.

Você já viu o site de troca de nagios e talvez postar algo lá?

    
por 01.03.2012 / 20:16

Tags