Instalação e Configuração do Zabbix 3 e Agentes (Linux/Windows)

Este artigo demonstrará como instalar e configurar o Zabbix 3 em um servidor Debian e clientes (agentes) Windows e Linux (Debian).

[ Hits: 76.550 ]

Por: Eduardo Mozart de Oliveira em 24/10/2016 | Blog: http://www.eduardomozartdeoliveira.wordpress.com/


Visão geral dos Agentes



O principal trabalho dos agentes Zabbix consiste em obter informações locais (hds, memória, estatísticas do processador etc) dos alvos onde eles são executados e enviar os dados para um servidor Zabbix ou proxy para ser posteriormente processados e analisados.

Em caso de falhas (como um disco rígido cheio ou um serviço travado), o servidor Zabbix pode alertar os administradores de uma máquina em particular que reportou a falha.

Os agentes do Zabbix são extremamente eficientes por que usam métodos nativos do sistema para obter informações estatísticas.

O Zabbix usa um protocolo de comunicação baseado em JSON para comunicar-se com o agente Zabbix.

Verificações passiva e ativa

Os agentes do Zabbix podem realizar tanto verificações passivas quanto ativas.

Verificações passivas

Uma verificação passiva é uma simples requisição de dados. O servidor Zabbix ou proxy pede uma informação (por exemplo, ping) e o agente Zabbix retorna o resultado para o servidor.

Requisição do servidor:

<item key>

Resposta do agente:

<HEADER><DATALEN><DATA>[\0<ERROR>]

Por exemplo, para itens suportados:
  • Servidor abre uma conexão TCP
  • Servidor envia agent.ping
  • Agente recebe a requisição e responde com <HEADER><DATALEN>1
  • Servidor processa os dados e obtém o valor, '1' em nosso caso
  • Conexão TCP é fechada

Para itens não suportados:
  • Servidor abre uma conexão TCP
  • Servidor envia vfs.fs.size[/nono]
  • Agente recebe a requisição e responde com <DATALEN>ZBX_NOTSUPPORTED\0Cannot obtain filesystem information: [2] No such file or directory
  • Servidor processa os dados, muda o estado do item para não suportado com a mensagem de erro específica
  • Conexão TCP é fechada

Verificações ativas

Verificações ativas requerem mais processamentos complexos. O agente deve primeiramente obter do servidor uma lista de itens para processamento independente.

Os servidores para obter a lista de verificações ativas estão listados no parâmetro 'ServerActive' do arquivo de configuração do agente. A frequência de perguntar estas verificações está definida no parâmetro 'RefreshActiveChecks' neste mesmo arquivo de configuração. Porém, se a obtenção da lista de verificação ativa falhar, está definido no código-fonte do agente tentar obtê-la novamente em 60 segundos.

O agente então envia periodicamente os novos valores para o(s) servidor(es).

Obtendo a lista de itens

Agente envia:

<HEADER><DATALEN>{
    "request":"active checks",
    "host":"<hostname>"
}

Servidor responde:

<HEADER><DATALEN>{
    "response":"success",
    "data":[
        {
            "key":"log[/home/zabbix/logs/zabbix_agentd.log]",
            "delay":30,
            "lastlogsize":0,
            "mtime":0
        },
        {
            "key":"agent.version",
            "delay":600,
            "lastlogsize":0,
            "mtime":0
        },
        {
            "key":"vfs.fs.size[/nono]",
            "delay":600,
            "lastlogsize":0,
            "mtime":0
        }
    ]
}

O servidor deve responder com sucesso. Para cada item retornado, todas as propriedades key, delay, lastlogsize e mtime devem existir, independente do item ser um item de log ou não.

Por exemplo:
  • Agent abre uma conexão TCP
  • Agente pergunta por uma lista de verificações
  • Servidor responde com uma lista de itens (item key, delay)
  • Agente recebe a resposta
  • A conexão TCP é fechada
  • Agente começa a obter os dados periodicamente

Enviando os dados coletados

Agente envia:

<HEADER><DATALEN>{
    "request":"agent data",
    "data":[
        {
            "host":"<hostname>",
            "key":"agent.version",
            "value":"2.4.0",
            "clock":1400675595,
            "ns":76808644
        },
        {
            "host":"<hostname>",
            "key":"log[/home/zabbix/logs/zabbix_agentd.log]",
            "lastlogsize":112,
            "value":" 19845:20140621:141708.521 Starting Zabbix Agent [<hostname>]. Zabbix 2.4.0 (revision 50000).",
            "clock":1400675595,
            "ns":77053975
        },
        {
            "host":"<hostname>",
            "key":"vfs.fs.size[/nono]",
            "state":1,
            "value":"Cannot obtain filesystem information: [2] No such file or directory",
            "clock":1400675595,
            "ns":78154128
        }
    ],
    "clock": 1400675595,
    "ns": 78211329
}

Resposta do servidor:

<HEADER><DATALEN>{
    "response":"success",
    "info":"processed: 3; failed: 0; total: 3; seconds spent: 0.003534"
}

Por exemplo:
  • Agente abre uma conexão TCP
  • Agente envia uma lista de valores
  • Servidor processa os dados e envia o status de volta
  • Conexão TCP é fechada

Plataformas suportadas

O agente Zabbix é suportado em:
  • Linux
  • IBM AIX
  • FreeBSD
  • NetBSD
  • OpenBSD
  • HP-UX
  • Mac OS X
  • Solaris: 9, 10, 11
  • Windows: todos as versões desktop e servidor a partir da 2000

Execução dos processos do agente

O agente Zabbix é executado no host a ser monitorado como um serviço.

ParâmetroDescrição
Agentes UNIX e Windows
-c --config <arquivo-de-configuração> Caminho absoluto para o arquivo de configuração. Você pode usar esta opção para especificar um arquivo de configuração diferente do arquivo padrão. No UNIX, o padrão é /usr/local/etc/zabbix_agentd.conf ou definido pelas variáveis de compilação --sysconfdir ou --prefix No Windows, o padrão é c:zabbix_agentd.conf
-p --print Exibe itens conhecidos. Nota: se o arquivo de configuração não está no caminho padrão, você deve especificar o caminho para retornar resultados de parâmetros de usuário também.
-t --test <item key> Testa o item específico. Nota: se o arquivo de configuração não está no caminho padrão, você deve especificar o caminho para retornar resultados de parâmetros de usuário também.
-h --help Exibe informação de ajuda
-V --version Exibe número da versão
Somente agente UNIX:
-R --runtime-control log_level_increase Com controles de tempo de execução você pode alterar o nível de log do agente.


A lista completa de argumentos e parâmetros de configuração podem ser encontradas na documentação oficial do Zabbix.

Exemplos específicos de uso de parâmetros de linha de comando:
  • exibe todos os itens e valores padrões do agente
  • testando um parâmetro do usuário com a chave "mysql.ping" definida no arquivo de configuração específico

shell> zabbix_agentd --print
shell> zabbix_agentd -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf

Contexto de execução do serviço do agente (usuário)

O agente Zabbix no UNIX foi desenvolvido para executar como um usuário não-root no UNIX.

Se você tentar executá-lo como 'root', está definido no código-fonte do agente trocar para o usuário 'zabbix', que deve estar presente no seu sistema. Você somente pode executar o agente como 'root' se você modificar o parâmetro 'AllowRoot' no arquivo de configuração do agente.

Códigos de erro

Anterior a versão 2.2 o agente do Zabbix retornava 0 em caso de sucesso e 255 em caso de falha. Iniciando com a versão 2.2 e superiores o agente Zabbix retorna 0 em caso de sucesso e 1 em em caso de falha.

Página anterior     Próxima página

Páginas do artigo
   1. Visão geral do Zabbix
   2. Instalação e configuração do Zabbix 3
   3. Visão geral dos Agentes
   4. Instalando o Agente Zabbix no Windows
   5. Instalando e configurando o agente Zabbix em sistemas Linux remotos
   6. Adicionando o host monitorado pelo agente Zabbix ao servidor Zabbix
Outros artigos deste autor

Configuração do Ubuntu 16.04 para acesso com cartão ao Banrisul

Instalação do Driver ATI Radeon XPRESS 200 no Ubuntu 16.04

Adicionando um atalho na área de trabalho a um compartilhamento de rede no Ubuntu

Como resolver problemas com o pkg-config

Instalação do OpenJDK e Oracle JDK 11 no Ubuntu e Debian

Leitura recomendada

Erro no KDM (temas) depois de update no Sabayon

openSUSE 12.1 - Instalando Oracle Java

Configurando o modem ZTE MF626 com Vivo3G no Debian

Pós-instalação do Sabayon LXDE

Criando um mirror LVM nível 1

  
Comentários
[1] Comentário enviado por ederpaulopereira em 28/10/2016 - 09:48h

Excelente. Estava estudando o Zabbix ontem e virtualizei algumas máquinas pra testar. Você conhece alguma forma de entender o retorno do snmpwalk, pois ele traz muitas informações que não sei como ler e colocar no zabbix. Obrigado.

[2] Comentário enviado por wagneralves em 28/10/2016 - 10:29h

Show de bola

[3] Comentário enviado por leonardomarcatti em 30/05/2017 - 15:11h

Muito obrigado soldado!!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts