GithubHelp home page GithubHelp logo

sansaoipb / telegram-graph-authenticated_python Goto Github PK

View Code? Open in Web Editor NEW
27.0 7.0 4.0 5.56 MB

Python 100.00%
telegram zabbix telegram-zabbix zabbix-telegram python-telegram python-telegram-zabbix python-zabbix telegram-graph zabbix-graph graph

telegram-graph-authenticated_python's Introduction

Doações

PagSeguro

PayPal

PicPay

Telegram-Graph-authenticated_Python

Em caso de dúvida, sugestão ou dificuldade junte-se a nós no Grupo do Telegram Gráfico no Email e Telegram.

Envio de alarmes no ZABBIX pelo Telegram com usuário autenticado com gráficos.

O "How to" foi testado no ZABBIX 2.4 ao 5.0 no Debian 8-10/Ubuntu 14-20 e CentOS 6.x, 7 e 8, caso não utilize estas distros procure os pacotes descritos para sua necessidade.

Sumário


Requisitos:

Instale os pacotes

Debian/Ubuntu

$ sudo apt-get install -y wget dos2unix

CentOS 6.x, 7 e 8

sudo yum install -y epel-release ; sudo yum upgrade ; sudo yum install -y wget dos2unix

Faça o download do script de instalação

cd /tmp ; wget https://raw.githubusercontent.com/sansaoipb/scripts/master/telegram.sh -O telegram.sh ; dos2unix telegram.sh ; sh telegram.sh

OBS:
Existe um local padrão onde fica os scripts, que tem 2 locais possiveis dependendo da forma de instalação do ZABBIX, compilando (/usr/local/share/zabbix/alertscripts/) ou por pacote (/usr/lib/zabbix/alertscripts/), respectivamente.
Os arquivos necessários para iniciarmos a configuração estarão na pasta “alertscripts/telegram/”, e o script telegramGraph.py na “raiz” onde o zabbix executará. Ao final da execução do script, ele indicará qual pasta você acessará.

Para iniciarmos a configuração de envio, é preciso logar pela primeira vez manualmente, então entre no diretório “que o script indicou” e execute o telegram-cli com o comando abaixo.

sudo -u zabbix ./telegram-cli --rsa-key tg-server.pub --config telegram.config

Após a execução, está mapeado alguns possiveis erros, e para corrigi-los siga os passos:


Para o CentOS 8

(homologado pelo amigo "Junior" @amarodefarias)
yum install -y readline-devel compat-openssl10
sudo ln -s /usr/lib64/libreadline.so.7 /usr/lib64/libreadline.so.6
sudo ln -s /usr/lib64/liblua-5.3.so /usr/lib64/liblua-5.1.so
sudo ln -s /usr/lib64/libssl.so.1.1.1 /usr/lib64/libssl.so.10
sudo ln -s /usr/lib64/libevent-2.1.so.6 /usr/lib64/libevent-2.0.so.5

Para o Ubuntu 19

(homologado pelo amigo "George Luiz" @George_HPD)
sudo wget launchpadlibrarian.net/429633018/libmysqlclient20_5.7.26-1_amd64.deb
sudo dpkg -i libmysqlclient20_5.7.26-1_amd64.deb

sudo wget http://archive.ubuntu.com/ubuntu/pool/main/libe/libevent/libevent-2.0-5_2.0.21-stable-2ubuntu0.16.04.1_amd64.deb
sudo dpkg -i libevent-2.0-5_2.0.21-stable-2ubuntu0.16.04.1_amd64.deb

Para o Debian 10

(homologado pelo amigo "Bernardo Lankheet" @bernardolankheet)
sudo ln -s /usr/lib/x86_64-linux-gnu/libevent_pthreads-2.1.so.6 /usr/lib/x86_64-linux-gnu/libevent_pthreads-2.0.so.5
sudo ln -s /usr/lib/x86_64-linux-gnu/libevent-2.1.so.6 /usr/lib/x86_64-linux-gnu/libevent-2.0.so.5
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.1 /lib/x86_64-linux-gnu/libcrypto.so.1.0.0

Debian 9/Ubuntu 16

(Os dois primeiros homologados pelo amigo "Paulo Aguiar" @aguiarpaulo)

Para o erro:
"./telegram-cli --rsa-key tg-server.pub --config telegram.config ./telegram-cli: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0: version `OPENSSL_1.0.0' not found (required by ./telegram-cli)"

Instale:
No Debian 9 este pacote, no Ubuntu 16 este pacote

Para o erro:
"./telegram-cli: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory"

Execute este comando:
sudo ln -s /usr/lib/x86_64-linux-gnu/libpython3.5m.so.1.0 /usr/lib/x86_64-linux-gnu/libpython3.4m.so.1.0

Para o erro: "./telegram-cli: error while loading shared libraries: libreadline.so.6: cannot open shared object file: No such file or directory"

Execute este comando:
sudo ln -s /lib/x86_64-linux-gnu/libreadline.so.5 /lib/x86_64-linux-gnu/libreadline.so.6



Será redirecionado para o console da ferramenta, indicado por um “>”, aguarde até que o texto phone number apareça, depois digite o número de telefone que está cadastrado no telegram, no formato +552244448888 (prefixo para o Brasil, DDD e número), depois que der “Enter” e receberá um código por SMS e no aplicativo (no desktop, no celular ou na versão web, basta estar logado). O comando help lista todos os comandos disponíveis, os comandos contact_list e dialog_list carregam sua lista de contatos e as conversas atuais, todos os comandos tem autocomplete usando o TAB.

Para configurarmos o zabbix a enviar mensagens para usuários, grupos ou canais, é necessário executar os comandos user_info, chat_info ou channel_info seguido do nome do contato, do grupo ou do canal conforme está na sua agenda, pegue o “ID”, o “nome de cadastro” ou o "nome de registro" que aparecerá (os nomes também tem autocomplete).

OBS:
1 – Se o escolher utilizar o nome cadastrado, precisa atentar a alguns pontos:
1.1 – Caso tenha sobrenome, é necessário ter underscore (_) entre eles;
1.2 – O nome não pode conter acentos, no caso abaixo, se meu nome estivesse com “~” como “Sansão” não funcionaria e eu precisaria ter cadastrado sem ele (assim como fiz);

Ex:


Para enviar a mensagem, é preciso usar o ID ou o nome, conforme as estruturas abaixo:
user#129131403
Sansao_Simonton
@sansaoipb

Agora o telegram-cli está configurado para utilizar a sua conta. Podemos sair do console dele digitando safe_quit (se já tiver aberto em outro momento) ou quit(caso seja a primeira vez que estiver logando)

OBS IMPORTANTE:

1 – O daemon “telegram-cli” é de SO x64, logo não irá funcionar em SO x86.

Edite os parâmetros:

Entre no arquivo configScrips.properties e edite os campos abaixo:

  • “url” = 'http://127.0.0.1/zabbix' - URL de acesso ao FRONT com "http://"
  • “user” = 'Admin';
  • “pass” = 'zabbix';

OBS:
1 – O usuário que você declarar no campo “user” precisa ter permissão no mínimo de leitura no ambiente.

Comando para teste

Script para realização do teste:
Script, user#ID, Nome ou user.
Exs:

sudo -u zabbix ./telegramgraph-teste.py user#123456789

ou

sudo -u zabbix ./telegramgraph-teste.py Nome_Sobrenome

ou

sudo -u zabbix ./telegramgraph-teste.py @usuario

OBS:
1 – "user#123456789", "Nome_Sobrenome" ou @usuario são informações fictícias para exemplificar, busque um UserID ou nome de usuário válido em seu ambiente com os comandos já passados para realização do teste;
2 – Se optar por usar o ID, como "user#123456789", “user#” é para quando for usuário, quando for grupo será “chat#”, quando for canal será “channel#” seguido do respectivo ID

Configurando o envio:

Com o script adicionado no local indicado acima, precisamos realizar algumas configurações no Front do ZABBIX, no "Tipo de Mídia", (em Administração > Tipo de Mídia) e a "Ação" (em Configuração > Ações).

Tipo de Mídia

Zabbix 2.4



Zabbix 3.0 à 4.4



OBS:
Na versão 3.0, é obrigatório a utilização das macros {ALERT.SENDTO}, {ALERT.SUBJECT} e {ALERT.MESSAGE}, em caso de dúvidas, leia a Documentação Aqui.

Configurando o usuário


Criando a Ação:

A “Mensagem Padrão” na aba “Ação” existe somente com uma “exigência”, a primeira linha deve permanecer com as macros/variáveis abaixo ilustradas (as macros/variáveis entre as "#" ), podendo editar da segunda linha em diante.

Imagem da Mensagem na Ação:



Modelo Mensagem Padrão
{ITEM.NAME}#{EVENT.ID}#{ITEM.ID}#00C800#3600#\n
IP/DNS: {HOST.CONN}\n
Último valor = {ITEM.LASTVALUE}\n

OBS:
”00C800” é a cor da linha (verde) em Hex. sem tralha, e ”3600” é o período do gráfico (1h) em segundo.

Resultado da linha de teste:



Conclusão

1 – Este script é para agilizar a análise e ficar visualmente mais agradável o recebimento dos alarmes.

2 – O script realiza uma consulta API mais ampla, detecta automaticamente se o item é de caracter/log/texto, e não envia o gráfico "sem dados" somente o texto, ele dá "ack" no evento e informa quem foi notificado naquela ação, armazena log.

3 – Nos nomes de contatos, grupos e canais, espaços são transformados em underscore (_), tralha/jogo da velha (#), arrobas (@) e contatos com mesmo nome tem um “#1” acrescentado ao nome (exemplo: Gnu#1, Gnu#2).



telegram-graph-authenticated_python's People

Contributors

sansaoipb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

telegram-graph-authenticated_python's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.