Realizei a criação da visualização dos hosts do Zabbix no Grafana:
Grafana Versão: 8.4.5 (Ou qualquer um que tenha GeoMap) Plugin Zabbix Versão: 4.2.10
Utilizado Datasource: MySQL Format AS: Table
Query:
SELECT h.host, hi.location_lat AS `latitude`, hi.location_lon AS `longitude`, hy.value
FROM hosts h
INNER JOIN host_inventory hi ON h.hostid = hi.hostid AND hi.location_lat != '' AND hi.location_lon != ''
INNER JOIN items i ON h.hostid = i.hostid AND (i.key_ = 'icmpping' OR i.key_ LIKE 'icmpping[%')
LEFT JOIN history_uint hy ON i.itemid = hy.itemid AND hy.clock = (SELECT MAX(clock) FROM history_uint WHERE itemid = i.itemid)
WHERE h.status = 0 AND i.status = 0
Explicação da Query:
Realiza um Select que pega as informações do inventory (longitude e latitude) do host e também retorna o ultimo valor coletado do item icmp ping, afim de definir os equipamentos que estão up ou down.
Necessário adicionar longitude e latitude do host no inventory Zabbix
Abaixo imagens das configurações do dashboard:
Configuração do Dashboard:
Configuração das métricas:
Utilize a query SQL no campo que está na imagem