Artigo por Rafael Ribeiro, Analista da Unirede
Introdução
No dinâmico universo do monitoramento com Zabbix, explorar novos casos de uso abre portas para novas possibilidades e um contínuo aprendizado e neste artigo, vamos explorar uma integração diferente como um desses casos de uso: a integração do Zabbix com a NeoWs API (Near Earth Object Web Service) da NASA.
Essa integração permite monitorar asteroides próximos à Terra, utilizando dados detalhados sobre aproximações, magnitudes e outros parâmetros fornecidos pela API.
O artigo descreve como o poder do Zabbix foi combinado com a ciência da NASA para criar um sistema de monitoramento em tempo real na área da Ciência Espacial, utilizando o Grafana como camada de apresentação visual.
NeoWs API:
A NeoWs API é um serviço RESTful da NASA que fornece dados sobre asteroides próximos à Terra.
Com ela, é possível:
- Pesquisar asteroides com base na data de aproximação à Terra.
- Consultar informações detalhadas de um asteroide específico utilizando seu identificador.
- Explorar o conjunto de dados fornecido pelo time da NASA JPL Asteroid.
Neo – Feed
O endpoint principal utilizado foi o Neo – Feed, que retorna dados de asteroides com base em suas datas de aproximação.
URL do Endpoint: https://api.nasa.gov/neo/rest/v1/feed
Parâmetros de Consulta:
Parâmetro | Tipo | Padrão | Descrição |
start_date | YYYY-MM-DD | Nenhum | Data de início para a pesquisa de asteroides. |
end_date | YYYY-MM-DD | 7 dias após start_date | Data final para a pesquisa. |
api_key | string | DEMO_KEY | Chave para acessar a API. |
Exemplo de chamada:
GET https://api.nasa.gov/neo/rest/v1/feed?start_date=2024-11-19&end_date=2024-11-20&api_key=MINHA_API_KEY
Informações Retornadas:
Cada asteroide possui os seguintes dados:
- id e name: Identificação única e nome do asteroide.
- nasa_jpl_url: Link para detalhes adicionais.
- absolute_magnitude_h: Magnitude absoluta, que indica o brilho do asteroide.
- estimated_diameter: Diâmetro estimado em diferentes unidades.
- is_potentially_hazardous_asteroid: Se o asteroide é considerado potencialmente perigoso.
- close_approach_data: Informações sobre a aproximação:
- Data e horário exatos.
- Velocidade relativa (km/s, km/h).
- Distância mínima da Terra (astronômica, lunar, quilômetros, milhas).
- Corpo orbital (geralmente a Terra).
Configuração do Zabbix
Endpoint:
No Zabbix, foi criado um host chamado Asteroides – NASA. Esse host centraliza as informações coletadas da NeoWs API.
Master item:
Um item do tipo “HTTP agent” foi configurado para realizar as consultas ao endpoint da API. Esse “Master item” é a base para todo o monitoramento, trazendo os dados brutos em formato JSON.
Pré-processamento de Dados:
Foram configurados passos de “preprocessing” com a finalidade de tratar os dados JSON recebidos e torná-los utilizáveis no Zabbix. Esse foi o processo de normalização de dados.
Discovery Rule:
Uma Dependent Discovery Rule foi criada, vinculada ao mesmo “Master item” do tipo “HTTP Agent”. Essa regra permite a descoberta de cada asteroide retornado pela API, automatizando o processo.
Pré-processamento na Discovery:
Durante a discovery, foi necessário utilizar novos passos de “preprocessing” para mapear as LLD Macros correspondentes a cada asteroide descoberto.
Item Prototypes:
Dentro da discovery, foram criados “Item prototypes” para gerar métricas específicas de cada asteroide descoberto. Assim, o Zabbix consegue monitorar individualmente os dados de cada objeto.
Resultados Parciais:
Alertas de Asteroides Potencialmente Perigosos:
O Zabbix emite alertas automáticos com base no campo is_potentially_hazardous_asteroid.
Métricas Detalhadas:
Métricas como distância mínima, velocidade relativa e diâmetro estimado são monitoradas.
Distância
Velocidade
Diâmetro
Dashboard no Grafana: Visibilidade e Visualização
Para complementar a integração entre o Zabbix e a NeoWs API, foi desenvolvido um dashboard no Grafana que transforma os dados brutos em uma experiência visual clara, funcional e estratégica. Com gráficos e painéis organizados, é possível destacar alertas críticos, como asteroides potencialmente perigosos, e acompanhar tendências em tempo real. Além disso, a flexibilidade do Grafana permite personalizações para focar nos dados mais relevantes.
O dashboard utiliza o Plugin do Zabbix para Grafana para consultar os dados. As querys foram construídas de forma dinâmica utilizando regex para interagir com a variável, onde é possível selecionar 1 ou mais asteroides descobertos.
/^$nomeasteroide- Magnitude/
/^$nomeasteroide- Diâmetro máximo/
/^$nomeasteroide- Kilometros por hora/
/^$nomeasteroide- Distância/
Isso faz com que os painéis se atualizem com as informações exibindo os dados do asteroide que foi selecionado no filtro “nomeasteroide”
Filtro de asteroides:
Preferência pelo Grafana:
Foi utilizado o Grafana para a parte visual principalmente pela funcionalidade “Repeat Options” que faz com que a dashboard crie as linhas automaticamente para cada asteroide selecionado.
Outro ponto que também foi bem interessante neste caso foi a possibilidade de inserir imagens com “GIF” e a responsividade do dashboard, se adaptando a qualquer tamanho de tela.
Conclusão:
A integração entre a NASA NeoWs API e o Zabbix demonstra o alto potencial do Zabbix para monitoramento avançado, consumindo um data source externo e passando por várias etapas de normalização de dados.
Desde dados científicos em tempo real até a criação de visualizações sofisticadas no Grafana, essa aplicação vai além do monitoramento básico, abrindo caminhos para a inovação em diversas áreas.
Com a API da NASA, foi possível criar um sistema dinâmico e automatizado, que traz informações detalhadas e em tempo real sobre monitoramento de asteroides próximos à Terra. Esse caso de uso reforça como o Zabbix é uma ferramenta estratégica não apenas para operações de TI, mas também para projetos que exigem alto nível de personalização e automação. Essa integração destaca não apenas a flexibilidade e o potencial do Zabbix, mas também como ele pode ser adaptado para aplicações inovadoras e criativas.
Se você deseja implementar soluções de monitoramento com Zabbix ou explorar novas possibilidades, fale conosco. Estamos prontos para ajudar sua equipe a alcançar novos patamares!