Post on 11-May-2015
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