sábado, 5 de março de 2016

TeleZabbix - Notificações do Zabbix no seu Telegram

Fala galera beleza? Disponibilizei uma ferramenta para receber notificações do Zabbix pelo telegram e o pessoal ta pedindo um tutorial de passo a passo.

Instalação

Primeiro você precisa ter um servidor para executar a ferramenta, pode ser o proprio servidor do Zabbix, após definir onde vai executa-lo, faça o download.

git clone https://github.com/mthbernardes/TeleZabbix.git

É necessario tambem ter o python 2.7 instalado, agora instalar as dependencias da ferramenta.

pip install -r dependencies.txt

Configuração

Pronto "instalado", precisamos agora realizar as configurações dela, mas antes vamos gerar sua API do Telegram, procuro pelo contato @BotFather, esse bot é o pai de todos os bots é responsavel por cria-los, configura-lo e te informar a API.


Envie o seguinte comando para ele, /newbot assim sera criado um novo bot, ele ira te perguntar o nome do bot e o nome de "usuario" do bot, informe esses dados e ele ira te retornar a sua API Key, algo parecido com esse daqui,

182237139:BBFFmcr3KHk3Oe_wYspZR20X-QOMKL0-G43

Crie um grupo no Telegram e adicione o bot neste grupo, certo agora do telegram só precisamos do ID do grupo para que o bot saiba onde deve enviar as notificações.
Edite o arquivo etc/TeleZabbix.conf, e adicione sua API Key na Seção Telegram, na chave API, e informe suas credenciais de acesso ao Zabbix e o endereço para acesso do servidor Zabbix,

Agora execute o etc/TeleZabbix_ID.py, envie /start no grupo onde o bot foi adicionado, após enviar a mensagem, o script ira te mostrar o ID do grupo e o ID do seu usuario, pode utilizar o ID do grupo para que o bot envie as notificações para o grupo, ou seu ID, para que ele envie somente para você a notificação.

No final seu arquivo etc/TeleZabbix.conf ira ficar parecido com isso,


[Telegram]
api = 182237139:BBFFmcr3KHk3Oe_wYspZR20X-QOMKL0-G43
group_id = -107447098

[Zabbix]
username = root
password = password
server = http://127.0.0.1/zabbix

Pronto agora só executar o TeleZabbix.py,
python TeleZabbix.py start

Qualquer duvida deixem nos comentarios que vou tentar responder todas.

15 comentários:

  1. Quais notificações ele vai mandar ?
    Pelo que li superficialmente, todas as notificações serão enviadas pelo bot.
    Tem como definir quais hosts serão alertados ?

    ResponderExcluir
    Respostas
    1. Ele ira notificar sempre que um host estiver offline ou um Website

      Excluir
    2. Poderia fazer um vídeo como fazer isso ?

      Excluir
    3. Fabiano o Marcos da 100Security fez um passo a passo muito melhor que o meu kkk acho que já vai te ajudar
      http://www.100security.com.br/telezabbix/

      Excluir
  2. Olá, configurei as notificações segundo as instruções, porém as notificações não estão funcionando direito: eu provoquei o disparo de uma trigger no zabbix (que foi corretamente notificada por e-mail) porém não recebi essa notificação no telegram, no entanto a cada 2 minutos recebo o mesmo alerta de um outro host que não esta com nenhum problema. Como posso te ajudar a debugar isso? O script de notificação do zabbix não esta rodando no mesmo servidor do meu zabbix.

    ResponderExcluir
    Respostas
    1. Diego por enquanto ele só identifica hosts que estão down ou websites down, fique a vontade para fazer a implementação de novas funcionalidades.

      Excluir
    2. Olá Matheus, obrigado pela resposta, infelizmente ainda não consigo implementar isso pois não conheço Python.
      Qual seria a dificuldade de implementar uma lista com os hosts que estão down e cuja notificação já foi enviada? Pois não é pratico receber a mesma notificação a cada dois minutos, outra coisa, eu estava recebendo a notificação de um host que estava ligado (e o zabbix mostrava que o host estava UP), suspeito que seja algum evento antigo, como eu posso te ajudar a debugar isso?

      Excluir
  3. Excelent post Matheus!
    Saberia me dizer se funcionaria no GLPI? Pensando em um cenário de abertura de chamados?

    Abs

    ResponderExcluir
    Respostas
    1. Welliton,
      Dei uma olhada aqui e GLPI tem API, poderíamos conversar sobre um projeto do tipo

      Excluir
    2. Matheus, desculpa a demora!
      Cara tenho interesse sim... Como podemos trocar informações?

      Excluir
  4. Amigo não entendi a parte de configuração como e onde realizo essa configuraçã:
    Envie o seguinte comando para ele, /newbot assim sera criado um novo bot, ele ira te perguntar o nome do bot e o nome de "usuario" do bot, informe esses dados e ele ira te retornar a sua API Key, algo parecido com esse daqui,

    182237139:BBFFmcr3KHk3Oe_wYspZR20X-QOMKL0-G43

    Crie um grupo no Telegram e adicione o bot neste grupo, certo agora do telegram só precisamos do ID do grupo para que o bot saiba onde deve enviar as notificações.
    Edite o arquivo etc/TeleZabbix.conf, e adicione sua API Key na Seção Telegram, na chave API, e informe suas credenciais de acesso ao Zabbix e o endereço para acesso do servidor Zabbix,

    ResponderExcluir
    Respostas
    1. Esse procedimento deve ser feito no telegram, segue link para um tutorial sobre bot do telegram

      http://blog.rodrigolira.net/2015/07/07/criando-um-bot-do-telegram-1/

      Excluir
  5. Olá Matheus! Excelente ferramenta.
    Instalei aqui e está rodando, porém apontando falso positivo para links de internet.
    Ao que me parece ele identifica um link de internet sendo como host e por algum motivo ele informa que o status está offline quando na verdade não está.
    Gostaria de saber se há alguma solução?

    ResponderExcluir
  6. bug estou com mesmo problema, ao me ver parece ser o ping teria como desabilitar? ja tentei desabilitar o template de icmp, pois esse erro parece que soh da nos ativos que não possuem agent zabbix qualquer outro serviço ativo (snmp...) ele dispara falso positivo

    ResponderExcluir
    Respostas
    1. Amigo estou com o mesmo problema, achou alguma solução ?

      Excluir