Criando plugin para o Nagios em Shell Script _ Nagios

7
19/5/2014 Artigo 12 – Criando plugin para o Nagios em Shell Script | Nagios http://nagiosnapratica.wordpress.com/2010/12/08/artigo12-criando-plugin-para-o-nagios-em-shell-script/ 1/7 Artigo 12 – Criando plugin para o Nagios em Shell Script (h ttp://nagiosnapratica.files.wordpress.com/2010/12/images-ideia.gif) Olá a todos, hoje vou mostrar como escrever um plugin para o Nagios em shell Script. Na verdade um simples plugin apenas para mostrar né O Nagios compreende 4 tipos de saída referente a status: OK = 0 WARNING = 1 CRITICAL = 2 UNKNOWN = 3 Logo precisamos escrever as saídas com estes números (0,1,2,3) ou para casos mais simples com (0 e 2). Para fazer isso em shell script é necessário escrever a saída com exit 0, exit 1, exit 2 e exit 3 Ok, Maioria de nós conhecemos o check_mailq que analisa a fila de e-mail e funciona muito bem, mas vamos imaginar que ele não exista pelo menos até o fim deste artigo ok? Pessoal, este é apenas um exemplo de shell script, não sou expert em shell script mas me viro, então sem criticas ok? ## Vamos criar o arquivo com o conteúdo abaixo: vim /usr/local/nagios/libexec/check_fila_mail.sh

Transcript of Criando plugin para o Nagios em Shell Script _ Nagios

19/5/2014 Artigo 12 – Criando plugin para o Nagios em Shell Script | Nagios

http://nagiosnapratica.wordpress.com/2010/12/08/artigo12-criando-plugin-para-o-nagios-em-shell-script/ 1/7

Artigo 12 – Criando plugin para o Nagios emShell Script

(http://nagiosnapratica.files.wordpress.com/2010/12/images-ideia.gif)Olá a todos, hoje voumostrar como escrever um plugin para o Nagios em shell Script. Na verdade um simplesplugin apenas para mostrar né

O Nagios compreende 4 tipos de saída referente a status:

OK = 0WARNING = 1CRITICAL = 2UNKNOWN = 3

Logo precisamos escrever as saídas com estes números (0,1,2,3) ou para casos mais simplescom (0 e 2).

Para fazer isso em shell script é necessário escrever a saída com exit 0, exit 1, exit 2 e exit 3

Ok, Maioria de nós conhecemos o check_mailq que analisa a fila de e-mail e funciona muitobem, mas vamos imaginar que ele não exista pelo menos até o fim deste artigo ok?

Pessoal, este é apenas um exemplo de shell script, não sou expert em shell script mas me viro,então sem criticas ok?

## Vamos criar o arquivo com o conteúdo abaixo:

vim /usr/local/nagios/libexec/check_fila_mail.sh

19/5/2014 Artigo 12 – Criando plugin para o Nagios em Shell Script | Nagios

http://nagiosnapratica.wordpress.com/2010/12/08/artigo12-criando-plugin-para-o-nagios-em-shell-script/ 2/7

#!/bin/sh

################################################# Luciano Maia Cirilo #### lucianosuper at hotmail.com #### http://www.nagiosnapratica.com.br #################################################

## Criando os arquivos temporariosmailq > /tmp/fila.logmailq > /tmp/fila-vazia.log

## Realizando as consultastail -n 1 /tmp/fila.log | cut -d " " -f 5 > /tmp/nfila.txtcat /tmp/fila-vazia.log | grep "Mail queue is empty" > /dev/null

## Testando a ultima consulta para verificar se a fila esta vaziaif [ $? = 0 ]thenecho "OK - A fila de E-mail esta vazia"exit 0

## Fila menor ou igual a 50 elif [ ̀cat /tmp/nfila.txt̀ -lt 50 ] then echo "OK - A fila tem ̀cat /tmp/nfila.txt̀ e-mails" exit 0

## Fila menor ou igual a 80 elif [ ̀cat /tmp/nfila.txt̀ -lt 80 ] then echo "WARNING - A fila tem ̀cat /tmp/nfila.txt̀ e-mails" exit 1

## Fila maior que 80 elif [ ̀cat /tmp/nfila.txt̀ -gt 80 ] then echo "CRITICAL - A fila tem ̀cat /tmp/nfila.txt̀ e-mails" exit 2 else echo "UNKNOWN - Erro ao tentar ler a fila de e-mail" exit 3fi

## Necessário alterar a permissão

chmod 755 check_fila_mail.sh

## Ok, agora vamos testar o plugin

19/5/2014 Artigo 12 – Criando plugin para o Nagios em Shell Script | Nagios

http://nagiosnapratica.wordpress.com/2010/12/08/artigo12-criando-plugin-para-o-nagios-em-shell-script/ 3/7

./check_fila_mail.sh

OK – A fila tem 35 e-mails

## Vocês podem alterar os valores para teste, ja fiz aqui e esta funcionando Este é um plugin que funciona apenas local, logo para utiliza-lo em servidores remotos énecessário que utilize o NRPE já explicado aqui no artigo 6(http://nagiosnapratica.wordpress.com/2010/10/20/artigo6-monitorando-so-linux-com-nrpe-no-nagios/)

Pessoal vou aproveitar e disponibilizar um plugin que verifica se um determinado IP estalistado em algumas blacklist publicas, como vocês perceberam como qualquer outrosysadmin não vivo só de Nagios. Espero que gostem e utilizem:

vim /usr/local/nagios/libexec/check_rbl.sh

#!/bin/sh

########################################################################### ### check_rbl.sh - Verifica se o IP esta listado nas principais RBLs ### Luciano Maia Cirilo - lucianosuper2 at gmail.com ### http://www.nagiosnapratica.com.br ### ##########################################################################

iprbl () {

cat /tmp/$iplog | cut -d. -f 1 > /tmp/1$iplogcat /tmp/$iplog | cut -d. -f 2 > /tmp/2$iplogcat /tmp/$iplog | cut -d. -f 3 > /tmp/3$iplogcat /tmp/$iplog | cut -d. -f 4 > /tmp/4$iplog

paste -d"." /tmp/4$iplog /tmp/3$iplog /tmp/2$iplog /tmp/1$iplog > /tmp/reverso2$iplog.log

}

nomeip () {> /tmp/nslookup$iplog.lognslookup "$iplog" > /tmp/nslookup$iplog.logcat /tmp/nslookup$iplog.log | grep -v "#53" | grep "Address" | cut -c 10-900 > /tmp/$iplog}

if [ $# = 0 ]thenecho "Usage: $0 {IP} "echo "Or"echo "Usage: $0 200.0.0.10 "exit 1

19/5/2014 Artigo 12 – Criando plugin para o Nagios em Shell Script | Nagios

http://nagiosnapratica.wordpress.com/2010/12/08/artigo12-criando-plugin-para-o-nagios-em-shell-script/ 4/7

fi

iplog="$1"echo "$iplog" > /tmp/$iplog

> /tmp/reverso2$iplog.log> /tmp/nslookup$iplog.log> /tmp/verifica2$iplog.log> /tmp/saida$iplog.log> /tmp/ips-listados2$iplog.log

grep "[0-9]\.[0-9]" /tmp/$iplog > /dev/null

if [ $? = 0 ]theniprblelsenomeipiprblfi

##### verificando as rblsfor i in ̀cat /tmp/reverso2$iplog.log̀;dohost -t A $i.relays.mail-abuse.org >> /tmp/verifica2$iplog.loghost -t A $i.b.barracudacentral.org >> /tmp/verifica2$iplog.loghost -t A $i.rbl.smtpcheck.net >> /tmp/verifica2$iplog.loghost -t A $i.zen.spamhaus.org >> /tmp/verifica2$iplog.loghost -t A $i.bl.spamcop.net >> /tmp/verifica2$iplog.logdone

#### Tratando a Saida do Arquivooutput () {

cat /tmp/ips-listados2$iplog.log | grep "relays.mail-abuse" > /dev/nullif [ $? = 0 ]thenecho "$i.relays.mail-abuse.org" >> /tmp/saida$iplog.logelseecho "IP not found" >> /dev/nullfi

cat /tmp/ips-listados2$iplog.log | grep "barracudacentral" > /dev/nullif [ $? = 0 ]thenecho "$i.b.barracudacentral.org" >> /tmp/saida$iplog.logelseecho "IP not found" >> /dev/nullfi

19/5/2014 Artigo 12 – Criando plugin para o Nagios em Shell Script | Nagios

http://nagiosnapratica.wordpress.com/2010/12/08/artigo12-criando-plugin-para-o-nagios-em-shell-script/ 5/7

cat /tmp/ips-listados2$iplog.log | grep "rbl.smtpcheck" > /dev/nullif [ $? = 0 ]thenecho "$i.rbl.smtpcheck.net" >> /tmp/saida$iplog.logelseecho "IP not found" >> /dev/nullfi

cat /tmp/ips-listados2$iplog.log | grep "zen.spamhaus" > /dev/nullif [ $? = 0 ]thenecho "$i.zen.spamhaus.org" >> /tmp/saida$iplog.logelseecho "IP not found" >> /dev/nullfi

cat /tmp/ips-listados2$iplog.log | grep "spamcop.net" > /dev/nullif [ $? = 0 ]thenecho "$i.bl.spamcop.net" >> /tmp/saida$iplog.logelseecho "IP not found" >> /dev/nullfi

echo "CRITICAL - ̀cat /tmp/saida$iplog.log̀ "exit 2}

cat /tmp/verifica2$iplog.log | grep -v "not found" | grep -v "has no A" > /tmp/ips-listados2$iplog.logif [ $? = 0 ]thenoutputelseecho "OK - ̀cat /tmp/$iplog̀ IP Not List RBLs Public"exit 0fi

### Alterando a permissão

chmod 755 check_rbl.sh

.Espero que tenha sido esclarecedor para todos. Até a próxima!

.

.

.

19/5/2014 Artigo 12 – Criando plugin para o Nagios em Shell Script | Nagios

http://nagiosnapratica.wordpress.com/2010/12/08/artigo12-criando-plugin-para-o-nagios-em-shell-script/ 6/7

Luciano Maia Cirilo

www.nagiosnapratica.com.br (http://www.nagiosnapratica.com.br/)

check_fila_mail.sh , plugin , shell script

Esta entrada foi publicada em dezembro 8, 2010, 1:32 pm e está arquivada em Artigos, Nagios,Plugins. Você pode seguir quaisquer respostas para esta entrada através de RSS 2.0. Vocêpode deixar uma resposta, ou trackback do seu próprio site.

COMENTÁRIOS (7)

#1 por Marcelo Terres em dezembro 8, 2010 - 3:31 pm

Ótimo plugin, parabéns pelo excelente trabalho.

Adicionei a sorbs.net nele pois precisava monitorar tal lista também.

[]s

#2 por Jamila em março 25, 2011 - 10:32 am

Estou tentando criar um plugin para o nagios, mas parece que ele nao entende as saidas…Depois de criar o plugin como faço para usar, de fato, dentro do nagios?

#3 por Nagios na Prática! em março 25, 2011 - 10:39 am

Olá Jamila,

Você precisa verificar quais são os erros, como disse no artigo não sou expert em ShellScript, então sugiro que pesquise mesmo

Para usar o plugin sugiro que leia o artigo sobre o nrpe para monitorar os clienteslinux, segue o link do artigo:

http://nagiosnapratica.wordpress.com/2010/10/20/artigo6-monitorando-so-linux-com-nrpe-no-nagios/

Espero ter ajudado.

Att.Luciano Maia CiriloLPIC-3http://www.nagiosnapratica.com.br

#4 por Jamila em março 25, 2011 - 11:05 am

O script funciona, tanto que o utilizamos em outra ferramenta para monitorar. Não chega a ser um caso de usar nrpe, pois é um ping.Oq o script faz é logar no router, realizar o ping e devolver o resultado.Mas como faço pra rodar dentro do nagios? Em que diretorio coloco?

About these ads(http://en.wordpress.com/about-these-ads/)

19/5/2014 Artigo 12 – Criando plugin para o Nagios em Shell Script | Nagios

http://nagiosnapratica.wordpress.com/2010/12/08/artigo12-criando-plugin-para-o-nagios-em-shell-script/ 7/7

Obrigada pela atenção!

#5 por Nagios na Prática! em março 28, 2011 - 9:39 am

Olá Jamila,

Você deve colocar o script no diretorio /usr/local/nagios/libexec/criar o template dentro do arquivo: commands.cfgE utilizar este template nos arquivos hosts.cfg e services.cfg

Caso queira envie depois o script para as listas do Nagios para o pessoal dar asopiniões.

Att.Luciano Maia CiriloLPIC-3http://www.nagiosnapratica.com.br

#6 por Gabriel em dezembro 5, 2011 - 7:39 pm

Boa Noite,

pode me dizer como eu faço um scrip para o Nagios ver se um serviço esta rodando ounão??tipo, gostaria de criar um scrip para mostrar se alguns serviços meus estao rodando ouparado, como por exemplo, asterisk, openfire, mysql, etc…

sei q existe alguns plugins prontos tanto q uso mtos, mas keria saber fazer algo bem basicoq só mostre na tela se esta rodando ou não…

tem como me ajudar??

Obrigado

#7 por Diego em julho 24, 2013 - 11:07 am

Olá, tem alguma dica para fazer um plugin para monitorar Toner de impressora laserBrother todos os modelos ?

Crie um website ou blog gratuito no WordPress.com. O tema Fusion.

Seguir

Seguir “Nagios”

Tecnologia WordPress.com