Páginas

terça-feira, 25 de junho de 2013

Watch Dog para Nagios

Olá a todos!!!

Como todos já sabem, é possível fazer infinitas customizações no Nagios. Eu mesmo já criei meus próprios plugins usando shell script. Dessa vez, eu tentei algo um pouco mais ousado, que é a criação de um watch dog (sistema automático que detecta falhas e tenta corrigir sozinho) para serviços monitorados pelo Nagios. Na verdade é bem simples, um shell script básico que é executado pelo plugin NRPE. No tutorial que está nesse mesmo blog, vemos que quando utilizamos o NRPE nós configuramos comandos a serem executados no host monitorado através do arquivo nrpe.cfg:

A linha comum para monitorar o Apache num servidor seria:

command[check_http]=/usr/lib/nagios/plugins/check_http -I localhost

O que eu fiz foi criar um script que chama cada comando, ex:

command[check_http]=/usr/lib/nagios/plugins/watch_dog.sh "check_http -I localhost" apache2

Caso o serviço não esteja rodando, ele executa o comando para iniciar o serviço no sistema operacional. Simples, não? Abaixo o script:

#!/bin/bash
# Watch Dog para Nagios 1.0
# Desenvolvido por Rodrigo Garcia em 25/06/2013
# Informe em PDIR="" o caminho para os plugins do Nagios
PDIR="/usr/local/nagios/libexec"
SERV=$(which service)

# O script deve ser chamado colocando como primeiro argumento ($1) o nome do plugin do Nagios e seus argumentos entre aspas
# O segundo argumento ($2) é o nome do serviço a ser executado caso o mesmo não esteja rodando.

$PDIR/$1 $2 > /dev/null

case $? in
"0")
        $PDIR/$1 $2
        ;;
"1")
        $PDIR/$1 $2
        ;;
"2")
        $SERV $2 restart
        if [ $? != "0" ]
        then
                $PDIR/$1 $2
        fi
        ;;
esac

Por enquanto só funciona em Linux. Talvez mais para frente eu desenvolva algo para Windows.
Abraço e até a próxima!!!

Nenhum comentário:

Postar um comentário