Hoje vou te ensinar a coletar dados climáticos com o Zabbix 7.0 de duas fontes.
Vou focar na temperatura das capitais brasileiras.
Fiz de um jeito que com três arquivos você vai ver a mágica acontecer.
Segundo o Chatgpt, o monitoramento climático é estratégico para empresas que buscam:
- Previsão de Riscos Operacionais
- Eficiência Logística
- Redução de Custos
- Cumprimento Regulatório
- Planejamento a Longo Prazo
- Segurança dos Colaboradores
- Vantagem Competitiva
Baixe o templates-tempo-e-clima.yaml para seu PC e importe em seu Zabbix 7.0 ( Data Colletion > Templates -> Import )
Baixe os hosts-tempo-e-clima.yaml para seu PC e importe em seu Zabbix 7.0 ( Data Colletion > Hosts -> Import )
Baixe o sysmaps-mapa-de-temperatura-no-brasil.yaml para seu PC e importe em seu Zabbix 7.0 ( Monitoring > Maps -> Import )
No Monitoring -> Latest data do seu Zabbix selecione o grupo Tempo e Clima
Essa estratégia é bem eficiente e não deve conflitar com suas coletas.
Para a coleta não se esqueça de colocar sua chave na MACRO {$HGBRASIL.KEY} no template -- Tempo e Clima - HG Brasil que permita acesso à quantidade de acessos e cidades desejadas conforme o plano contratado.
Eu contratei o Member Premium que atualmente é de R$ 24,90 / mês e me dá direito à:
Weather - 50 cidades e 10.000 req. / dia
Finance - 5.000 req. / dia
IP Loc - 2.500 req. precisão / mês
Jarbas Peixoto Junior (14/09/2024 - 18:26)
Fiz uma assinatura Member ( 25 cidades e 5.000 req. / dia) e como preciso obter temperatura das 27 capitais tive que mudar meu plano para o Member Premium. (50 cidades e 10.000 req. / dia), mas mesmo assim continuo com a chave bloqueada.
A mensagem que recebo é :"Chave bloqueada: Limite de consultas de cidades excedido, acesse console.hgbrasil.com para regularizar."
O que devo fazer?
Administrador (14/09/2024 - 23:51)
Boa noite, Jarbas. Tudo bem?
Fizemos o desbloqueio de sua chave.
Vamos verificar o motivo pelo qual o desbloqueio não foi automático na mudança de plano.
Pedimos desculpas pelo transtorno.
Estamos sempre à disposição.
Atenciosamente,
Administrador
Anotar o resultado obtido em https://console.hgbrasil.com/documentation/weather/tools?stats=26804347
Resultado
Nome da cidade: Campo Grande, MS
WOEID: 26804347
Leia a Estrutura de dados https://console.hgbrasil.com/documentation/weather#introducao
┌─[root@oracle-01]─[~]─[Sun Sep 15 07:44:08]
└──╼ # curl -s 'https://api.hgbrasil.com/weather?key=SUA-CHAVE&woeid=26804347' | jq
{
"by": "woeid",
"valid_key": false,
"results": {
"temp": 19,
"date": "15/09/2024",
"time": "07:02",
"condition_code": "21",
"description": "Tempestade de areia",
"currently": "dia",
"cid": "",
"city": "Campo Grande, MS",
"img_id": "21",
"humidity": 83,
"cloudiness": 67.0,
"rain": 0.0,
"wind_speedy": "3.09 km/h",
"wind_direction": 130,
"wind_cardinal": "SE",
"sunrise": "06:34 am",
"sunset": "06:33 pm",
"moon_phase": "waxing_gibbous",
"condition_slug": "fog",
"city_name": "Campo Grande",
"timezone": "-04:00",
"forecast": [
{
"date": "14/09",
"weekday": "Sáb",
"max": 35,
"min": 21,
"humidity": 24,
"cloudiness": 46.0,
"rain": 0.0,
"rain_probability": 0,
"wind_speedy": "4.77 km/h",
"sunrise": "06:35 am",
"sunset": "06:32 pm",
"moon_phase": "waxing_gibbous",
"description": "Parcialmente nublado",
"condition": "cloud"
},
{
"date": "15/09",
"weekday": "Dom",
"max": 35,
"min": 19,
"humidity": 29,
"cloudiness": 77.0,
"rain": 0.0,
"rain_probability": 0,
"wind_speedy": "7.94 km/h",
"sunrise": "06:34 am",
"sunset": "06:33 pm",
"moon_phase": "waxing_gibbous",
"description": "Tempo nublado",
"condition": "cloudly_day"
},
{
"date": "16/09",
"weekday": "Seg",
"max": 33,
"min": 18,
"humidity": 35,
"cloudiness": 7.0,
"rain": 0.0,
"rain_probability": 0,
"wind_speedy": "6.73 km/h",
"sunrise": "06:33 am",
"sunset": "06:33 pm",
"moon_phase": "full",
"description": "Tempo limpo",
"condition": "clear_day"
},
{
"date": "17/09",
"weekday": "Ter",
"max": 36,
"min": 20,
"humidity": 27,
"cloudiness": 39.0,
"rain": 0.0,
"rain_probability": 0,
"wind_speedy": "7.22 km/h",
"sunrise": "06:32 am",
"sunset": "06:33 pm",
"moon_phase": "full",
"description": "Parcialmente nublado",
"condition": "cloud"
},
{
"date": "18/09",
"weekday": "Qua",
"max": 39,
"min": 24,
"humidity": 16,
"cloudiness": 5.0,
"rain": 0.12,
"rain_probability": 20,
"wind_speedy": "8.94 km/h",
"sunrise": "06:31 am",
"sunset": "06:33 pm",
"moon_phase": "full",
"description": "Chuvas esparsas",
"condition": "rain"
},
{
"date": "19/09",
"weekday": "Qui",
"max": 41,
"min": 28,
"humidity": 11,
"cloudiness": 15.0,
"rain": 0.0,
"rain_probability": 0,
"wind_speedy": "9 km/h",
"sunrise": "06:30 am",
"sunset": "06:33 pm",
"moon_phase": "full",
"description": "Parcialmente nublado",
"condition": "cloudly_day"
},
{
"date": "20/09",
"weekday": "Sex",
"max": 42,
"min": 31,
"humidity": 10,
"cloudiness": 44.0,
"rain": 0.0,
"rain_probability": 0,
"wind_speedy": "8.45 km/h",
"sunrise": "06:29 am",
"sunset": "06:34 pm",
"moon_phase": "waning_gibbous",
"description": "Parcialmente nublado",
"condition": "cloud"
},
{
"date": "21/09",
"weekday": "Sáb",
"max": 42,
"min": 28,
"humidity": 10,
"cloudiness": 4.0,
"rain": 0.0,
"rain_probability": 0,
"wind_speedy": "7.24 km/h",
"sunrise": "06:28 am",
"sunset": "06:34 pm",
"moon_phase": "waning_gibbous",
"description": "Tempo limpo",
"condition": "clear_day"
},
{
"date": "22/09",
"weekday": "Dom",
"max": 42,
"min": 31,
"humidity": 10,
"cloudiness": 0.0,
"rain": 0.0,
"rain_probability": 0,
"wind_speedy": "7.45 km/h",
"sunrise": "06:27 am",
"sunset": "06:34 pm",
"moon_phase": "waning_gibbous",
"description": "Tempo limpo",
"condition": "clear_day"
},
{
"date": "23/09",
"weekday": "Seg",
"max": 43,
"min": 31,
"humidity": 10,
"cloudiness": 7.0,
"rain": 0.0,
"rain_probability": 0,
"wind_speedy": "7.49 km/h",
"sunrise": "06:26 am",
"sunset": "06:34 pm",
"moon_phase": "waning_gibbous",
"description": "Tempo limpo",
"condition": "clear_day"
}
],
"cref": "26b2d3"
},
"execution_time": 0.0,
"from_cache": true
}
┌─[root@oracle-01]─[~]─[Sun Sep 15 07:44:08]
└──╼ $ curl -s 'https://api.hgbrasil.com/weather?woeid=26804347' | jq
{
"results": {},
"error": true,
"message": "IP bloqueado: Limite de cidades diarias sem chave excedido, acesse console.hgbrasil.com para criar uma chave de API."
}
Isso acontece quando a quantidade de consultas anônimas (sem chave) ultrapassam o limite
┌─[root@oracle-01]─[~]─[Sun Sep 15 07:44:08]
└──╼ $ curl -s 'https://api.hgbrasil.com/weather?key=SUA-CHAVE&woeid=26804347' | jq
{
"results": {},
"error": true,
"message": "Chave bloqueada: Limite de consultas de cidades excedido, acesse console.hgbrasil.com para regularizar"
}
Isso acontece quando seu plano (SUA-CHAVE) excedeu o limite de consultas de cidades.
Para a coleta não se esqueça de colocar sua chave na MACRO {$WEATHERAPI.KEY} no template -- Tempo e Clima - WeatherAPI que permita acesso conforme o plano contratado.
Eu contratei o plano Trial que me dá acesso completo até 02/Out/2024.
🚨🚨🚨 Hoje (02-Oct-2024) - Pro+ plan trial has ended. API key has been switched to Free plan.
As consultas continuam funcionando 🤔🤔🤔
https://www.weatherapi.com/weather/q/campo-grande-mato-grosso-do-sul-brazil-268287
┌─[root@oracle-01]─[~]─[Sat Sep 21 08:05:04]
└──╼ # curl -s -L 'https://api.weatherapi.com/v1/current.json?key=SUA-CHAVE&q=-20.45,-54.62&lang=pt' | jq '.'
{
"location": {
"name": "Campo Grande",
"region": "Mato Grosso do Sul",
"country": "Brazil",
"lat": -20.45,
"lon": -54.62,
"tz_id": "America/Campo_Grande",
"localtime_epoch": 1726920235,
"localtime": "2024-09-21 08:03"
},
"current": {
"last_updated_epoch": 1726920000,
"last_updated": "2024-09-21 08:00",
"temp_c": 22.3,
"temp_f": 72.1,
"is_day": 1,
"condition": {
"text": "Chuva moderada ou forte com trovoada",
"icon": "//cdn.weatherapi.com/weather/64x64/day/389.png",
"code": 1276
},
"wind_mph": 12.5,
"wind_kph": 20.2,
"wind_degree": 58,
"wind_dir": "ENE",
"pressure_mb": 1014.0,
"pressure_in": 29.94,
"precip_mm": 0.0,
"precip_in": 0.0,
"humidity": 73,
"cloud": 100,
"feelslike_c": 23.8,
"feelslike_f": 74.8,
"windchill_c": 30.9,
"windchill_f": 87.6,
"heatindex_c": 30.5,
"heatindex_f": 87.0,
"dewpoint_c": 13.6,
"dewpoint_f": 56.4,
"vis_km": 10.0,
"vis_miles": 6.0,
"uv": 9.0,
"gust_mph": 16.3,
"gust_kph": 26.2
}
}
┌─[root@oracle-01]─[~]─[Sat Sep 21 08:07:32]
└──╼ # curl -s -L 'https://api.weatherapi.com/v1/current.json?q=-20.45,-54.62&lang=pt' | jq '.'
{
"error": {
"code": 1002,
"message": "API key is invalid or not provided."
}
}
┌─[root@oracle-01]─[~]─[Sat Sep 21 08:08:00]
└──╼ # curl -s -L 'https://api.weatherapi.com/v1/current.json?key=CHAVE-INVALIDA&q=-20.45,-54.62&lang=pt' | jq '.'
{
"error": {
"code": 2008,
"message": "API key has been disabled."
}
}
Deixo a implementação como
exercíciode um template baseado nos templates disponibilizados lá 👆👆👆👆 em cima (-- Tempo e Clima - WeatherAPI e -- Tempo e Clima - HG Brasil).
O Grafana possui uma integração perfeita com o Zabbix. Isso torna possível construir Dashboards com visual diferenciado.
Veja o meu Dashboard de Alertas (HGBrasil) de Temperatura: https://grafana.tiozaodolinux.com/d/bdxz03jt05on4e/zabbix-tempo-hgbrasil?orgId=1&refresh=1m&kiosk
Veja o meu Dashboard de Alertas (Weather) de Temperatura: https://grafana.tiozaodolinux.com/d/adyvrmklxrd34f/zabbix-tempo-weather?orgId=1&refresh=1m&kiosk
Esse processo envolve o uso do Canva. Se não tiver uma conta, crie uma agora.
Abra o Canva, importe a Fundo-Dashboard-NOC, faça as alterações que julgar necessárias e exporte sua imagem para um arquivo no seu PC.
No Zabbix, importe essa imagem ( Administration -> General -> Images ) alterando o Type de icon para background.
Para dirimir dúvidas e/ou sugestões entre no Grupo Tiozão do Linux no Telegram.