Consultar o status do Nagios programaticamente

Consultar o status do Nagios programaticamente

Recentemente adquiri um belo display LED 7×11 e quero (entre outras coisas) exibir meu status de nagios nele. Para isso preciso consultar o status da minha instalação do Nagios.

Qual é a maneira apropriada de obter um resumo de status (por exemplo, número de serviços não OK) de um servidor Nagios remoto a partir, digamos, de um script Perl?

Responder1

Eu mantenho uma instalação extremamente grande do nagios e posso dizer que o melhor método para fazer isso é através do "status ao vivo"corretor de eventos:

http://mathias-kettner.de/checkmk_livestatus.html

Livestatus fornece acesso instantâneo ao status do nagios através de um soquete local ou tcp e introduz quase zero carga adicional de CPU em seu servidor de monitoramento (mas ocupa memória, é claro). A integração simples com xinetd/unixcat permite que seja consultado através da rede. A saída está em um dos três formatos: CSV, JSON e Python. Inúmeras opções de configuração estão disponíveis e são estáveis ​​o suficiente para uso em produção. A documentação é muito boa.

Além disso, o livestatus permite outros complementos do nagios, como "MK Multisite", que agrega os resultados de múltiplas instalações do nagios em uma única GUI sem o uso de NSCA ou resultados de verificações de serviço passivas, que exigem que as configurações do nagios sejam mantidas nos servidores master e de trabalho.

Responder2

Até onde eu sei, não há API suportada pelo nagios.com para consultar o status do nagios. Existem alguns complementos diferentes que permitirão que você faça isso. Alguns são discutidos nesta questão.

https://stackoverflow.com/questions/7768215/is-there-a-way-to-extract-data-from-nagios-as-if-it-was-a-web-service

Você pode consultar o cgi diretamente e "raspar a tela" do html retornado, mas essa não é uma solução muito robusta. Eu mexi um pouco com esta versão de um servidor API, mas não coloquei em produção.

https://github.com/xb95/nagios-api

informação relacionada