/zabbix

Scripts e templates para zabbix.

Primary LanguagePython

Monitoramento sites DownDetector.

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.

Instalação:

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.xml
PS: 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.