Skip to content

joserf/zabbix-grafana-telegram

Repository files navigation

zabbix-grafana-telegram

Vamos configurar o servidor de internet para monitorar a internet da empresa, com Zabbix, Grafana e Telegram. O Telegram vai enviar mensagens com o teste de velocidade para o grupo.

Ambiente de instalação:

GNU/Linux Ubuntu 14.04LTS Server (como servidor de internet e hostname srvInternet) Zabbix Server IP: 192.168.0.126

Instalação dos pacotes:

$ sudo apt-get update && sudo apt-get install zabbix-agent python-pip -y && sudo pip install speedtest-cli 

Arquivo de configuração do Zabbix

$ sudo sed -i 48i\DebugLevel=3 /etc/zabbix/zabbix_agentd.conf

$ sudo sed -i 65i\EnableRemoteCommands=1 /etc/zabbix/zabbix_agentd.conf

$ sudo sed -i 75i\LogRemoteCommands=1 /etc/zabbix/zabbix_agentd.conf

$ sudo sed -i "s/Server=127.0.0.1/Server=192.168.0.126/" /etc/zabbix/zabbix_agentd.conf

$ sudo sed -i "s/ServerActive=127.0.0.1/ServerActive=192.168.0.126/" /etc/zabbix/zabbix_agentd.conf

$ sudo sed -i "s/Hostname=Zabbix\ server/Hostname=$HOSTNAME/" /etc/zabbix/zabbix_agentd.conf

$ sudo vim /etc/zabbix/zabbix_agentd.conf

Linha 273

UserParameter=wanip[*],cat /tmp/speedtest.txt | grep "Testing from" | cut -d"(" -f2 | cut -d")" -f1
UserParameter=data[*],cat /tmp/speedtest.txt | grep "Data:" | cut -d " " -f2
UserParameter=upload[*],cat /tmp/speedtest.txt | grep "Upload:" | cut -d " " -f2
UserParameter=download[*],cat /tmp/speedtest.txt | grep "Download:" | cut -d " " -f2
UserParameter=servidor[*],cat /tmp/speedtest.txt | grep "Hosted" | cut -c 11-
UserParameter=ping[*],cat /tmp/speedtest.txt | grep "Hosted" | cut -d ":" -f2 | cut -d" " -f2

Reiniciar o zabbix

$ sudo /etc/init.d/zabbix-agent restart

Criar a pasta dos scripts

$ sudo mkdir /etc/zabbix/scripts
$ cd /etc/zabbix/scripts

Script Telegram

$ sudo vim speedtest-telegram.sh

Script

#!/bin/sh
# Telegram 
BOT_TOKEN="" # Token (https://core.telegram.org/bots#3-how-do-i-create-a-bot)
USER="" # ID do grupo 
# Configurações
diretorio=/tmp
speedtest=/tmp/speedtest.txt
speedtest_telegram=/tmp/speedtest_telegram.txt

option="${1}" 
case ${option} in 
   -v|-V)
      # Efetua o teste de velocidade  
      speedtest-cli --bytes > "$speedtest" && date '+Data: %m/%d/%y|%H:%M:%S' >> "$speedtest"
      ;; 
   -t|-T)  
      # Efetua o teste de velocidade e envia para o Telegram
      speedtest-cli --share > "$speedtest_telegram" && date '+Data: %m/%d/%y|%H:%M:%S' >> "$speedtest_telegram" && \
      cat $speedtest_telegram | grep "Share" | cut -c 15- | xargs wget -O $diretorio/enviar.png | cat $speedtest_telegram | grep "Share" | cut -c 48- && \
      curl -k -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendPhoto" -F chat_id="${USER}" -F photo="@/$diretorio/enviar.png" > /dev/null && \
      rm $diretorio/enviar.png
      ;;
   -h|-H) 
      # Exibe a versão 
      echo "José Rodrigues Filho"
      echo "Speedtest | Telegram | Zabbix - V1.0"
      ;;
   *)  
      echo "`basename ${0}`:Opção inválida, use: [-v speedtest] | [-t speedtest telegram] [-h Versão]" 
      exit 1
      ;; 
esac

Permissão

$ sudo chmod +x speedtest-telegram.sh

OBS: Não esqueça de alterar no script colocando seus dados do Telegram em BOT_TOKEN="" e USER=""

Os testes são efetuados de 30 em 30 minutos, e as mensagens via Telegram às 08:55, 11:55 e 16:55.

Importe o template "Template Teste de velocidade de internet.xml" para o Zabbix e o "Monitoramento de Link.json" para o Grafana.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages