Esta é uma tradução da página de documentação original em inglês. Ajude-nos a torná-la melhor.

2 Servidor

Visão geral

O Zabbix Server é o componente central da solução.

O servidor gerencia a coleta e recebimento de dados, calcula o estado das triggers, envia notificações aos usuários. Ele é o componente para o qual os agentes e proxies enviam dados sobre a disponibilidade, performance e integridade dos sistemas monitorados. O servidor também pode executar por sí só verificações remotas nos dispositivos monitorados, estas verificações ocorrem quando se utiliza itens do tipo "verificação simples".

O servidor gerencia o repositório central de configuração, estatísticas e armazenamento de dados operacionais, é ele quem irá alertar os administradores quando os incidentes ocorrerem.

As funcionalidades básicas de uma solução de monitoração baseada em Zabbix é distribuida em três componentes: Zabbix Server, interface web e banco de dados (SGDB).

Todas as informações de configuração da monitoração são armazenadas no banco de dados, tanto o Servidor quanto a Interface Web do Zabbix interagem com o SGBD. Por exemplo, quando você utiliza a interface web (ou a API) para adicionar itens, eles são salvos em uma tabela do SGDB. Em paralelo a isso o Zabbix Server, uma vez a cada minuto, irá buscar, na tabela de itens, a lista de itens que deverão ser monitorados. É por isso que pode demorar até dois minutos para que uma modificação feita na Interface Web comece a produzir efeitos na tela de dados recentes.

Processo do Servidor

O Zabbix Server é executado como um processo de segundo plano (daemon). O exemplo abaixo demonstra uma das formas de inicia-lo:

shell> cd sbin
       shell> ./zabbix_server

Você pode utilizar alguns parâmetros com o Zabbix Server:

-c --config <arquivo>           caminho absoluto (completo) para o arquivo de configuração (o padrão é /etc/zabbix/zabbix_server.conf)
       -R --runtime-control <opção>    executa funções administrativas
       -h --help                       apresenta o help de parâmetros
       -V --version                    apresenta o número de versão

O controle em tempo de execução não é suportado em OpenBSD e em NetBSD.

Exemplos de linha de comando com parâmetros:

shell> zabbix_server -c /usr/local/etc/zabbix_server.conf
       shell> zabbix_server --help
       shell> zabbix_server -V
Controle em tempo de execução

Opções do controle em tempo de execução:

Opção Descrição Objetivo
config_cache_reload Atualiza o cache de configuração. O comando é ignorado se o cache já estiver atualizado.
log_level_increase[=<alvo>] Aumenta o nível de log, afeta todos os processos se o alvo não for especificado. pid - Identificador do processo (1 a 65535)
tipo do processo - Restringe a todos os processos de determinado tipo (Ex.: poller)
tipo do processo,N - Restringe a determinado processo de um tipo específico (Ex.: poller,3)
log_level_decrease[=<alvo>] Reduz o nível de log, afeta todos os processos se o alvo não for especificado.

O PID do processo a se modificar o nível de log deverá estar entre 1 e 65535. Em ambientes com muitos processos a modificação poderá ser feita em um processo específico.

Exemplo de utilização do controle em tempo de execução para recarregar o cache de configuração do Zabbix Server:

shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R config_cache_reload

Exemplos de utilização do controle em tempo de execução para modificar o nível de log:

Aumenta o nível de log de todos os processos:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase
       
       Aumenta o nível de log do segundo processo de pooler:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2
       
       Aumenta o nível de log do processo com PID 1234:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234
       
       Diminui o nível de log de todos os processos do pooler HTTP:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"
Inicie manualmente

Se o acima não funcionar você terá que iniciar manualmente. Encontre o caminho para o binário do zabbix_server e execute:

shell> zabbix_server

Você pode usar os seguintes parâmetros de linha de comando com o Zabbix server:

-c --config <file>              caminho para o arquivo de configuração (o padrão é /usr/local/etc/zabbix_server.conf)
       -f --foreground                 executa o Zabbix Server ao fundo (foreground)
       -R --runtime-control <option>   realiza funções administrativas
       -h --help                       apresenta esta ajuda
       -V --version                    exibe número de versão

Exemplos de execução do Zabbix Server com parâmetros de linha de comando:

shell> zabbix_server -c /usr/local/etc/zabbix_server.conf
       shell> zabbix_server --help
       shell> zabbix_server -V
Controle em tempo de execução

Opções de controle em tempo de execução:

Opção Descrição Alvo
config_cache_reload Recarrega o cache de configuração. Ignorado se o cache atualmente está sendo carregado.
diaginfo[=<target>] Reúne informações de diagnóstico no arquivo de log do Server. historycache - estatísticas de cache de histórico
valuecache - estatísticas de cache de valor
preprocessing - estatísticas de gerenciados de pré-processamento
alerting - estatísticas de gerenciador de alerta
lld - estatísticas de gerenciador de LLD
locks - lista de mutexes (é vazio em sistemas **BSD*)
ha_status Registra (log) o estado do cluster de alta disponibilidade (HA).
ha_remove_node=target Remove o nó de alta disponibilidade (HA) especificado pelo seu número listado.
Note que nós ativos/em espera não podem ser removidos.
target - número do nó na lista (pode ser obtido pela execução de ha_status)
ha_set_failover_delay=delay Configura atraso de recuperação de falha (failover) de alta disponibilidade (HA).
Sufixos de tempo são suportados, p.e. 10s, 1m.
secrets_reload Recarrega segredos do Vault.
service_cache_reload Recarrega o cache do gerenciador de serviço.
snmp_cache_reload Recarrega cache SNMP, limpa as propriedades SNMP (engine time, engine boots, engine id, credentials) para todos os hosts.
housekeeper_execute Inicia procedimento de housekeeping. Ignorado se o procedimento de housekeeping está atualmente em progresso.
trigger_housekeeper_execute Inicia o procedimento de gatilho de housekeeping. Ignorado se o procedimento de gatilho de housekeeping está atualmente em progresso.
log_level_increase[=<target>] Aumenta nível de log, afeta todos os processos se alvo não for especificado.
Não suportado nos sistemas **BSD*.
process type - Todos os processos do tipo especificado (p.e., poller)
Veja todos os tipos de processo do Server.
process type,N - Tipo e número do processo (p.e., poller,3)
pid - Identificador do processo (1 até 65535). Para valores maiores especifique alvo como 'process type,N'.
log_level_decrease[=<target>] Diminui nível de log, afeta todos os processos se alvo não for especificado.
Não suportado nos sistemas **BSD*.

Exemplo de utilização de controle em tempo de execução para recarregar o cache de configuração do Server:

shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R config_cache_reload

Exemplo de utilização de controle em tempo de execução para reunir informação de diagnóstico:

Reúne todas as informações de diagnóstico disponíveis no arquivo de log do Server:
       shell> zabbix_server -R diaginfo
       
       Reúne estatísticas de cache de histórico no arquivo de log do Server:
       shell> zabbix_server -R diaginfo=historycache

Exemplo de utilização de controle em tempo de execução para recarregar cache SNMP:

shell> zabbix_server -R snmp_cache_reload  

Exemplo de utilização de controle em tempo de execução para execução de gatilho de housekeeper:

shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R housekeeper_execute

Exemplo de utilização de controle em tempo de execução para alterar nível de log:

Aumenta nível de log de todos os processos:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase
       
       Aumenta o nível de log do segundo processo de poller:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2
       
       Aumenta nível de log do processo com PID 1234:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234
       
       Diminui o nível de log de todos os processos de poller http:
       shell> zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"

Exemplo de configuração de atraso de failover HA para o mínimo de 10 segundos:

shell> zabbix_server -R ha_set_failover_delay=10s
Scripts de inicialização

Os scripts são utilizados para iniciar automaticamente os processos do Zabbix Server durante o processo de inicialização e finalização da máquina. Tais scripts podem ser localizados no diretório misc/init.d do código fonte da solução.

Plataformas suportadas

Devido aos requisitos de segurança e a natureza de missão crítica do funcionamento do Zabbix Server, o UNIX é o único sistema operacional que pode entregar de forma consistente o desempenho, tolerância a falhas e resiliência necessários. O Zabbix opera como uma das soluções líderes de mercado.

O Zabbix Server é testado nas seguintes plataformas:

  • Linux
  • Solaris
  • AIX
  • HP-UX
  • Mac OS X
  • FreeBSD
  • OpenBSD
  • NetBSD
  • SCO Open Server
  • Tru64/OSF1

O Zabbix pode funcionar em outros sistemas operacionais baseados no UNIX.

Start-up scripts

The scripts are used to automatically start/stop Zabbix processes during system's start-up/shutdown. The scripts are located under directory misc/init.d.

Server process types

  • alert manager - alert queue manager
  • alert syncer - alert DB writer
  • alerter - process for sending notifications
  • availability manager - process for host availability updates
  • configuration syncer - process for managing in-memory cache of configuration data
  • discoverer - process for discovery of devices
  • escalator - process for escalation of actions
  • history poller - process for handling calculated, aggregated and internal checks requiring a database connection
  • history syncer - history DB writer
  • housekeeper - process for removal of old historical data
  • http poller - web monitoring poller
  • icmp pinger - poller for icmpping checks
  • ipmi manager - IPMI poller manager
  • ipmi poller - poller for IPMI checks
  • java poller - poller for Java checks
  • lld manager - manager process of low-level discovery tasks
  • lld worker - worker process of low-level discovery tasks
  • poller - normal poller for passive checks
  • preprocessing manager - manager of preprocessing tasks
  • preprocessing worker - process for data preprocessing
  • problem housekeeper - process for removing problems of deleted triggers
  • proxy poller - poller for passive proxies
  • report manager- manager of scheduled report generation tasks
  • report writer - process for generating scheduled reports
  • self-monitoring - process for collecting internal server statistics
  • snmp trapper - trapper for SNMP traps
  • task manager - process for remote execution of tasks requested by other components (e.g. close problem, acknowledge problem, check item value now, remote command functionality)
  • timer - timer for processing maintenances
  • trapper - trapper for active checks, traps, proxy communication
  • unreachable poller - poller for unreachable devices
  • vmware collector - VMware data collector responsible for data gathering from VMware services

The server log file can be used to observe these process types.

Various types of Zabbix server processes can be monitored using the zabbix[process,<type>,<mode>,<state>] internal item.

Supported platforms

Due to the security requirements and mission-critical nature of server operation, UNIX is the only operating system that can consistently deliver the necessary performance, fault tolerance and resilience. Zabbix operates on market leading versions.

Zabbix server is tested on the following platforms:

  • Linux
  • Solaris
  • AIX
  • HP-UX
  • Mac OS X
  • FreeBSD
  • OpenBSD
  • NetBSD
  • SCO Open Server
  • Tru64/OSF1

Zabbix may work on other Unix-like operating systems as well.

Locale

Note that the server requires a UTF-8 locale so that some textual items can be interpreted correctly. Most modern Unix-like systems have a UTF-8 locale as default, however, there are some systems where that may need to be set specifically.