Sem dúvida alguma, um ambiente de TI monitorado é muito importante para manter a disponibildade dos serviços de email, sistemas, internet e etc., e em caso de problemas poder rapidamente resolve-los, mas como ser notificado de um problema no sistema em qualquer lugar? uma alternativa é ser avisado direto no celular via SMS, e é sobre isso que trata este tutorial.
Para envio de mensagem via SMS você deve ter um gateway de SMS na sua rede, ou contratar o serviço de um terceiro. Vamos tratar neste tutorial a segunda opção.
Primeiro você deve contratar o serviço de gateway de SMS, eu uso o serviço da Human Mobile ( http://www.human.com.br/sms ) , você pode criar uma conta gratuita para testar o sistema.
Criado a conta, basta seguir os passos abaixo
1. Instalar os modulos do PERL usados pelos script de envio de SMS
perl -MCPAN -e ‘install URI::Escape’
perl -MCPAN -e ‘install LWP::Simple’
perl -MCPAN -e ‘install LWP::Simple’
2. Faça o download do script sendsms.pl na seção de downloads (http://meutecnico.com/blog/downloads) descomprima com o comando unzip e coloque o script em /usr/local/nagios/libexec
3. De permissão de execução do arquivo
chmod +x /usr/local/nagios/libexec sendsms.pl
./sendsms.pl 551199999999 "Mensagem de teste…"
5. Crie o comando no nagios conforme o exemplo abaixo
define command{
command_name notify-by-sms
command_line $USER1$/sendsms.pl $CONTACTPAGER$ "*Monitoramento* notif.: $NOTIFICATIONTYPE$ Svc: $SERVICEDESC$ Equip.: $HOSTNAME$ Descr: $HOSTALIAS IP: $HOSTADDRESS$ Estado: $SERVICESTATE$ Data/Hora: $DATE$ / $TIME$ info: $SERVICEOUTPUT$"
}
define command{
command_name host-notify-by-sms
command_line $USER1$/sendsms.pl $CONTACTPAGER$ "*Monitoramento* $NOTIFICATIONTYPE$ equipamento: $HOSTNAME$ – $HOSTALIAS$ IP: $HOSTADDRESS$ Data/Hora: $DATE$ / $TIME$ info: $SERVICEOUTPUT$"
}
command_name notify-by-sms
command_line $USER1$/sendsms.pl $CONTACTPAGER$ "*Monitoramento* notif.: $NOTIFICATIONTYPE$ Svc: $SERVICEDESC$ Equip.: $HOSTNAME$ Descr: $HOSTALIAS IP: $HOSTADDRESS$ Estado: $SERVICESTATE$ Data/Hora: $DATE$ / $TIME$ info: $SERVICEOUTPUT$"
}
define command{
command_name host-notify-by-sms
command_line $USER1$/sendsms.pl $CONTACTPAGER$ "*Monitoramento* $NOTIFICATIONTYPE$ equipamento: $HOSTNAME$ – $HOSTALIAS$ IP: $HOSTADDRESS$ Data/Hora: $DATE$ / $TIME$ info: $SERVICEOUTPUT$"
}
define contact{
contact_name Cleiton_Souza
alias admin
contactgroups Administradores, Supervisors
host_notification_period 24×7
service_notification_period 24×7
host_notification_options d,u,r,f,s
service_notification_options w,c,r,f,s
host_notification_commands host-notify-by-email, host-notify-by-sms
service_notification_commands notify-by-email, notify-by-sms
email cleitonsouza01@gmail.com
pager 551199999999
}
contact_name Cleiton_Souza
alias admin
contactgroups Administradores, Supervisors
host_notification_period 24×7
service_notification_period 24×7
host_notification_options d,u,r,f,s
service_notification_options w,c,r,f,s
host_notification_commands host-notify-by-email, host-notify-by-sms
service_notification_commands notify-by-email, notify-by-sms
email cleitonsouza01@gmail.com
pager 551199999999
}
Parabéns pelo post, há muito tempo tento configurar o envio de SMS no nagios.
ResponderExcluirO arquivo sendsms.pl está disponível em outro lugar? O link está com erro.
Abraço e obrigado.
Realmente o link está quebrado.
ResponderExcluirTente nesses links, mas adianto que não testei:
http://www.sms-integration.com/p_110-nagios-sms.html
ou
http://blog.simon-meggle.de/nagios-sms-script/
ou
http://www.freedownload3.com/software/sendsms_pl.html
abraço
Pessoal segue abaixo o sendsms.pl
ResponderExcluir#!/usr/bin/perl -w
use strict;
#Informe seu usuario human gateway
my $account = "sua conta";
#Informe sua senha human gateway
my $code = "sua senha";
use URI::Escape;
##### Nao Precisa Modificar Abaixo #####
########################################
#o primeiro argumento eh o celular de destino da mensagem que o Nagios insere automaticamente
my $mobile = "$ARGV[0]";
#o segundo argumento eh o texto do sms
my $rawmsg = "$ARGV[1]";
#o texto deve ser codificado para ser enviado na URL
my $text = uri_escape($rawmsg);
#Envia a mensagem
use LWP::Simple;
get("http://system.human.com.br:8080/GatewayIntegration/msgSms.do?dispatch=send&account=$account&code=$code&to=$mobile&msg=$text");
#Descomente para receber o status de retorno da mensagem
#print "$text\n";
Fernando!
ResponderExcluirObrigado pela colaboração
Olá, Pessoal sera que alguém saberia me dizer se para enviar e-mail eu tenho que ter um postfix instalado fazendo o papel do smtp ou o proprio nagios ja envia o e-mail por alguma ferramenta?
ResponderExcluirObrigado.
Pessoal me antecipei e achei a solução para o nagios enviar e-mail é necessário instalar os pacotes apt-get install heirloom-mailx postfix
ResponderExcluirAtt.
Bom dia Pessoal, não estou conseguindo instalar os módulos PERL, o erro esta abaixo...utilizo o Fedora, alguém sabe o que poderia ser?
ResponderExcluirperl -MCPAN -e 'install URI::Escape'
Can't locate CPAN.pm in @INC (@INC contains: /usr/local/lib/perl5 /usr/local/share/perl5 /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5 /usr/share/perl5 .).
BEGIN failed--compilation aborted.
Abraços
Tenta instalar pelo apt-get. Aqui na minha empresa não consigo instalar pelo CPAN devido a regra no firewall imposto pela equipe de segurança, a unica forma é esta aqui em em baixo.
ExcluirLWP::Simple
apt-get install libwww-perl
URI::URL
apt-get install liburi-perl
Este comentário foi removido pelo autor.
ResponderExcluirOlá,
ResponderExcluirAqui só está enviando quando o serviço cai, quando da o recovery não envia sendo que o serviço pelo email ta ok, quando cai manda o email e o sms e qd levanta somente o email.
Consegui fazer o script funcionar porém o nagios não envia as notificações, alguém poderia mostrar como esta o commands.cfg? tanto para e-mail quanto para sms.
ResponderExcluirpara e-mail estou usando o postfix com gateway gmail o script funciona e envia email quando eu faço, mas o nagios não envia as notificações, o que será?