Página Inicial > Linux > Zabbix enviando SMS via modem USB

Zabbix enviando SMS via modem USB

Opa,

Essa é uma dica para quem usa o Zabbix (serviço de monitoramento) e precisa enviar as mensagens de alerta via SMS. O Zabbix já possui um serviço de envio via SMS, só que esse envio é realizado via porta serial e eu queria algo que enviasse a mensagem pelo modem USB do celular (utilizei um Nokia E65). Sei que é possível enviar mensagens para um celular via e-mail, mas nesse caso foi necessário enviar via SMS. Depois de algumas pesquisas na Internet achei um post no fórum do Zabbix que ensina como criar um script para isso utilizando o software gsmlib, segue abaixo como fazer.

Primeiro precisamos instalar o software gsmlib, no meu caso (CentOS 5.3) foi necessário instalar o pacote compat-libstdc++-33 como dependência:

# yum install compat-libstdc++-33

Agora fazemos download do pacote e instalamos no sistema (a versão utilizada nesse post foi a 1.10-1):

# wget -c http://pxh.de/fs/gsmlib/download/gsmlib-1.10-1.i386.rpm
# rpm -Uvh gsmlib-1.10-1.i386.rpm

Depois de instalado já podemos fazer um teste e ver se funciona o envio de SMS pelo seu servidor com o comando abaixo (lembrando de mudar o número para onde irá enviar, no caso 23456789):

# gsmsendsms -d /dev/ttyACM0 -b 115200 23456789 “Teste”

OBS.: -d /dev/ttyACM0 refere-se ao modem detectado pelo seu sistema quando plugado na porta USB, verifique pelo comando dmesg qual o dispositivo configurado no seu sistema.

Caso receba uma mensagem “Teste” no celular para onde enviou o SMS significa que tudo ocorreu bem e podemos passar para o próximo passo, que é configurar o Zabbix para utilizar um script para enviar as mensagens de alerta, antes porém devemos verificar as permissões do dispositivo e ter certeza que o usuário zabbix poderá utilizá-lo:

# ls -la /dev/ttyACM0

crw-rw---- 1 root uucp 4, 64 Jun 23 10:10 /dev/ttyACM0

Na saída acima podemos ver que o grupo que tem permissão para ler e gravar no dispositivo é o grupo “uucp”, portanto devemos adicionar o usuário zabbix nesse grupo:

# vim /etc/group

uucp:x:14:uucp,zabbix

Vamos agora configurar o servidor zabbix, primeiro ajustando o caminho onde ficam nossos script’s no arquivo zabbix_server.conf:

# vim /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/etc/zabbix/externalscripts/

Caso o diretório não exista crie-o:

# mkdir /etc/zabbix/externalscripts/

Vamos agora criar o script que será utilizado para enviar as mensagens de alerta e ajustar suas permissões para que possa ser executado pelo usuário zabbix:

# vim /etc/zabbix/externalscripts/send_sms.sh

#!/bin/sh
/usr/bin/gsmsendsms -d /dev/ttyACM1 -b 115200 $1 "$2 $3 $4 $5 $6 $7 $8 $9"

# chown zabbix:root /etc/zabbix/externalscripts/send_sms.sh
# chmod u+x /etc/zabbix/externalscripts/send_sms.sh

Reinicie o servidor Zabbix agora para que as novas configurações tenham efeito:

# /etc/init.d/zabbix_server restart

Acesse o frontend do seu servidor Zabbix, escolha “Administração”, clique em “Tipos de mídias” e depois clique em “Criar Mídia”, na janela que será exibida informe a Descrição da mídia (Ex.: “SMS via USB”), no Tipo escolha “Script”, em “Nome script” informe o nome que definiu o script criado anteriormente (No meu caso send_sms.sh, só precisa informar o nome do script mesmo) e depois clique em “Salvar”.

Agora basta adicionar a mídia ao Usuário/Grupo que receberá a mensagem de alerta, escolha “Administração”, clique em “Usuários”, clique sobre o “Alias” do usuário que deseja, em “Mídia” clique em “Adicionar”, na janela que será exibida escolha o nome que definiu sua nova Mídia (Ex.: “SMS via USB”), informe o número que receberá as mensagens de alerta em “Enviar para” (Ex.: 23456789), defina o período do alerta, quais os tipos de alerta que receberá e se está ativo, depois clique em “Adicionar”, agora clique em “Salvar” e pronto! Seu servidor já deverá estar configurado e enviando alertas via SMS para seu celular.

Abraços!

Fonte: http://www.zabbix.com/forum/showpost.php?p=30510&postcount=16

Categories: Linux Tags: , ,
  1. Leandro
    26, novembro, 2013 em 09:07 | #1

    Infelizmente o link http://pxh.de/fs/gsmlib/download/gsmlib-1.10-1.i386.rpm esta quebrado!

    Grato

  2. 26, novembro, 2013 em 09:39 | #2

    Opa Leandro,

    Verifiquei aqui e realmente o site do desenvolvedor está fora, a solução é tentar pesquisar no Google por algum repositório que tenha o arquivo gsmlib-1.10-1.i386.rpm para a sua plataforma.

    Abraço!

  3. Ronnei
    16, outubro, 2014 em 09:14 | #3

    Olá Luiz,

    No meu caso está dando o seguinte erro quando tento fazer o teste para envio de sms:

    gsmsmsd[ERROR]: expected number (at position 1 of std::string ‘0,1,1,1’)

    tem como me ajudar?

  4. 17, outubro, 2014 em 10:29 | #4

    Opa Ronnei,

    Verifica novamente os arquivos de configuração, não lembro de ter recebido essa mensagem de erro nos meus testes.

    Abraço!

  1. Nenhum trackback ainda.