SlideShare uma empresa Scribd logo
1 de 7
Baixar para ler offline
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
(http://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
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
###############################################
## LucianoMaiaCirilo ##
## lucianosuperathotmail.com ##
## http://www.nagiosnapratica.com.br ##
###############################################
##Criandoosarquivostemporarios
mailq>/tmp/fila.log
mailq>/tmp/fila-vazia.log
##Realizandoasconsultas
tail-n1/tmp/fila.log|cut-d""-f5>/tmp/nfila.txt
cat/tmp/fila-vazia.log|grep"Mailqueueisempty">/dev/null
##Testandoaultimaconsultaparaverificarseafilaestavazia
if[$?=0]
then
echo"OK-AfiladeE-mailestavazia"
exit0
##Filamenorouiguala50
elif[`cat/tmp/nfila.txt`-lt50]
then
echo"OK-Afilatem`cat/tmp/nfila.txt`e-mails"
exit0
##Filamenorouiguala80
elif[`cat/tmp/nfila.txt`-lt80]
then
echo"WARNING-Afilatem`cat/tmp/nfila.txt`e-mails"
exit1
##Filamaiorque80
elif[`cat/tmp/nfila.txt`-gt80]
then
echo"CRITICAL-Afilatem`cat/tmp/nfila.txt`e-mails"
exit2
else
echo"UNKNOWN-Erroaotentarlerafiladee-mail"
exit3
fi
## 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 esta
listado em algumas blacklist publicas, como vocês perceberam como qualquer outro
sysadmin não vivo só de Nagios. Espero que gostem e utilizem:
vim /usr/local/nagios/libexec/check_rbl.sh
#!/bin/sh
#########################################################################
## #
## check_rbl.sh-VerificaseoIPestalistadonasprincipaisRBLs #
## LucianoMaiaCirilo-lucianosuper2atgmail.com #
## http://www.nagiosnapratica.com.br #
## #
#########################################################################
iprbl(){
cat/tmp/$iplog|cut-d.-f1>/tmp/1$iplog
cat/tmp/$iplog|cut-d.-f2>/tmp/2$iplog
cat/tmp/$iplog|cut-d.-f3>/tmp/3$iplog
cat/tmp/$iplog|cut-d.-f4>/tmp/4$iplog
paste-d"."/tmp/4$iplog/tmp/3$iplog/tmp/2$iplog/tmp/1$iplog>/tmp/reverso
}
nomeip(){
>/tmp/nslookup$iplog.log
nslookup"$iplog">/tmp/nslookup$iplog.log
cat/tmp/nslookup$iplog.log|grep-v"#53"|grep"Address"|cut-c10-900>
}
if[$#=0]
then
echo"Usage:$0{IP}"
echo"Or"
echo"Usage:$0200.0.0.10"
exit1
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]
then
iprbl
else
nomeip
iprbl
fi
#####verificandoasrbls
foriin`cat/tmp/reverso2$iplog.log`;
do
host-tA$i.relays.mail-abuse.org >>/tmp/verifica2$iplog.log
host-tA$i.b.barracudacentral.org >>/tmp/verifica2$iplog.log
host-tA$i.rbl.smtpcheck.net >>/tmp/verifica2$iplog.log
host-tA$i.zen.spamhaus.org >>/tmp/verifica2$iplog.log
host-tA$i.bl.spamcop.net >>/tmp/verifica2$iplog.log
done
####TratandoaSaidadoArquivo
output(){
cat/tmp/ips-listados2$iplog.log|grep"relays.mail-abuse">/dev/null
if[$?=0]
then
echo"$i.relays.mail-abuse.org">>/tmp/saida$iplog.log
else
echo"IPnotfound">>/dev/null
fi
cat/tmp/ips-listados2$iplog.log|grep"barracudacentral">/dev/null
if[$?=0]
then
echo"$i.b.barracudacentral.org">>/tmp/saida$iplog.log
else
echo"IPnotfound">>/dev/null
fi
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/null
if[$?=0]
then
echo"$i.rbl.smtpcheck.net">>/tmp/saida$iplog.log
else
echo"IPnotfound">>/dev/null
fi
cat/tmp/ips-listados2$iplog.log|grep"zen.spamhaus">/dev/null
if[$?=0]
then
echo"$i.zen.spamhaus.org">>/tmp/saida$iplog.log
else
echo"IPnotfound">>/dev/null
fi
cat/tmp/ips-listados2$iplog.log|grep"spamcop.net">/dev/null
if[$?=0]
then
echo"$i.bl.spamcop.net">>/tmp/saida$iplog.log
else
echo"IPnotfound">>/dev/null
fi
echo"CRITICAL-`cat/tmp/saida$iplog.log`"
exit2
}
cat/tmp/verifica2$iplog.log|grep-v"notfound"|grep-v"hasnoA">/tmp
if[$?=0]
then
output
else
echo"OK-`cat/tmp/$iplog`IPNotListRBLsPublic"
exit0
fi
### 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 Shell
Script, então sugiro que pesquise mesmo
Para usar o plugin sugiro que leia o artigo sobre o nrpe para monitorar os clientes
linux, 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 Cirilo
LPIC-3
http://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.cfg
E 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 as
opiniões.
Att.
Luciano Maia Cirilo
LPIC-3
http://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 ou
não??
tipo, gostaria de criar um scrip para mostrar se alguns serviços meus estao rodando ou
parado, como por exemplo, asterisk, openfire, mysql, etc…
sei q existe alguns plugins prontos tanto q uso mtos, mas keria saber fazer algo bem basico
q 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 laser
Brother todos os modelos ?
Crie um website ou blog gratuito no WordPress.com. O tema Fusion.
Seguir
Seguir “Nagios”
Tecnologia WordPress.com

Mais conteúdo relacionado

Mais procurados

O novo ASP.NET - ThinkUP! - Janeiro/2017
O novo ASP.NET - ThinkUP! - Janeiro/2017O novo ASP.NET - ThinkUP! - Janeiro/2017
O novo ASP.NET - ThinkUP! - Janeiro/2017Renato Groff
 
PHP e o Desenvolvimento Mobile Web - PHPhederal
PHP e o Desenvolvimento Mobile Web - PHPhederalPHP e o Desenvolvimento Mobile Web - PHPhederal
PHP e o Desenvolvimento Mobile Web - PHPhederalBruno Fernandes "PorKaria"
 
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7tdc-globalcode
 
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...Rodrigo Wanderley de Melo Cardoso
 
O novo ASP.NET - Verity IT - Janeiro/2017
O novo ASP.NET - Verity IT - Janeiro/2017O novo ASP.NET - Verity IT - Janeiro/2017
O novo ASP.NET - Verity IT - Janeiro/2017Renato Groff
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsGilmar Pupo
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.jsDenis Velrino
 
Técnicas de frontend para aplicações django - PythonBrasil[9]
Técnicas de frontend para aplicações django  - PythonBrasil[9]Técnicas de frontend para aplicações django  - PythonBrasil[9]
Técnicas de frontend para aplicações django - PythonBrasil[9]Rael Max
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaFernando Boaglio
 
Spring roo - Criando aplicações Java Web em poucos minutos
Spring roo - Criando aplicações Java Web em poucos minutosSpring roo - Criando aplicações Java Web em poucos minutos
Spring roo - Criando aplicações Java Web em poucos minutosledsifes
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsMichel Cordeiro
 
Desenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring RooDesenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring RooEder Magalhães
 

Mais procurados (15)

O novo ASP.NET - ThinkUP! - Janeiro/2017
O novo ASP.NET - ThinkUP! - Janeiro/2017O novo ASP.NET - ThinkUP! - Janeiro/2017
O novo ASP.NET - ThinkUP! - Janeiro/2017
 
PHP e o Desenvolvimento Mobile Web - PHPhederal
PHP e o Desenvolvimento Mobile Web - PHPhederalPHP e o Desenvolvimento Mobile Web - PHPhederal
PHP e o Desenvolvimento Mobile Web - PHPhederal
 
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
TDC2018SP | Trilha PHP Essencial - O que nao fazer ao atualizar para o PHP 7
 
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
Ecossistema PHP - O presente, o passado e o futuro da linguagem back-end mais...
 
Desenvolvimento Mobile Web usando PHP
Desenvolvimento Mobile Web usando PHPDesenvolvimento Mobile Web usando PHP
Desenvolvimento Mobile Web usando PHP
 
O novo ASP.NET - Verity IT - Janeiro/2017
O novo ASP.NET - Verity IT - Janeiro/2017O novo ASP.NET - Verity IT - Janeiro/2017
O novo ASP.NET - Verity IT - Janeiro/2017
 
Integração contínua em PHP com Jenkins
Integração contínua em PHP com JenkinsIntegração contínua em PHP com Jenkins
Integração contínua em PHP com Jenkins
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
 
Técnicas de frontend para aplicações django - PythonBrasil[9]
Técnicas de frontend para aplicações django  - PythonBrasil[9]Técnicas de frontend para aplicações django  - PythonBrasil[9]
Técnicas de frontend para aplicações django - PythonBrasil[9]
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do Java
 
Spring roo - Criando aplicações Java Web em poucos minutos
Spring roo - Criando aplicações Java Web em poucos minutosSpring roo - Criando aplicações Java Web em poucos minutos
Spring roo - Criando aplicações Java Web em poucos minutos
 
Dev ops integração contínua com jenkins
Dev ops integração contínua com jenkinsDev ops integração contínua com jenkins
Dev ops integração contínua com jenkins
 
Jenkins
JenkinsJenkins
Jenkins
 
Desenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring RooDesenvolvimento Produtivo com Spring Roo
Desenvolvimento Produtivo com Spring Roo
 
Web open source
Web open sourceWeb open source
Web open source
 

Semelhante a Shell Script Check Mail Queue

Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell ScriptReinaldo Lima
 
Containers no Ambiente de Desenvolvimento - mvp conf latam 2019
Containers no Ambiente de Desenvolvimento - mvp conf latam 2019Containers no Ambiente de Desenvolvimento - mvp conf latam 2019
Containers no Ambiente de Desenvolvimento - mvp conf latam 2019Luiz Carlos Faria
 
Proposta de solução ferramentas-processos
Proposta de solução ferramentas-processosProposta de solução ferramentas-processos
Proposta de solução ferramentas-processosMauricio Bonetti
 
Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Better Developer
 
O que você precisa saber sobre ASP.NET CORE
O que você precisa saber sobre ASP.NET COREO que você precisa saber sobre ASP.NET CORE
O que você precisa saber sobre ASP.NET CORERodrigo Kono
 
See project - Segurança em Cloud Computing v2 FISL 11 2010
See project - Segurança em Cloud Computing v2 FISL 11 2010See project - Segurança em Cloud Computing v2 FISL 11 2010
See project - Segurança em Cloud Computing v2 FISL 11 2010Marcelo Fleury
 
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworksDo Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworksPablo Dall'Oglio
 
Design for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPDesign for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPPablo Dall'Oglio
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!magnunleno
 
NOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com pythonNOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com pythonfelipe bastosweb
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoFlávio Lisboa
 
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Marcelo Marques Gonçalves
 
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e AtitudeCriando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e AtitudePablo Dall'Oglio
 
OpenVAS - Scanner em Vulnerabilidades Open Source (fork Nessus GPL2)
OpenVAS - Scanner em Vulnerabilidades Open Source (fork Nessus GPL2)OpenVAS - Scanner em Vulnerabilidades Open Source (fork Nessus GPL2)
OpenVAS - Scanner em Vulnerabilidades Open Source (fork Nessus GPL2)Mauro Risonho de Paula Assumpcao
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Luís Cobucci
 

Semelhante a Shell Script Check Mail Queue (20)

Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
 
Containers no Ambiente de Desenvolvimento - mvp conf latam 2019
Containers no Ambiente de Desenvolvimento - mvp conf latam 2019Containers no Ambiente de Desenvolvimento - mvp conf latam 2019
Containers no Ambiente de Desenvolvimento - mvp conf latam 2019
 
Squid
SquidSquid
Squid
 
Proposta de solução ferramentas-processos
Proposta de solução ferramentas-processosProposta de solução ferramentas-processos
Proposta de solução ferramentas-processos
 
Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)Do código à produção com Gitlab (mundo python)
Do código à produção com Gitlab (mundo python)
 
Design Patterns com PHP
Design Patterns com PHPDesign Patterns com PHP
Design Patterns com PHP
 
O que você precisa saber sobre ASP.NET CORE
O que você precisa saber sobre ASP.NET COREO que você precisa saber sobre ASP.NET CORE
O que você precisa saber sobre ASP.NET CORE
 
See project - Segurança em Cloud Computing v2 FISL 11 2010
See project - Segurança em Cloud Computing v2 FISL 11 2010See project - Segurança em Cloud Computing v2 FISL 11 2010
See project - Segurança em Cloud Computing v2 FISL 11 2010
 
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworksDo Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
 
PostgreSQL Rock Star
PostgreSQL Rock StarPostgreSQL Rock Star
PostgreSQL Rock Star
 
Design for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPDesign for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHP
 
Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!Adeus Wordpress. Ola Pelican!
Adeus Wordpress. Ola Pelican!
 
NOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com pythonNOSQLBA 2018 - ArangoDB com python
NOSQLBA 2018 - ArangoDB com python
 
Como se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundoComo se tornar o pior programador PHP do mundo
Como se tornar o pior programador PHP do mundo
 
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
 
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e AtitudeCriando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
Criando software para o futuro com DDD, Arquitetura, Patterns, e Atitude
 
OpenVAS - Scanner em Vulnerabilidades Open Source (fork Nessus GPL2)
OpenVAS - Scanner em Vulnerabilidades Open Source (fork Nessus GPL2)OpenVAS - Scanner em Vulnerabilidades Open Source (fork Nessus GPL2)
OpenVAS - Scanner em Vulnerabilidades Open Source (fork Nessus GPL2)
 
Tutorial codeigniter
Tutorial codeigniterTutorial codeigniter
Tutorial codeigniter
 
PHP Tools for Fast coding
PHP Tools for Fast codingPHP Tools for Fast coding
PHP Tools for Fast coding
 
Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011Qualidade em projetos PHP - SoLiSC 2011
Qualidade em projetos PHP - SoLiSC 2011
 

Mais de Carlos Eduardo

Iptables bridging and firewalling
Iptables bridging and firewallingIptables bridging and firewalling
Iptables bridging and firewallingCarlos Eduardo
 
Alterar nome do_domínio–rendom_win-2008_e_2003
Alterar nome do_domínio–rendom_win-2008_e_2003Alterar nome do_domínio–rendom_win-2008_e_2003
Alterar nome do_domínio–rendom_win-2008_e_2003Carlos Eduardo
 
Configuração dns memorial descritivo
Configuração dns   memorial descritivoConfiguração dns   memorial descritivo
Configuração dns memorial descritivoCarlos Eduardo
 
Additional resources repositories_rpm_forge - centos wiki
Additional resources repositories_rpm_forge - centos wikiAdditional resources repositories_rpm_forge - centos wiki
Additional resources repositories_rpm_forge - centos wikiCarlos Eduardo
 
Postfix amavisd connect to 127.0.0.1[127.0.0.1]-10024_ connection refused _...
Postfix amavisd   connect to 127.0.0.1[127.0.0.1]-10024_ connection refused _...Postfix amavisd   connect to 127.0.0.1[127.0.0.1]-10024_ connection refused _...
Postfix amavisd connect to 127.0.0.1[127.0.0.1]-10024_ connection refused _...Carlos Eduardo
 
Migrate linux user password to postfix vmail database
Migrate linux user password to postfix vmail databaseMigrate linux user password to postfix vmail database
Migrate linux user password to postfix vmail databaseCarlos Eduardo
 
Poppassd setup howto for rhel cent os 5 ‹‹ linux mail server setup and howto ...
Poppassd setup howto for rhel cent os 5 ‹‹ linux mail server setup and howto ...Poppassd setup howto for rhel cent os 5 ‹‹ linux mail server setup and howto ...
Poppassd setup howto for rhel cent os 5 ‹‹ linux mail server setup and howto ...Carlos Eduardo
 
Samsung r440 com wireless broadcom bcm4313 no ubuntu 11.10
Samsung r440 com wireless broadcom bcm4313 no ubuntu 11.10Samsung r440 com wireless broadcom bcm4313 no ubuntu 11.10
Samsung r440 com wireless broadcom bcm4313 no ubuntu 11.10Carlos Eduardo
 
Exploit access root to kernel 2.6.32 2.6.36 privilege escalation exploit
Exploit access root to kernel 2.6.32 2.6.36   privilege escalation exploitExploit access root to kernel 2.6.32 2.6.36   privilege escalation exploit
Exploit access root to kernel 2.6.32 2.6.36 privilege escalation exploitCarlos Eduardo
 
How to root phones or tablets running android 2.3 gingerbread jailbreak an...
How to root phones or tablets running android 2.3 gingerbread    jailbreak an...How to root phones or tablets running android 2.3 gingerbread    jailbreak an...
How to root phones or tablets running android 2.3 gingerbread jailbreak an...Carlos Eduardo
 
Compartilhamento no samba com permissão de grupo
Compartilhamento no samba com permissão de grupoCompartilhamento no samba com permissão de grupo
Compartilhamento no samba com permissão de grupoCarlos Eduardo
 
Converting parallels or vm ware to virtual box
Converting parallels or vm ware to virtual boxConverting parallels or vm ware to virtual box
Converting parallels or vm ware to virtual boxCarlos Eduardo
 
Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6Carlos Eduardo
 
Alterar memória kvm virtual machine
Alterar memória kvm virtual machineAlterar memória kvm virtual machine
Alterar memória kvm virtual machineCarlos Eduardo
 
Instalando e configurando o serviço snmpd no red hat 5.3 cent_os
Instalando e configurando o serviço snmpd no red hat 5.3   cent_osInstalando e configurando o serviço snmpd no red hat 5.3   cent_os
Instalando e configurando o serviço snmpd no red hat 5.3 cent_osCarlos Eduardo
 

Mais de Carlos Eduardo (20)

Iptables bridging and firewalling
Iptables bridging and firewallingIptables bridging and firewalling
Iptables bridging and firewalling
 
Alterar nome do_domínio–rendom_win-2008_e_2003
Alterar nome do_domínio–rendom_win-2008_e_2003Alterar nome do_domínio–rendom_win-2008_e_2003
Alterar nome do_domínio–rendom_win-2008_e_2003
 
Configuração dns memorial descritivo
Configuração dns   memorial descritivoConfiguração dns   memorial descritivo
Configuração dns memorial descritivo
 
Additional resources repositories_rpm_forge - centos wiki
Additional resources repositories_rpm_forge - centos wikiAdditional resources repositories_rpm_forge - centos wiki
Additional resources repositories_rpm_forge - centos wiki
 
Postfix amavisd connect to 127.0.0.1[127.0.0.1]-10024_ connection refused _...
Postfix amavisd   connect to 127.0.0.1[127.0.0.1]-10024_ connection refused _...Postfix amavisd   connect to 127.0.0.1[127.0.0.1]-10024_ connection refused _...
Postfix amavisd connect to 127.0.0.1[127.0.0.1]-10024_ connection refused _...
 
Migrate linux user password to postfix vmail database
Migrate linux user password to postfix vmail databaseMigrate linux user password to postfix vmail database
Migrate linux user password to postfix vmail database
 
Poppassd setup howto for rhel cent os 5 ‹‹ linux mail server setup and howto ...
Poppassd setup howto for rhel cent os 5 ‹‹ linux mail server setup and howto ...Poppassd setup howto for rhel cent os 5 ‹‹ linux mail server setup and howto ...
Poppassd setup howto for rhel cent os 5 ‹‹ linux mail server setup and howto ...
 
Samsung r440 com wireless broadcom bcm4313 no ubuntu 11.10
Samsung r440 com wireless broadcom bcm4313 no ubuntu 11.10Samsung r440 com wireless broadcom bcm4313 no ubuntu 11.10
Samsung r440 com wireless broadcom bcm4313 no ubuntu 11.10
 
Exploit access root to kernel 2.6.32 2.6.36 privilege escalation exploit
Exploit access root to kernel 2.6.32 2.6.36   privilege escalation exploitExploit access root to kernel 2.6.32 2.6.36   privilege escalation exploit
Exploit access root to kernel 2.6.32 2.6.36 privilege escalation exploit
 
How to root phones or tablets running android 2.3 gingerbread jailbreak an...
How to root phones or tablets running android 2.3 gingerbread    jailbreak an...How to root phones or tablets running android 2.3 gingerbread    jailbreak an...
How to root phones or tablets running android 2.3 gingerbread jailbreak an...
 
Compartilhamento no samba com permissão de grupo
Compartilhamento no samba com permissão de grupoCompartilhamento no samba com permissão de grupo
Compartilhamento no samba com permissão de grupo
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Lsof
LsofLsof
Lsof
 
Converting parallels or vm ware to virtual box
Converting parallels or vm ware to virtual boxConverting parallels or vm ware to virtual box
Converting parallels or vm ware to virtual box
 
Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6Startup guide for kvm on cent os 6
Startup guide for kvm on cent os 6
 
Alterar memória kvm virtual machine
Alterar memória kvm virtual machineAlterar memória kvm virtual machine
Alterar memória kvm virtual machine
 
Comando kvm terminal
Comando kvm terminalComando kvm terminal
Comando kvm terminal
 
Instalação geo ip
Instalação geo ipInstalação geo ip
Instalação geo ip
 
Otimizando seu Squid
Otimizando seu SquidOtimizando seu Squid
Otimizando seu Squid
 
Instalando e configurando o serviço snmpd no red hat 5.3 cent_os
Instalando e configurando o serviço snmpd no red hat 5.3   cent_osInstalando e configurando o serviço snmpd no red hat 5.3   cent_os
Instalando e configurando o serviço snmpd no red hat 5.3 cent_os
 

Shell Script Check Mail Queue

  • 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/ 1/7 Artigo 12 – Criando plugin para o Nagios em Shell Script (http://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
  • 2. 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 ############################################### ## LucianoMaiaCirilo ## ## lucianosuperathotmail.com ## ## http://www.nagiosnapratica.com.br ## ############################################### ##Criandoosarquivostemporarios mailq>/tmp/fila.log mailq>/tmp/fila-vazia.log ##Realizandoasconsultas tail-n1/tmp/fila.log|cut-d""-f5>/tmp/nfila.txt cat/tmp/fila-vazia.log|grep"Mailqueueisempty">/dev/null ##Testandoaultimaconsultaparaverificarseafilaestavazia if[$?=0] then echo"OK-AfiladeE-mailestavazia" exit0 ##Filamenorouiguala50 elif[`cat/tmp/nfila.txt`-lt50] then echo"OK-Afilatem`cat/tmp/nfila.txt`e-mails" exit0 ##Filamenorouiguala80 elif[`cat/tmp/nfila.txt`-lt80] then echo"WARNING-Afilatem`cat/tmp/nfila.txt`e-mails" exit1 ##Filamaiorque80 elif[`cat/tmp/nfila.txt`-gt80] then echo"CRITICAL-Afilatem`cat/tmp/nfila.txt`e-mails" exit2 else echo"UNKNOWN-Erroaotentarlerafiladee-mail" exit3 fi ## Necessário alterar a permissão chmod 755 check_fila_mail.sh ## Ok, agora vamos testar o plugin
  • 3. 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 esta listado em algumas blacklist publicas, como vocês perceberam como qualquer outro sysadmin não vivo só de Nagios. Espero que gostem e utilizem: vim /usr/local/nagios/libexec/check_rbl.sh #!/bin/sh ######################################################################### ## # ## check_rbl.sh-VerificaseoIPestalistadonasprincipaisRBLs # ## LucianoMaiaCirilo-lucianosuper2atgmail.com # ## http://www.nagiosnapratica.com.br # ## # ######################################################################### iprbl(){ cat/tmp/$iplog|cut-d.-f1>/tmp/1$iplog cat/tmp/$iplog|cut-d.-f2>/tmp/2$iplog cat/tmp/$iplog|cut-d.-f3>/tmp/3$iplog cat/tmp/$iplog|cut-d.-f4>/tmp/4$iplog paste-d"."/tmp/4$iplog/tmp/3$iplog/tmp/2$iplog/tmp/1$iplog>/tmp/reverso } nomeip(){ >/tmp/nslookup$iplog.log nslookup"$iplog">/tmp/nslookup$iplog.log cat/tmp/nslookup$iplog.log|grep-v"#53"|grep"Address"|cut-c10-900> } if[$#=0] then echo"Usage:$0{IP}" echo"Or" echo"Usage:$0200.0.0.10" exit1
  • 4. 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] then iprbl else nomeip iprbl fi #####verificandoasrbls foriin`cat/tmp/reverso2$iplog.log`; do host-tA$i.relays.mail-abuse.org >>/tmp/verifica2$iplog.log host-tA$i.b.barracudacentral.org >>/tmp/verifica2$iplog.log host-tA$i.rbl.smtpcheck.net >>/tmp/verifica2$iplog.log host-tA$i.zen.spamhaus.org >>/tmp/verifica2$iplog.log host-tA$i.bl.spamcop.net >>/tmp/verifica2$iplog.log done ####TratandoaSaidadoArquivo output(){ cat/tmp/ips-listados2$iplog.log|grep"relays.mail-abuse">/dev/null if[$?=0] then echo"$i.relays.mail-abuse.org">>/tmp/saida$iplog.log else echo"IPnotfound">>/dev/null fi cat/tmp/ips-listados2$iplog.log|grep"barracudacentral">/dev/null if[$?=0] then echo"$i.b.barracudacentral.org">>/tmp/saida$iplog.log else echo"IPnotfound">>/dev/null fi
  • 5. 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/null if[$?=0] then echo"$i.rbl.smtpcheck.net">>/tmp/saida$iplog.log else echo"IPnotfound">>/dev/null fi cat/tmp/ips-listados2$iplog.log|grep"zen.spamhaus">/dev/null if[$?=0] then echo"$i.zen.spamhaus.org">>/tmp/saida$iplog.log else echo"IPnotfound">>/dev/null fi cat/tmp/ips-listados2$iplog.log|grep"spamcop.net">/dev/null if[$?=0] then echo"$i.bl.spamcop.net">>/tmp/saida$iplog.log else echo"IPnotfound">>/dev/null fi echo"CRITICAL-`cat/tmp/saida$iplog.log`" exit2 } cat/tmp/verifica2$iplog.log|grep-v"notfound"|grep-v"hasnoA">/tmp if[$?=0] then output else echo"OK-`cat/tmp/$iplog`IPNotListRBLsPublic" exit0 fi ### Alterando a permissão chmod 755 check_rbl.sh . Espero que tenha sido esclarecedor para todos. Até a próxima! . . .
  • 6. 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 Shell Script, então sugiro que pesquise mesmo Para usar o plugin sugiro que leia o artigo sobre o nrpe para monitorar os clientes linux, 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 Cirilo LPIC-3 http://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/)
  • 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/ 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.cfg E 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 as opiniões. Att. Luciano Maia Cirilo LPIC-3 http://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 ou não?? tipo, gostaria de criar um scrip para mostrar se alguns serviços meus estao rodando ou parado, como por exemplo, asterisk, openfire, mysql, etc… sei q existe alguns plugins prontos tanto q uso mtos, mas keria saber fazer algo bem basico q 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 laser Brother todos os modelos ? Crie um website ou blog gratuito no WordPress.com. O tema Fusion. Seguir Seguir “Nagios” Tecnologia WordPress.com