All Projects → sansaoipb → Graphical_notifications_Zabbix

sansaoipb / Graphical_notifications_Zabbix

Licence: other
No description or website provided.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Graphical notifications Zabbix

Email-Graph-ZABBIX Python
No description or website provided.
Stars: ✭ 16 (-79.22%)
Mutual labels:  zabbix, notification, zabbix-graph, zabbix-grafico
React Notie
Simple notifications for react
Stars: ✭ 27 (-64.94%)
Mutual labels:  notifications, notification
Yii2 Slack Log
Pretty Slack log target for Yii 2
Stars: ✭ 24 (-68.83%)
Mutual labels:  notifications, notification
Telegram Bot Github
Allows to you receive GitHub notifications right in the Telegram
Stars: ✭ 103 (+33.77%)
Mutual labels:  notifications, notification
Notify
A dead simple Go library for sending notifications to various messaging services.
Stars: ✭ 727 (+844.16%)
Mutual labels:  notifications, whatsapp
Notie
🔔 a clean and simple notification, input, and selection suite for javascript, with no dependencies
Stars: ✭ 6,170 (+7912.99%)
Mutual labels:  notifications, notification
Xnotify
read notifications from stdin and pop them up on the screen
Stars: ✭ 97 (+25.97%)
Mutual labels:  notifications, notification
vue-notification-bell
Vue.js notification bell component.
Stars: ✭ 64 (-16.88%)
Mutual labels:  notifications, notification
Django Webpush
Web Push Notification Package for Django
Stars: ✭ 217 (+181.82%)
Mutual labels:  notifications, notification
React Materialui Notifications
Spec compliant notifications for react and material ui users
Stars: ✭ 252 (+227.27%)
Mutual labels:  notifications, notification
Zabbix In Telegram
Zabbix Notifications with graphs in Telegram
Stars: ✭ 710 (+822.08%)
Mutual labels:  notifications, zabbix
zabbix-jira
Python module that allows you to create tasks in Jira by the trigger from Zabbix
Stars: ✭ 40 (-48.05%)
Mutual labels:  notifications, zabbix
Monitor Table Change With Sqltabledependency
Get SQL Server notification on record table change
Stars: ✭ 459 (+496.1%)
Mutual labels:  notifications, notification
Yii2 Telegram Log
Telegram log target for Yii 2
Stars: ✭ 24 (-68.83%)
Mutual labels:  notifications, notification
Notifications
🛎 Notifications Center engine like GitHub or other application for any Rails applications.
Stars: ✭ 359 (+366.23%)
Mutual labels:  notifications, notification
Reapop
📮 A simple and customizable React notifications system
Stars: ✭ 1,155 (+1400%)
Mutual labels:  notifications, notification
react-notify
Tiny React's module that shows notifications.
Stars: ✭ 55 (-28.57%)
Mutual labels:  notifications, notification
notifyme
react-notification-timeline is a react based component helps in managing the notification in time-based manner.
Stars: ✭ 94 (+22.08%)
Mutual labels:  notifications, notification
Notiflix
Notiflix is a JavaScript library for client-side non-blocking notifications, popup boxes, loading indicators, and more that makes your web projects much better.
Stars: ✭ 172 (+123.38%)
Mutual labels:  notifications, notification
Whizzz-The-ChatApp
Whizzz is a real-time, one-to-one Android chat application made using Firebase, a beautiful user interface, and a push-notification feature.
Stars: ✭ 66 (-14.29%)
Mutual labels:  whatsapp, notification

Doações

PagSeguro

PayPal

PicPay

Graphical Notifications Zabbix

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

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

Sumário


Requisitos:

0 – Ter instalado Python 3.6 (ou superior)
1 – Estar logado como root
2 – Executar os seguintes comandos

Instale os pacotes:

Debian/Ubuntu

sudo apt-get install -y wget dos2unix git sudo curl bc

CentOS 6.x, 7 e 8

sudo yum install -y wget dos2unix git sudo curl bc gcc libffi-devel python-devel openssl-devel libevent-devel

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

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

Criando Chave API WhatsApp:

Para usar este envio é necessário contratar o serviço, em conversa com o responsável consegui um desconto de 50%, basta informar o cupom zabbix20S.

Para contratar acesse o site https://www.netizap.app/

Caso use somente o envio por WhatsApp, DESCONSIDERE OS PRÓXIMOS PASSOS, e vá direto para a configuração CLICANDO AQUI

Criando Chave API Telegram:

Para iniciarmos, CLIQUE AQUI e faça o login usando sua conta para criar a chave API do Telegram:

Após o login aparecerá esta tela, faça o preenchimento da forma que preferir e clique em "Create application", após isso aparecerá os campos que precisamos, são eles: o api_id e api_hash.

Criando 'Client App'



Edite os parâmetros:

Para iniciarmos a configuração de envio, é preciso editar o arquivo de configuração e depois executar o script manualmente para efetivar o login, então entre no diretório “que o script indicou” e edite os campos abaixo contidos no arquivo configScripts.properties:

OBS:
1 – O usuário que você declarar no campo “user” precisa ter permissão no mínimo de leitura no ambiente.
2 – Os campos contidos em [PathSectionEmail], [PathSectionTelegram] e [PathSectionWhatsApp], são opcionais, logo se for usar somente telegram, não é necessário preencher a parte do email, assim como de forma inversa.
3 – Se usar gmail, é preciso alterar o acesso à conta para aplicativos, se tiver "Verificação em duas etapas" ativado, é necessário criar uma "Senha de app", crie Aqui.
Caso não tenha verificação em duas etapas, pode somente ativar "Acesso a app menos seguros", altere Aqui.

[PathSection]
  • “url” = http://127.0.0.1/zabbix - URL de acesso ao FRONT com "http://"
  • “user” = Admin
  • “pass” = zabbix
[PathSectionEmail]
  • “smtp_server” = smtp.gmail.com:587
  • “mail_user” = [email protected]
  • “mail_pass” = SuaSenha
[PathSectionTelegram]
  • “api.id” = 1234567
  • “api.hash” = 12asdc64vfda19df165asdvf984dbf45
[PathSectionWhatsApp]
  • “line” = 5511950287353
  • “acess.key” = XGja6Sgtz0F01rbWNDTc
  • “port” = 13008

Consultando Configuração

OBS:
1 - Caso tenha interesse em usar somente o envio por WhatsApp, DESCONSIDERE OS PRÓXIMOS PASSOS, CLICANDO AQUI

2 - Caso esteja usando conta invés de bot, terá a vantagem de usar este módulo de consulta, se estiver usando bot, este comando só servirá para finalizarmos a vinculação do remetente.

Este comando, também trará a quantidade e as informações de todos os seus chats, como: Tipo, Nome, ID... Mas somente para quem estiver USANDO CONTA.

sudo -u zabbix ./notificacoes-teste.py --infoAll

3 – Ao executar o comando acima, será solicitado inserir o token do bot ou número de telefone da conta que será usada para envio, se optar por usar BOT: cole o token, dê ENTER e DESCONSIDERE OS PRÓXIMOS PASSOS, CLICANDO AQUI

4 – Se optar por usar CONTA, use a seguinte estrutura de telefone 5522988776655 (prefixo para o Brasil, DDD e número), depois que der “Enter”, receberá um código por SMS e/ou no aplicativo (no desktop, no celular ou na versão web, basta estar logado), adicione o código e estará pronto.

Para consultar a configuração de um usuário, grupo ou canal específico, execute o comando abaixo:

Script info ID, Nome ou user.
Exs:

sudo -u zabbix ./notificacoes-teste.py --info "-123456789"

ou

sudo -u zabbix ./notificacoes-teste.py --info "Nome Sobrenome"

ou

sudo -u zabbix ./notificacoes-teste.py --info "usuário"

Pegue o “ID”, o “nome de cadastro” ou o "nome de registro" que aparecerá para executar o teste e posteriormente colocar no zabbix.

OBS:
1 – Lembrando novamente que o comando "info", NÃO FUNCIONA COM BOT.

Comando para teste

OBS:
1 – "-123456789", "Nome Sobrenome" ou "usuário" são informações fictícias para exemplificar, busque um UserID ou nome de usuário válido no seu ambiente, se for grupo ou canal use prioritáriamente o "id";

2 – É recomendado aumentar o tempo de timeout da aplicação, então no arquivo de configuração do server.
(se não mudou o local padrão, estará aqui /etc/zabbix/zabbix_server.conf ou aqui /usr/local/etc/zabbix_server.conf) vá até o paramemtro # Timeout=3 descomente e aumente para 30, ficando assim: Timeout=30
dessa forma fica garantido a entrega.

3 – A estrutura de teste para o WhatsApp será (prefixo para o Brasil, DDD e número): 5522988776655;
Para Telegram será: prioritariamente por ID (podendo usar também: 'Nome Sobrenome' ou '@usuário' se não estiver usando bot);
Para Email será: [email protected].
E para realizar 3 envios ao mesmo tempo, basta colocar as informações separados por vígula, por Ex:

sudo -u zabbix ./notificacoes-teste.py --send "-123456789, 5522988776655, [email protected]"

Script para realização do teste e iniciar a configuração:
Script, ID, Nome ou user.
Exs:

sudo -u zabbix ./notificacoes-teste.py --send "-123456789"

ou

sudo -u zabbix ./notificacoes-teste.py --send "Nome Sobrenome"

ou

sudo -u zabbix ./notificacoes-teste.py --send "usuário"

Configurando 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 na "Ação" (em Configuração > Ações).

Tipo de Mídia



Configuração para envio:

Existe somente uma exigência na “Mensagem Padrão”, 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, seja no "Modelo de mensagem" em "Tipo de mídia" ou na ação.

Imagem da Mensagem:



Modelo Mensagem (Incidente)
{TRIGGER.ID}#{EVENT.ID}#FF0000#10800#
IP/DNS: {HOST.CONN}
Último valor: {ITEM.LASTVALUE}

Modelo Mensagem (Recuperação)
{TRIGGER.ID}#{EVENT.ID}#00C800#3600#
IP/DNS: {HOST.CONN}
Último valor: {ITEM.LASTVALUE}
Duração: {EVENT.DURATION}

OBS:
Os valores ”FF0000” ou ”00C800” são apontamentos para as informar a lista de cores que será utilizada na linha do gráfico (alarme ou normalização), e ”10800” ou ”3600” é o período do gráfico (3h ou 1h) em segundos.

Configurando o usuário



Resultado:



Arquivo de configuração


Por sugestão de "Everaldo Santos Cabral" (@everaldoscabral)

Vamos entender um pouco as funções configuráveis do arquivo de configuração (configScripts.properties)

[PathSection]
  • ack - Ativa/Desativa o ack nos eventos
  • salutation - Ativa/Desativa todas as saudações
  • path.logs - indica o local onde o log será salvo, o "default" é um diretório "log" no mesmo local do script, se alterar precisa garantir que o usuário zabbix tenha permissão para escrita este local.
[PathSectionEmail]
  • salutation.email - Ativa/Desativa a saudação do email
  • mail.from - descreve o remetente.
[PathSectionTelegram]
  • salutation.telegram - Ativa/Desativa a saudação do Telegram
  • path.graph - caminho onde a imagem para o gráfico será salvo.
[PathSectionWhatsApp]
  • salutation.whatsapp - Ativa/Desativa a saudação do whatsapp
  • cod.ddi - Faz referência ao país do destinatário para whatsapp

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 no zabbix, 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 e faz a comunicação diretas entre APIs.

Contribuições

Neste link você consegue criar de modelos para mensagens HTML, que foi indicado pelo amigo "Mario" (@ZXRTI)
Site para criação de modelos HTML

Agradecimentos

Gostaria de agradecer as mais de 400 pessoas que estão no "grupo dos projetos", que serve como ajuda/sugestão/contribuição e aos que participam mais ativamente ajudando, sugerindo, pontuando, indicando melhorias e testando.

  • A criação deste projeto unificado (email e telegram), foi depois de uma conversa e o de "Everaldo Santos Cabral" (@everaldoscabral) dizer que a informação do arquivo de configuração era "inútil" pra quem usava somente um projeto, e isso me deu um luz para fazer algo diferente.

  • Hoje os projetos tem tantas melhorias e aprimoramentos, muito graças ao "Abner Klug" (@abnerk), que sempre trouxe várias ideias, como colocar opção ao ack, a saudação, dentre outras... Todos podem colaborar para fazermos uma comunidade mais forte e projetos cada vez melhores.

  • Ao "Gabriel R F" (@GabrielRF) que me apresentou ao pyrogram, me abrindo o caminho a alteração na forma de envio, aprimorando e dando mais possibilidades para o projeto.

Obrigado a todos os envolvidos, tanto pela disponibilidade para fazer os teste, como pela ajuda, confiança e coparticipação nos projetos.




Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].