Script para monitoramento de sites cadastrados no downdetector, e integração com o grafana.
O "How to" foi testado no ZABBIX 4.0.3 no Debian 9.
0 – Instalar o script no diretório padrão aonde fica os external scripts do seu zabbix, existem 2 locais possiveis dependendo da forma de instalação do ZABBIX, compilando (/usr/local/share/zabbix/alertscripts/
) ou por pacote (/usr/lib/zabbix/alertscripts/
).
Acesse o seu diretório padrão e faça o download do script
cd /usr/lib/zabbix/alertscripts/ ; wget https://raw.githubusercontent.com/made4-it/zabbix/master/Scripts/down.py -O down.py
De permissão de execução para o script
chmod a+x /usr/lib/zabbix/alertscripts/down.py
PS: O script funciona da seguinte forma:
- Acessa o site: https://downdetector.com.br/fora-do-ar/' + site + '/'
- Extrai o status_code do site
- Printa o Status code (Para ficar mais facil gerenciar no zabbix/grafana, foi feito alguns if's no final do código para transformar a string em numero)
Status Code's Possíveis:
10 = success
20 = warning
30 = danger
Reinicie o serviço do zabbix para que ele reconheça o novo script
systemctl restart zabbix-server
1 – Adicionar o host no zabbix.
Pensei em criar um template, mas para ficar mais simples criei logo um host com 3 itens de exemplo.
Faça download do XML do HOST e adicione em seu Zabbix
https://github.com/made4-it/zabbix/blob/master/Hosts/zbx_export_hosts.xmlPS: Lembrando que o host foi criado na versão 4.0.3 do zabbix
O host irá criar o grupo Sites e irá adicionar um Value MAP para a tradução dos Status Codes.
Para monitorar algum outro site do DownDetector, basta criar um novo item e na chave adicionar o seguinte valor:
down.py[MEUSITE]
Exemplo para monitoramento do Apple Store:
down.py[apple-store]
Lista de todos os sites disponiveis para monitoramento:
albion-online alelo algar alog amazon amazon-prime-video amazon-web-services america-net anthem anydesk apex-legends app-store apple-store avianca azul banco-central-do-brasil banco-do-brasil banco-inter banco-itaú banco-safra banco-santander banestes banrisul battlefield betfair binance bing blizzard-battle.net bradesco brisanet buscapé c6-bank cabo-telecom cabonnet caixa-econômica-federal call-of-duty claro clash-of-clans clash-royale clear cloudflare clusterweb copel-telecom correios counter-strike credit-suisse crunchyroll dataprev dead-by-daylight deezer destiny discord dota-2 dropbox ea ebay ecac embratel enem epic-games-store escape-from-tarkov esocial faceapp facebook facebook-messenger facetime feedly fifa for-honor fortnite free-fire garena getnet github globo gmail go-daddy gol google google-cloud google-play gta-5 gvt hbo hostgator hostnet hsbc icloud icq ifood imessage instagram iti itmnetworks itunes jurassic-world-alive kik kinghost kraken league-of-legends ligue-telecom line linkedin locaweb mandic mercado-bitcoin mercado-livre microsoft-azure multiplay net netflix neverwinter nextel nota-fiscal-eletrônica nubank office-365 oi olx onedrive origin outlook overwatch pagseguro path-of-exile paypal pinterest player-unknown's-battlegrounds playstation-network pokémon-go polícia-federal porto-seguro-conecta qconcursos rainbow-six receita-federal red-dead-redemption reddit roblox rocket-league salesforce sefaz sercomtel sicoob sicredi sisu sky skype slack snapchat spotify steam submarino superdigital teamviewer telegram terra tim tinder tribunal-superior-eleitoral twitch twitter uber uber-eats udemy umbler uol uolhost uplay-pc viber vimeo vivo vono warframe waze wechat whatsapp wikipedia world-of-warcraft xbox-live yahoo yahoo-mail youtube zello site-principal
Você pode verificar os sites disponiveis em: https://downdetector.com.br/fora-do-ar
Lembrando que todo o espaço tem que ser convertido para - na hora da criação da chave.
Como os possiveis valores são:
10= success
20 = warning
30 = danger
Então foi criado uma simples trigger para monitorar o last value dos items:
{DownDetector:down.py[caixa].last()}>10
2 – Criar Dashboard no Grafana
Para adicionar a tela do grafana, basta importar o seguinte JSON para o seu grafana:
https://raw.githubusercontent.com/made4-it/zabbix/master/Grafana/downdetector.json
No grafana foi utilizado 2 plugins padrões, Text e Singlestat, aonde o Text é para gerar a imagem do site:
E o SingleStat é para monitorar o valor dos itens do zabbix, aonde está configurado uma Thresholds para quando mudar para os Status codes especificos irá mudar a cor do texto apresentado, e como o zabbix está enviando numero para a gente, foi utilizado o Value Mapping para a tradução dos numeros para textos.
Para ir adicionando novos itens no grafana, basta copiar os plugings Text e SingleStat e vincular os novos sites que você adicionou no zabbix.