Mostrarei aqui como criar um simples plugin para o Nagios usando shell script.
Vamos criar um plugin que verifica os processos do Apache, e a teoria aqui aplicada, pode ser usado para outras
funções.
Vou comentar as linhas no conteúdo do script para facilitar o entendimento.
Vamos criar um novo arquivo chamado check_procs_apache com o seguinte conteúdo:
#!/bin/bash
# Script que verifica a quantidade de processos do Apache.
# exit 1 = warning; exit 2 = Critico; exit 3 = Unknown
# Verificamos os processos httpd para o usuário apache (O qual roda meu Apache), e contabilizamos com o wc -l
# guardamos o resultado na variavel TOTAL_PROCS
# Aqui testamos se os processos são menores que 100, se for, nosso retorno será de ok,
# pois não atingiu o limite estabelecido (No caso 100 processos)
# A linha echo "Processos OK. Total:$TOTAL_PROCS |ProcessosApache=$TOTAL_PROCS"
# é o que vai aparecer na interface do Nagios, como na imagem 01
# o exit 0, quem diz ao Nagios se o estado está Ok - Verde.
# Logo fica exit 0 -> Ok (Verde); exit 1 -> Warning (Amarelo); exit 2 -> Critico
# (Vermelho); exit 3 Unkown (Rosa)
# O pipe "|" Serve para informar o Performace data, ele é usado pelo Nagiosgraph, ele
# deve seguir o formato
# label=valor;warning;critico;minimo;máximo - ( Ver imagem 02 para gráfico simples apenas com label=valor).
# Com todas opções, seria parecido com a imagem 03,
# logo label=valor é o mínimo para ser informado, cria gráfico simples como na imagem 04.
# Performace data não é necessário, se não for usar o Nagiosgraph por exemplo
if [ $TOTAL_PROCS -lt 100 ]; then
echo "Processos OK. Total:$TOTAL_PROCS |ProcessosApache=$TOTAL_PROCS"
exit 0;
# Aqui testo se os processos são maiores que 150 se for emite o critico
elif [ $TOTAL_PROCS -gt 150 ]; then
echo "Verifique os processos. Total:$TOTAL_PROCS | ProcessosApache=$TOTAL_PROCS"
exit 2; # Caso contrario só um warning
else
echo "Verifique os processos. Total:$TOTAL_PROCS |ProcessosApache=$TOTAL_PROCS"
exit 1;
fi
# Caso não seja nenhuma das opções assumo que desconheço o resultado e retorno
Unknown
exit 3;
Lembre-se que os valores de limite podem ser passado como argumentos (Desde que o script pegue esses argumentos com
$1,$2...$9), assim no cfg ficaria algo parecido com:
check_command check_procs_apache!100!150
O arquivo deve ficar em /usr/local/nagios/libexec, ou onde estiver os demais plugins do seu Nagios, dê a ele
permissão de execução, e adicione o comando no command.cfg ou no nrpe caso seja remoto.
[2] Comentário enviado por tomassoni em 07/07/2011 - 08:01h
mauricin, não entendi sua pergunta, como assim mapear outro processo?
Se você se referiu a verificar outro processo, sim, só mudar o nome so processo, por exemplo para verificar se nosso Glassfish está no ar faço assim:
GLASSFISH=$(ps aux | grep -v grep | grep -iw glassfish)
if [ -z "$GLASSFISH" ]; then
echo "Verifique, processo nao existe"
exit 2;
elif [ ! -z "$GLASSFISH" ]; then
echo "Processo OK"
exit 0;
else
echo "Opcao desconhecida."
exit 3;
fi
exit 3;
O que é preciso ter em mente é sempre o resultado que você vai retornar nas condições de teste que são: exit 0 = ok, exit 1 = warning; exit 2 = Critico; exit 3 Unknown
[5] Comentário enviado por tomassoni em 12/07/2011 - 14:07h
Legal, que bom que consigo compartilhar um pouco com a comunidade.
Precisando só gritar.
" Sejamos como sol que não visa nenhuma recompensa,nenhum elogio,não espera lucros nem fama,simplesmente brilha! "