Resgatando IP válido do agente zabbix

Em uma das construtivas discuções do grupo Zabbix Brasil (Blog | Yahoo), foi levantado a necessidade de obter o IP válido dos agentes ou dos proxies em caso de ambiente com IP dinâmico.

Uma das soluções possíveis para resolver este problema foi proposta pelo membro do grupo Igor Araujo, esta solução consiste em criar uma página no proprio servidor apache do zabbix server que retorne o IP em que o agente está conectando e utilizar esta URL pelo agente que por sua vez irá obter o seu próprio IP e informa-lo ao Zabbix server.

Chega de lero, lero e vamos ao passo a passo desta solução.

Criando a página no apache

Localize o diretório onde estão os arquivos do front-end (web) do zabbix, no meu ambiente está em /usr/share/zabbix. 

Crie um subdiretório dentro deste com o nome ip

mkdir /usr/share/zabbix/ip

Crie um arquivo nomeado /usr/share/zabbix/ip/index.php com o seguinte conteúdo

<?php
 $ip = $_SERVER['REMOTE_ADDR'];
 echo $ip;
 ?>

Caso as permissões dos seus arquivos web estejam para outro usuário que não o root, defina as permissões para o usuário especificado.

Realize o teste de acesso com a url do seu servidor web ex.: http://meuservidor.com.br/zabbix/ip/

IP_001

Configurando o agente

O Zabbix suporta diversos sistemas operacional como cliente (Linux, Windows MAC e etc…), porem para o objetivo deste tutorial a unica diferença entre eles será a forma de instalação do aplicativo cURL e o caminho de chamada deste na configuração do agente,  desta forma serão mostrados como realizar em windows e linux.

Linux

Instale o aplicativo cURL através do comando

apt-get install curl

Windows e outras plataformas

Realize o download do executável do aplicativo no site oficial do fabricante (http://curl.haxx.se/download.html)

Descompacte o executável no mesmo diretório de instalação do agente do zabbix. No meu ambiente é c:\zabbix.

Este aplicativo terá a função de acessar a url que criamos no servidor e extrair somente o ip, para isso a sintaze de execução é curl -s url, onde o -s extrai todo o cabeçalho http deixando somente o conteúdo.

Edite o arquivo de configuração do agente zabbix (zabbix_agentd.conf) e adicione as seguintes linhas

Para linux

#Endereço IP WAN
UserParameter=net.ipaddress,curl -s http://meuservidor.com.br/zabbix/ip/

Para windows

#Endereço IP WAN
UserParameter=net.ipaddress,c:\zabbix\commands\curl -s http://meuservidor.com.br/zabbix/ip/

Reinicie o agente

Criando o item de nomitoramento no Host no zabbix

Vá no host desejado, clique em Items e clique em Novo Item

Cadastre o novo item conforme informações abaixo:

  • Key: net.ipaddress
  • Type of information: Text
  • Update interval: 180

Quanto ao item Update interval vale a pena considerar qual é o tempo ideal para o seu ambiente para não sobrecarregar o seu servidor do zabbix.

IP_002

Basta salvar o item que automaticamente o IP do host será capturado na próxima verificação.

Helvio Junior (OSCE, OSCP, CEHv9)

Helvio Junior (OSCE, OSCP, CEHv9)

Consultor em Cyber Security em Ernst & Young (EY)
OSCE, OSCP, CEHv9, Pesquisador de Falhas de Segurança e Vulnerabilidades. Profissional com mais de 20 anos de experiência na área de TI, atualmente focado na área de segurança da informação ofensiva (Red Team), bug hunting, cyber threat hunting, criação e engenharia reversa de Malware.
Carreira baseada em sólidos conhecimentos técnicos nas principais tecnologias de TI: Penetration Testing, Clould Computing, Ambiente de alta criticidade e alta disponibilidade, Windows Servers e seus serviços, Linux Servers e seus serviços, VoIP com Asterisk, Redes, Cisco, HP, ISO 27002, Hacker ético (CEHv9) e Engenharia reversa.
Helvio Junior (OSCE, OSCP, CEHv9)
4 respostas
  1. Josenilton
    Josenilton says:

    Uma dúvida,

    Com esta informação o zabbix ira atualizar automaticamente o host e nao perderá contato com o mesmo ou nós teremos que efetuar esta correção toda vez que o endereço mudar?

    Responder
  2. daniel
    daniel says:

    eu tenho duas duvidas, o que eu coloco no campo ip na hora que eu for criar um host? não posso deixar zerado ou colocar o loopback então o que coloco? a outra é, eu tenho dois hosts com ip dinamico, como faço para fazer o zabbix reconhecer qual é qual? tipo meu host1 seria meu cliente 1, como faço para o zabbix reconhecer desta forma e não host 1 cliente2?

    Responder

Deixe uma resposta

Want to join the discussion?
Feel free to contribute!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *