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: 75.639 ]

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

Traduzindo o Thunderbird para Português

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

Como resolver problemas com o pkg-config

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

Desfragmentando partições NTFS no Linux

Leitura recomendada

Conexão dial-up no Gnome usando o network-admin

Apache2 + PHP5 + MySQL + PhpMyAdmin + Webmin de forma simples e objetiva

Quota - Criando e administrando no CentOS

Slackware Current redondo com XFCE

Exemplos práticos de tabelas de partições

  
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