Recentemente, enfrentei desafios ao integrar o GeoMap do Grafana com o Zabbix. Embora a versão anterior do plugin facilitasse a configuração, a nova atualização trouxe melhorias na visualização dos hosts no mapa geográfico, mas também alguns obstáculos, como a alteração de status e a filtragem de grupos de hosts.
Para resolver essas questões, desenvolvi uma consulta em MySQL que permite visualizar os hosts corretamente no mapa de determinado grupo de hosts, e com suas alterações de status Up ou Down. Abaixo, compartilho o código. Basta inserir o nome do grupo de hosts desejado e estará pronto para funcionar!
SELECT
h.name AS Host,
hi.location_lat AS Latitude,
hi.location_lon AS Longitude,
CASE
WHEN t.value = 1 THEN 'DOWN' #DOWN
ELSE 'UP' #UP
END AS Status,
hi.notes AS Coordenadas
FROM
triggers t
INNER JOIN
functions f ON t.triggerid = f.triggerid
INNER JOIN
items i ON f.itemid = i.itemid
INNER JOIN
hosts h ON i.hostid = h.hostid
INNER JOIN
host_inventory hi ON h.hostid = hi.hostid
INNER JOIN
hosts_groups hg ON h.hostid = hg.hostid #tabela que relaciona hosts a grupos
INNER JOIN
hstgrp g ON hg.groupid = g.groupid #tabela de grupos
WHERE
t.description LIKE '%Una%'
AND g.name = 'NOME GRUPO'; #substitua pelo nome do grupo desejado
Demonstrando em etapas:
- No Grafana, o Data source ficou como origem o banco MySQL do Zabbix para a consulta, e abaixo o código.

- No Zabbix, os hosts devem conter a latitude e longitude da seguinte forma como na imagem.

- Para representação de DOWN e UP, crie em Value mappings, a expressão dos valores correspondente com a cor.

Nas demais configurações do Grafana no menu a direita de customização, ficou:
- Map view – utilizei no menu View a opção Coordinates, assim aparece já a area geografica de interesse em monitoramento
- Map layers – Layer type: Markes e Data: Query A
- Basemap layer – Layer type: Open Street Map
- Standard options – Color scheme: From thresholds (by value)
Fique a vontade para ajustar conforme sua necessidade, incrementar ou remover o que não for necessário