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.
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:
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).
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.
[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
[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.
[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.
[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.
[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.
[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?
[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.
[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:
[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 :(
[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.
[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:
[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.
[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.