Para tornar seu monitoramento com o Zabbix mais efetivo, vamos utilizar o envio de SMS (Short Message Service) pela API do Google, tornando nosso monitoramento mais poderoso.
Tendo como partida um servidor Zabbix corretamente instalado e configurado, vamos partir para um próximo nível, começando por instalar corretamente o GoogleCL (API do Google) que nos permite utilizar vários serviços do Google via linha de comando, assim, poderemos desenvolver scripts mirabolantes para diversas aplicações.
Passarei aqui uma ideia bastante simples onde utilizarei essa API para o envio de SMS pelo Google.
O serviço utilizado no Google para envio de mensagens é o Google Agenda (Calendar), no qual nos permite criar eventos e lembretes; estes lembretes podem ser desde um pop-up em seu computador e até mesmo uma mensagem em seu celular.
* O Google não cobra por este serviço.
Uma rápida busca é possível encontrar como melhor configurar a agenda do Google para o envio de SMS, sendo assim, vamos pular esta parte e vamos nos ater em como nosso servidor Zabbix vai utilizar esta API tão bacana.
Instalando o GoogleCL
Vou demostrar a instalação a partir do Debian 6.0 Squeeze, onde está instalado meu servidor Zabbix.
Fazendo a busca através de comandos de busca de pacotes, encontramos a ultima versão do GoogleCL, conforme exemplo abaixo:
apt-cache search googlecl
googlecl - command-line tool for access to (some) Google services
Mas, quando eu utilizei essa versão (googlecl_0.9.13-1_all.deb - versão do momento deste tutorial), encontrei diversos problemas, e em busca de soluções, encontrei vários fóruns que a melhor solução seria instalar a versão um pouco mais antiga, porém, mais estável.
Optei então, por instalar a versão: googlecl 0.9.10-1 command-line tool for access to (some) Google services
[3] Comentário enviado por stringuetta em 02/01/2013 - 13:13h
edul0pes
Você sabe me dizer como eu troco de usuário no googlecl ? Tentei de todas as formas e o calendar continua associado ao email que não quero mais, o qual na verdade até exclui, mesmo removendo o pacote do python e o googlecl não resolveu, como se armazenasse em um cache.
[5] Comentário enviado por stringuetta em 02/01/2013 - 15:42h
edul0pes
Exatamente como disse, resolvido o problema. Uma outra duvida, nos parâmetro de "mensagem padrão" exibido na tela do artigo, você criou manualmente, pois não achei esses parâmetro nas configurações de triggers.
[6] Comentário enviado por edul0pes em 02/01/2013 - 18:01h
Olá stringuetta,
Que bom que tenha dado certo.
Os parâmetros configurados na "mensagem padrão" e "mensagem de recuperação" eu criei através das macros definidas na documentação do Zabbix, disponível no link abaixo:
Essas macros são bastante interessantes quando precisamos saber de diversos detalhes do evento e também quando utilizamos o escalonamento de ações no Zabbix, proporcionando uma maior rapidez na solução de um "problema".
[7] Comentário enviado por leandrojpg em 05/01/2013 - 21:20h
Cara sempre tive interesse em algo assim, mas tenho uma duvida tenho que contratar algum pacote de envio de SMS de alguma operadora,ou só usando o google calendar?
[8] Comentário enviado por edul0pes em 07/01/2013 - 07:58h
Caro leandrojpg,
Não precisa contratar nada, o Google não cobra pelo envio do SMS, algumas operadoras podem cobrar o serviço, é possível verificar com a operadora. Posso afirmar que a TIM não cobra o serviço. Assim, não temos gastos com o monitoramento + SMS, basta criar um login no google e utilizar os serviços.
É bastante simples, eu sugiro, caso seja o seu cenário, você compartilhe a agenda criada com a sua pessoal, assim você pode aumentar o número de destinatários, para cada usuário você compartilha a agenda e o usuário configure para receber por SMS também.
[16] Comentário enviado por modicow em 09/01/2013 - 01:01h
Boa noite.
Estou com problema relacionado a receber o SMS. Consigo inserir um evento de forma manual (google calendar add "teste"), este exibe na agenda mas não recebo a notificação... Percebi que quando insiro um evento de forma manual através do shell na agenda ela fica sem lembrete (Sem lembretes configurados), por mais que eu ja tenha definido o tipo de lembrete como sms,,, existe alguma configuração a mais?!
[17] Comentário enviado por brennosu em 09/01/2013 - 18:55h
Modicow,
Eu passei por esse mesmo problema.
Seguinte:
Você tem que ter duas agendas...
Cria uma conta no gmail para a primeira agenda, EX: agendateste@gmail.com
Nessa conta do gmail vai esta disponível agenda referente a essa conta. Nela você não precisa configurar nenhum tipo de notificação por SMS.
Na segunda agenda, no caso, seria a sua agenda, nela você configura a parte de receber sms conforme já foi dito aqui nesse artigo.
Feito isso basta agora você compartilhar a primeira agenda "agendateste" na sua segunda. Ou seja, você está compartilhando "agendateste" e consegue visualizar ela na sua segunda agenda.
Todo novo evento que for cadastrado na primeira agenda "agendateste" que está compartilhada com a sua segunda agenda (onde está configurado o sms) A google irá disparar o SMS.
Entendeu ? Testa ae e depois me fala se você conseguiu :).
Stringuetta, meu zabbix é o 2.0.4, mais atual, eu conseguir fazer funcionar sim :D , coisa linda de DEUS!!!
[18] Comentário enviado por edul0pes em 18/03/2013 - 15:23h
Boa tarde,
Migrei meu servidor Zabbix para a versão 2.0.5, fiz as configurações e estão funcionando sem problemas, caso alguém ainda esteja com alguma dificuldade, favor entrar em contato.
[19] Comentário enviado por markintux em 04/04/2013 - 15:13h
Alguém me ajuda?!
Consegui criar o evento na mão normalmente, chego até a receber e-mail do mesmo criado. Porém a SMS nunca chega. hahahahaa! Já configurei para receber sms, já cadastrei meu numero e tudo mais, mas ainda não consegui. Tenho a operadora TIM SP e vi que a TIM BRASIL oferece este serviço normalmente. Será que alguém sabe o que pode estar acontecendo?!
[21] Comentário enviado por marcioanj em 04/07/2013 - 17:02h
edul0pes, parabéns pelo artigo. Já usei este artigo para implementar esta solução e funcionou perfeitamente, entretanto, desta vez não estou conseguindo. Já usei várias combinações de versões do googlecl e gdata-python, mas está dando o erro abaixo. Será que alguém já teve este tipo de problema?
O problema ocorre quando tento fazer o teste, já tentei como root e com o usuário zabbix.
$ google calendar add "teste"
Please specify user: xxxxx@gmail.com
Depois de especificar o usuário, no caso o e-mail (xxxxxx@gmail.com), demora uns 2 minutos e apresenta o erro abaixo.
Traceback (most recent call last):
File "/usr/local/bin/google", line 991, in <module>
main()
File "/usr/local/bin/google", line 977, in main
run_once(options, args)
File "/usr/local/bin/google", line 751, in run_once
authenticated = authenticate(auth_manager, options, config, section_header)
File "/usr/local/bin/google", line 172, in authenticate
valid_token = auth_manager.retrieve_access_token(display_name, browser)
File "/usr/local/lib/python2.7/dist-packages/googlecl/authentication.py", line 174, in retrieve_access_token
if self.client.RequestAccess(domain, display_name, None, browser_object):
File "/usr/local/lib/python2.7/dist-packages/googlecl/service.py", line 112, in request_access
extra_parameters=fetch_params)
File "/usr/local/lib/python2.7/dist-packages/gdata/service.py", line 416, in FetchOAuthRequestToken
response = self.http_client.request('GET', str(request_token_url))
File "/usr/local/lib/python2.7/dist-packages/atom/http.py", line 163, in request
connection.endheaders()
File "/usr/lib/python2.7/httplib.py", line 958, in endheaders
self._send_output(message_body)
File "/usr/lib/python2.7/httplib.py", line 818, in _send_output
self.send(msg)
File "/usr/lib/python2.7/httplib.py", line 780, in send
self.connect()
File "/usr/lib/python2.7/httplib.py", line 1161, in connect
self.timeout, self.source_address)
File "/usr/lib/python2.7/socket.py", line 571, in create_connection
raise err
socket.error: [Errno 101] Network is unreachable
Obs.: os usuários zabbix e root estão da seguinte forma:
[24] Comentário enviado por edul0pes em 31/07/2013 - 08:57h
leandrops,
Você precisa abrir via navegador o link que aparece, será solicitado que seja inserido uma conta do Google e então a mensagem abaixo será exibida:
Um serviço de terceiros está solicitando permissão para acessar Conta do Google.
Para permitir que um serviço de terceiros acesse a sua conta, faça login.
Assim, você libera acesso via GoogleCL a sua agenda.
Maiores informações sobre possibilidades do GoogleCL acesse:
[26] Comentário enviado por diegoblos em 01/10/2013 - 08:37h
Olá pessoal,
Consegui fazer funcionar o Zabbix 2.0.8 + GoogleCL.
Porém tem apenas uma coisa que ainda não consegui descobrir o que causa e muito menos como solucionar: ao gerar o evento que tem como ação enviar o SMS, ele cria 9 "Eventos" no Google Calendar, consequentemente, o Google envia 9 SMS com o mesmo evento. O problema maior, é que o Google acaba bloqueando por algum tempo novos SMS, envia alguns e o restante não envia mais. Depois, mesmo criando novos eventos na agenda, ele não envia SMS por algum tempo.
Já testei apenas com o script, que funciona 100% (cria apenas um evento na agenda). Acontece apenas quando ocorre um evento no Zabbix mesmo.
[27] Comentário enviado por edul0pes em 01/10/2013 - 08:51h
Bom dia diegoblos,
Seguinte, bem estranho mesmo esse problema, você já deu uma olhada nos log's quando a ação é executada?
Acontece isso só para um tipo de evento ou para todos?
Cola o log aqui que podemos lhe ajudar melhor.
Abs,