Integrando Nagios e Google Maps

O que passo á relatar é um case real que surgiu de uma necessidade real. Na empresa em que trabalho temos centenas de pontos conectados via VPN site-to-site interligados por roteadores CISCO e que são monitorados pelo Nagios.
Seria ótimo se pudesse visualizar toda a rede VPN e seus status em um mapa, então vamos fazê-lo.

[ Hits: 28.593 ]

Por: Celso S. Faria em 24/08/2011


Indicando no Mapa e Concluindo



Indicando os hosts no mapa

Para indicar os hosts no mapa, utilizaremos as coordenadas obtidas pelo site www.mygeoposition.com e a chave da API que foi gerada para o servidor, como mencionei no início deste artigo e como mostra a imagem abaixo:
Linux: Integrando Nagios e Google Maps
Crie o arquivo /usr/local/nagios/etc/location.cfg e insira as informações como no modelo abaixo:
## Arquivo /usr/local/nagios/etc/location.cfg ##

# Esta definição é única no arquivo
define default {
     key         chave_gerada_para_o_servidor
     zoom         13
     lat         38.706932
     long         -9.135632
}

# Cada host deve possuir esta definição
define location {
     host_name      nome_do_host_cadastrado
     notes         informação_adicional
     lat         51.500152
     long         -0.126236
}

Definições do arquivo location.cfg.

Seção define default:

key: Chave gerada pelo Google Maps para utilização da API;
zoom: Nível de zoom que o mapa será apresentado (altitude);
lat e long: Posicionamento geográfico que será o centro do mapa (latitude e longitude).

Seção define location:

host_name: Nome do host (este hostname deve existir nas configurações do Nagios);
notes: Informações que serão apresentadas no balão quando o marcador for clicado e pode interpretar tags html;
lat e long: Posicionamento geográfico do host (latitude e longitude).

Agora dê permissões aos arquivos com os comandos:

# chown nagios.nagios /usr/local/nagios/sbin/statusmap.cgi
# chown nagios.nagios /usr/local/nagios/etc/location.cfg

E por fim recarregue o Nagios.

Se o Nagios já estiver executando:

# service nagios reload

Se o Nagios estiver parado:

# service nagios start

Visualizando os hosts no mapa

Acesse a interface do Nagios utilizando o nome registrado para a API (lembre-se que não funcionará se for acessado por IP), no nosso exemplo:

http://nagiosserver/nagios

No menu lateral, clique em Map e os hosts serão apresentados no mapa com seus devidos status.
Linux: Integrando Nagios e Google Maps

Dica

Para ter uma melhor visualização do mapa, customizei o mapa para abrir em uma janela separada da interface do Nagios, assim:

Edite o arquivo /usr/local/nagios/share/side.php e altere a linha 41 para que fique assim:

<li><a href="<?php echo $cfg["cgi_base_url"];?>/statusmap.cgi?host=all"target="target="_blank<?php echo $link_target;?>">Map</a></li>

Também configurei para que o status map padrão seja o Google Maps editando o arquivo /usr/local/nagios/etc/cgi.cfg e alterando a diretiva default_statusmap_layout de 5 para 7.

Concluindo

Pronto. Já pode aproveitar mais esta excelente funcionalidade do Nagios: alertas de status dos hosts no Google Maps.

Tenho ainda algumas ideias mas ainda não iniciei a pesquisa e testes. Fica para o próximo artigo.

Espero que seja de utilidade para a comunidade e agregue valor à TI como agregou para a empresa em que trabalho, proporcionando mais agilidade neste tipo de ocorrência.
Página anterior    

Páginas do artigo
   1. Introdução e Instalação
   2. Indicando no Mapa e Concluindo
Outros artigos deste autor

Nagios - Configurando níveis de acesso e autenticação centralizada no Active Directory

Apache Mod_Proxy como Front-End de acesso e balanceamento de diversas aplicações web

Servidor Apache hospedando diversos sites com e sem SSL

Openfire integrado em uma floresta Active Directory

Restauração e registro do RedHat após utilização de repositórios CentOS

Leitura recomendada

NimbleX - Criando seu Linux pessoal em 5 minutos

Funtoo Current - Instalação completa

Avaliando Ubuntu 7.10 Gutsy Gibbon (Ubuntu Studio)

Kolourpaint - Um editor gráfico muito útil

Utilizando o alien para a conversão de pacotes

  
Comentários
[1] Comentário enviado por hellnux em 24/08/2011 - 09:48h

Ótimo artigo! Embora nunca tenha utilizado o Nagios, é interessante a forma que teha conseguido encontrar a solução e compartilhar. Parabéns!

A imagem do maps com os status é verdadeira? É do seu trabalho? Se sim, é muita coisa para gerenciar '.'

[2] Comentário enviado por imasters em 24/08/2011 - 11:35h

Olá! Gostaria de republicar esse artigo no iMasters. Você pode entrar em contato comigo por email? rina.noronha@imasters.com.br ou redacao@imasters.com.br

Obrigada!

[3] Comentário enviado por djcelsodub em 24/08/2011 - 12:56h

hellnux:

Primeiramente obrigado!
Sim, a imagem é verdadeira, mantive o mapa sem indicações de cidade e ruas para manter a segurança da minha rede fisicamente mas na forma real aparecem todas as indicações.

imasters:

estou enviando email pra você.

Obrigado.

[4] Comentário enviado por silent-man em 24/08/2011 - 13:36h

@djcelsodub

ótimo artigo.

Só não entendi o seguinte:

# make statusmap.cgi

Poderia explicar a linha acima?

[5] Comentário enviado por removido em 24/08/2011 - 14:53h

Ótimo artigo !


[6] Comentário enviado por djcelsodub em 24/08/2011 - 15:16h

silent-man:

o arquivo baixado no link é um código em linguagem C.
o make statusmap.cgi vai transformar o código em C em um arquivo CGI que o Nagios executará.

Abs e obrigado.

Thalysson S:

obrigado.

[7] Comentário enviado por silent-man em 24/08/2011 - 15:48h

@djcelsodub

make statusmap.cgi irá transformá-lo em cgi? hehe sinistro.

# make statusmap.cgi
make: *** No rule to make target `statusmap.cgi'. Stop.

Acredito que antes disso, tem algo. Ou o comando está incompleto.

[8] Comentário enviado por djcelsodub em 24/08/2011 - 16:13h

silent-man:

O make não está encontrado o target criado pelo ./configure da instalação do nagios.
Entre no diretório principal do código do Nagios e digite ./configure e assim que o processo finalizar acesse novamente o diretório cgi e execute o make novamente. Isto deve resolver.

[9] Comentário enviado por silent-man em 24/08/2011 - 16:14h

@djcelsodub

Consegui entender o que está acontecendo.

Utilizo CentOS e o nagios foi instalado do repositório rpm deste.

Assim, quando executo o comando em questão dá o erro. Irei compilar o nagios src e executar, depois copio o arquivo statusmap.cgi para o meu servidor de produção, vamos ver no que vai dar.

[]s

[10] Comentário enviado por djcelsodub em 24/08/2011 - 16:16h

O "transformá-lo em cgi" significa o mesmo que se dizer "transformá-lo em exe", ou seja, em um tipo de executável.

[11] Comentário enviado por djcelsodub em 24/08/2011 - 16:19h

Exato silent-man.
Com a instalação via rpm também não consegui, por isso indiquei o download do código fonte.
Minha instalação foi em CentOS 5.6 também.

Abs.

[12] Comentário enviado por rfranzen em 24/08/2011 - 16:21h

@silent-man será que nessa caso (instalações via repositório) não rola pegar um statusmap.cgi já compilado por alguém e só jogar junto com os demais?

[13] Comentário enviado por silent-man em 24/08/2011 - 16:38h

@rfranzen

É justamente o que estou fazendo!

[14] Comentário enviado por djcelsodub em 24/08/2011 - 16:39h

rfranzen:

Isso não é possível pois este arquivo statusmap.c que deve ser baixado possui as modificações para a integração com o Google Maps e que o original não possui.

[15] Comentário enviado por silent-man em 24/08/2011 - 16:48h

@djcelsodub

/usr/lib64/nagios/cgi/statusmap.cgi: /lib/libc.so.6: version `GLIBC_2.7' not found (required by /usr/lib64/nagios/cgi/statusmap.cgi), referer: http://nagios.dominio.br:8080/nagios/menu.html
[Wed Aug 24 16:43:35 2011] [error] [client 10.3.0.68] Premature end of script headers: statusmap.cgi, referer: http://nagios.dominio.br:8080/nagios/menu.html

Ocorreu isto com você?

[16] Comentário enviado por rfranzen em 24/08/2011 - 16:49h

@silent-man compartilha ele depois ^^

[17] Comentário enviado por djcelsodub em 24/08/2011 - 16:54h

@silent-man:

Creio estar faltando uma biblioteca.
Está testando em x64?

[18] Comentário enviado por kamushadenes em 24/08/2011 - 20:47h

Curiosamente, meu Nagios não mostrou mudança alguma :| O que pode ser?

[19] Comentário enviado por kamushadenes em 24/08/2011 - 20:53h

Ah, descobri. Era só mudar o tipo para Googlemap ;)

Estranho, agora os hosts não aparecem marcados =/

[20] Comentário enviado por afs_andre em 25/08/2011 - 08:15h

Fiz aqui e funcionou 90%. O único problema é que no mapa, não aparecem os hosts no mapa. Já conferi o hostname com a configuração do nagios, aparentemente está td certinho. Alguém aí tem alguma idéia do que possa estar faltando?

[21] Comentário enviado por v5 em 26/08/2011 - 11:28h

Bom dia.

Alguém passo por esse problema.

The file: location.cfg does not exist or could not be read

Configurei conforme descrito no artigo e nao aparece o mapa e só aparece esse erro.

Esse arquivo location.cfg nao tem que seta ele no nagios.cfg ? Fazer algum include para o arquivo.

Obrigado.

At.

[22] Comentário enviado por djcelsodub em 26/08/2011 - 12:24h

v5:

O arquivo location.cfg deve estar em /usr/local/nagios/etc.
Não é necessário indicá-lo no nagios.cfg pois ele é lido pelo statusmap.cgi apenas.
Verifique se o arquivo location.cfg está no local indicado e se as permissões estão para o usuário nagios.

Isso também aconteceu no início da minha implementação e era porque ainda nao havia criado o location.cfg.

Abs.

[23] Comentário enviado por djcelsodub em 27/08/2011 - 10:53h

kamushadenes e afs_andre:

Estou comparando meu SO com uma nova implementação para descobrir o motivo de os hosts não serem apresentados, como vcs citaram.

[24] Comentário enviado por kamushadenes em 30/08/2011 - 18:13h

Bem, ele já está nesse diretório e com permissão para o usuário do Nagios. De qualquer forma, apenas para testes, editei o fonte do statusmap.c e específiquei o caminho absoluto para o arquivo... mesma coisa, sem indicação no mapa =/

[25] Comentário enviado por djcelsodub em 18/09/2011 - 19:54h

Galera,

Instalei novamente o nagios em uma maquina virtual zerada para tentar entender o que poderia estar ocasionando a não apresentação dos pontos no mapa.
Debugando o código fonte do statusmap encontrei a indicaçao de 2 arquivos de imagens que nao existem no diretório images do nagios. Como meu servidor já estava em produçao e realizei diversos testes de integraçao, em um destes as imagens devem ter sido copiadas para o diretório.

Para resolver o problema:

baixe as imagens dos links abaixo dentro do diretorio /usr/local/nagios/share/images:

wget http://www.masterservers.com.br/extras/shadow.png
wget http://www.masterservers.com.br/extras/green.png

e recarregue o nagios com:

service nagios reload

Isto resolverá o problema e apresentará os pontos no mapa.

Abraços á todos.

[26] Comentário enviado por rootkit- em 28/09/2011 - 10:39h

Olá,

Segui o tutorial e tinha o mapa a ser exibido, porém sem as marcações de local.

Notei que não havia carregado o arquivo location.cfg no nagios.cfg.

Após carregar o arquivo e tentar checar se as configurações estão OK, recebo o seguinte erro:

Error: Invalid object definition type 'default' in file '/usr/local/nagios/etc/location.cfg' on line 4.
Error processing object config files!


***> One or more problems was encountered while processing the config files...

Alguém pode dar uma luz de como contornar o problema ?

[27] Comentário enviado por djcelsodub em 28/09/2011 - 12:57h

rootkit-

Não é necessário inserir o location.cfg no nagios.cfg.
O location.cfg não é utilizado pelo nagios e sim pelo Google Maps.

quanto aos pontos não serem apresentados, veja se seguiu o passo de baixar as 2 imagens, como informei no comentário 25.

Abs.


Celso Faria
Americana/SP

[28] Comentário enviado por rootkit em 29/09/2011 - 05:42h

Tenho as imagens no diretório (como no tutorial), removi o location.cfg do nagios.cfg (imaginei que ele não estivesse a indicar os pontos por não ter este arquivo sendo "chamado" pelo nagios na inicialização), conferi novamente as permissões dos arquivos (quer do location.cfg, quer das duas imagens), chequei no error.log do apache (para ver se ele tentava abrir alguma imagem e não conseguia) e nada, nenhum erro (e isso é o mais frustrante, senão teria algo para tentar seguir) , ele exibe o mapa do google maps, mas as indicações de lat/long não :(

Alguma luz ?

[29] Comentário enviado por edirjr em 24/10/2011 - 09:01h

Bom dia,

Estou com o mesmo problema. Não apresenta os pontos no mapa. Alguém já conseguiu resolver?

[30] Comentário enviado por djcelsodub em 24/10/2011 - 09:06h

edirjr:

Veja se já realizou o procedimento descrito no comentário 25.
Este problema foi identificado e a correção foi inserida no artigo.

qualquer coisa "gritae" que tento te ajudar na medida do possível.


Celso Faria
Americana/SP

[31] Comentário enviado por edirjr em 24/10/2011 - 09:29h

Oi Celso, consegui identificar o problema.
Por algum motivo, quando baixava as imagens elas ficavam com problema, dai, acessei diretamente a url das imagens e salvei na pasta.
Está funcionando.
Parabéns pelo artigo.

[32] Comentário enviado por jcvn em 06/02/2012 - 16:16h

Tive que colocar outras imagens (png), pois o servidor onde encontra-se as imagens abaixo esta fora do ar

wget http://www.masterservers.com.br/extras/shadow.png
wget http://www.masterservers.com.br/extras/green.png

Alguem possui essas imagens, pois a minha ficou um pouco fora do padrão.

Há e não poderia esquecer, exelente artigo. Funcionou perfeito comigo usando Debian 6. PARABENS !!!!

[33] Comentário enviado por djcelsodub em 06/02/2012 - 17:14h

jcvn,

O servidor voltou a responder. Teste novamente.

Obrigado pelo comentário.

[34] Comentário enviado por wiltongarcia em 15/02/2012 - 12:37h

O servidor tá fora do ar denovo, alguem pode me enviar essas imagens?

[35] Comentário enviado por jcvn em 15/02/2012 - 21:03h

wiltongarcia,

Posta o email ae que eu envio.

T+

JCVN

[36] Comentário enviado por wiltongarcia em 20/02/2012 - 05:44h

JCVN,

meu email é wiltongarcia(at)hotmail(dot)com

Muito Obrigado!

=)

[37] Comentário enviado por jcvn em 28/02/2012 - 10:15h

Enviado, OK
T+

[38] Comentário enviado por JJSantos em 12/05/2012 - 20:34h

Muito bom, mesmo! 10

[39] Comentário enviado por pcvaranda em 12/07/2012 - 02:22h

Prezados,

As imagens shadow.png e green.png encontram-se indisponíveis nos links indicados.

Poderiam fazer a gentileza de republicá-las, ou enviá-las para o meu email?

pc_varanda@hotmail.com

Agradeço a quem puder ajudar, e parabéns ao autor pelo excelente HowTo.

[40] Comentário enviado por pcvaranda em 12/07/2012 - 02:34h

Prezados,

Tem outra questão, parece que não dá mais para gerar a key no site do google. Alguém sabe o que aconteceu?

Grato

[41] Comentário enviado por danslayer em 14/08/2012 - 12:44h

Galera, meu mapa não utiliza todo o espaço do monitor. O mapa fica ate a metade cortando o restante.
Alguem pode me ajudar ?

Agradeço desde já!

Abraços!!


[42] Comentário enviado por djcelsodub em 15/08/2012 - 12:50h

Pessoal, desculpem a demora em responder... o tempo anda escasso.

vamos lá!

pcvaranda,

Vou enviar as imagens pra você no email.
O Google descontinuou o acesso a novas chaves para a API v2, as que já existiam foram mantidas (não sei até quando).


danslayer,

Você ajustou a janela de acordo com a resolução/tamanho do seu monitor?

Veja abaixo o trecho que indica como fazer isso:

"O mapa, por padrão, está configurado para utilizar 800x500 pixels. Altere como desejar e melhor lhe convir.

Particularmente, preferi utilizar toda a extensão da tela, apenas adequando a área vertical para se encaixar na resolução do meu monitor, a área horizontal ocupará sempre toda extensão do monitor.

Esta alteração é opcional, ignore se quiser manter o padrão citado acima.

Abra o arquivo statusmap.c e edite a linha 1582 para que fique como abaixo:

printf("<div id='map' style='width: 100%; xunits: fraction; height: 500px'></div>");"



Abs.

Celso Faria
Americana/SP

[43] Comentário enviado por gpmsred em 01/11/2012 - 14:19h

Não encontro as imagens, o servidor está fora, tem como mandar as imagens para o meu email?
gpmsred@gmail.com

Obrigado!

[44] Comentário enviado por djcelsodub em 01/11/2012 - 14:49h

Boa tarde gpmsred,

vou enviar em seu email, porém há uma ressalva que devo fazer: a API do Google mudou e a não ser que você já tenha uma chave válida da versão 2, não vai funcionar.

Abs.


Celso Faria
Americana/SP

[45] Comentário enviado por zancoper em 27/11/2012 - 13:39h

Boa tarde!

Através desse tutorial consegui aplicar isso no Nagios na minha Empresa e ficou show, só que queria saber como eu faço pra deixar o mapa híbrido como padrão, pois o padrão está como mapa.

Não tive nenhum problema em aplicar esses procedimentos.

Valew pelo post, muito bom!

Abçs.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts