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!