Introdução
Esse assunto já foi meio que mencionando em Perl + GSM + Imaginação = Coisas Legais , porém o leitor Alexander reportou alguns problemas ao utilizar a solução em Perl, após alguns e-mails trocados e nenhuma resposta positiva no cenário do Alexander, fiz a sugestão de usar a gsmlib( também mencionada no post anterior) e assim solucionando o problema do amigo leitor.
Meu ambiente de teste desta vez foi um NetBSD5.0 e o celular testado foi o mesmo Motorola V3 Black via cabo USB.
O ambiente do Alexander foi um CentOS release 5.3 e o celular um Motorola V3 re.
Preparando o Ambiente
Instalando o gsmlib
Netbsd
pkg_add -vv ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/5.0/All/gsmlib-1.10nb2.tgz
FreeBSD
pkg_add -v ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/All/gsmlib-1.10_4.tbz
CentOS
yum install libstdc++
wget -c ‘http://www.pxh.de/fs/gsmlib/download/gsmlib-1.10-1.i386.rpm’
rpm -ivh gsmlib-1.10-1.i386.rpm
Configurando comunicação com o Celular
NetBSD
Não foi necessário absolutamente nada, espetou o celular, detectou e reconheceu usando o umodem.
Mensagem do dmesg
"umodem0: Motorola Inc. Motorola Phone (V3), rev 1.10/0.01, addr 2, iclass 2/2"
ln -s /dev/ttyU0 /dev/mobilephone
FreeBSD*
São necessários os módulos umodem e ucom, adiciona-se então ao ‘/boot/loader.conf’:
ucom_load=”YES”
umodem_load=”YES”
Após reinicio( sim, reinicio, quando tentei carregar o módulo com o kldload deu panic ) do sistema, quando plugado o celular à USB veremos uma mensagem semelhante a essa na saída do comando ‘dmesg’.
ucom0: <Motorola Inc. Motorola Phone (V3), class 2/0, rev 1.10/0.01, addr 2> on uhub1
ln -s /dev/ttyU0 /dev/mobilephone
*instruções copiadas do post sobre Perl, estes passos não foram refeitos.
CentOS*
Já vem com suporte ao módulo cdc_acm que é necessário.
ln -s /dev/ttyACM0 /dev/mobilephone
chmod 666 /dev/ttyACM0
chmod 666 /dev/mobilephone
*Passo-a-passo descrito pelo colega Alexander
Configuração Nagios
Adicionar ao arquivo commands.cfg
define command{ command_name notify-host-by-sms command_line /usr/bin/gsmsendsms $CONTACTPAGER$ "Host:$HOSTNAME$ - State:$HOSTSTATE$" } define command{ command_name notify-service-by-sms command_line /usr/bin/gsmsendsms $CONTACTPAGER$ "Host:$HOSTNAME$ - Serv: $SERVICEDESC$ - State: $SERVICESTATE$" }
Pronto, agora é só adicionar o número do celular na definição de contatos e o tipo de notificação ao host/serviço.
pager 123456789 * DDD com 2 dígitos * número do celular
Conclusão e Agradecimentos
Como tinha citado no post anterior, o envio de sms pode ser uma opção em caso de queda de internet. Há claro, que se tomar os devidos cuidados ao configurar o nagios, tanto para não extrapolar no envio desnecessários de mensagens, como receber um sms em horário inapropriado para um alerta básico, resumindo: Tenha bom senso.
Gostaria de agradecer ao Alexander, que contribuiu com as informações necessárias no ambiente CentOS, configuração do nagios, que testou e está usando em produção a solução descrita nesse post.
A todos um grande abraço, espero que tenham gostado e possam utilizar dessa solução no ambiente de vocês.
Diego Pitombeira dos Prazeres
Posted on junho 9, 2009
0