O servidor Zabbix é o processo central do software Zabbix.
O servidor realiza a coleta e o recebimento de dados, calcula triggers e envia notificações aos usuários. É o componente central para o qual os agents e proxies do Zabbix reportam dados sobre a disponibilidade e integridade dos sistemas. O servidor pode, ele mesmo, verificar remotamente serviços em rede (como servidores web e servidores de e-mail) usando verificações simples de serviço.
O servidor é o repositório central no qual todas as informações de configuração, dados estatísticos e operacionais são armazenados, e é a entidade no Zabbix que alertará ativamente os administradores quando surgirem problemas em qualquer um dos sistemas monitorados.
O funcionamento de um servidor Zabbix básico é dividido em três componentes distintos: servidor Zabbix, frontend web e armazenamento em banco de dados.
Todas as informações de configuração do Zabbix são armazenadas no banco de dados, com o qual tanto o servidor quanto o frontend web interagem. Por exemplo, quando você cria um novo item usando o frontend web (ou API), ele é adicionado à tabela de itens no banco de dados. Então, cerca de uma vez por minuto, o servidor Zabbix consulta a tabela de itens para obter uma lista dos itens que estão ativos, que é então armazenada em um cache dentro do servidor Zabbix. É por isso que pode levar até dois minutos para que quaisquer alterações feitas no frontend do Zabbix apareçam na seção de dados mais recentes.
O Zabbix server é executado como um processo daemon. O server pode ser iniciado executando:
Isso funcionará na maioria dos sistemas GNU/Linux. Em outros sistemas, pode ser necessário executar:
Da mesma forma, para parar/reiniciar/ver o status, use os seguintes comandos:
Se o acima não funcionar, você deve iniciá-lo manualmente. Encontre o caminho para o binário zabbix_server e execute:
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 em primeiro plano
-R --runtime-control <option> executa funções administrativas
-T --test-config valida o arquivo de configuração e sai
-h --help exibe esta ajuda
-V --version exibe o número da versãoExemplos de execução do Zabbix server com parâmetros de linha de comando:
Opções de controle em tempo de execução:
| Opção | Descrição | Destino |
|---|---|---|
| config_cache_reload | Recarrega o cache de configuração. Ignorado se o cache estiver sendo carregado no momento. | |
| history_cache_clear=destino | Limpa o cache de histórico para o item especificado pelo seu ID. Afeta todos os valores do item, exceto o primeiro e o último valor. |
destino - ID do item |
| diaginfo[=<seção>] | Coleta informações de diagnóstico no arquivo de log do servidor. | historycache - estatísticas do cache de histórico valuecache - estatísticas do cache de valores preprocessing - estatísticas do gerenciador de pré-processamento alerting - estatísticas do gerenciador de alertas lld - estatísticas do gerenciador de LLD locks - lista de mutexes (fica vazia em sistemas BSD) connector - estatísticas para conectores com a maior fila |
| ha_status | Registra o status do cluster de alta disponibilidade (HA). | |
| ha_remove_node=destino | Remove o nó de alta disponibilidade (HA) especificado pelo seu nome ou ID. Observe que nós ativos/standby não podem ser removidos. |
destino - nome ou ID do nó (pode ser obtido executando ha_status) |
| ha_set_failover_delay=atraso | Define o atraso de failover de alta disponibilidade (HA). Sufixos de tempo são suportados, por exemplo, 10s, 1m. |
|
| proxy_config_cache_reload[=<destino>] | Recarrega o cache de configuração do proxy. | destino - lista de nomes de proxies separados por vírgula Se nenhum destino for especificado, recarrega a configuração de todos os proxies |
| secrets_reload | Recarrega segredos do Vault. | |
| service_cache_reload | Recarrega o cache do gerenciador de serviços. | |
| snmp_cache_reload | Recarrega o cache SNMP — limpa as propriedades do mecanismo SNMP (engine time, engine boots, engine id, credenciais) para todos os hosts. Use para forçar uma limpeza global do cache ao solucionar problemas SNMP. | |
| housekeeper_execute | Inicia o procedimento de housekeeping. Ignorado se o procedimento de housekeeping estiver em andamento. |
|
| trigger_housekeeper_execute | Inicia o procedimento de housekeeping de trigger para serviços para remover problemas causados por triggers que foram excluídos desde então, incluindo problemas de serviço gerados por tais problemas (considerados como resolvidos no momento do housekeeping). Observe que, até que o procedimento de housekeeping seja iniciado, problemas causados por triggers agora excluídos ainda podem gerar problemas de serviço e atribuí-los a serviços. Se sua configuração envolver muitas regras de cálculo de status de serviço baseadas em triggers frequentemente descobertos/não descobertos, considere aumentar a frequência do procedimento de housekeeping de trigger ajustando o parâmetro de configuração do servidor ProblemHousekeepingFrequency. Ignorado se o procedimento de housekeeping de trigger estiver em andamento. |
|
| log_level_increase[=<destino>] | Aumenta o nível de log, afeta todos os processos se o destino não for especificado. Não suportado em sistemas BSD. |
tipo de processo - Todos os processos do tipo especificado (por exemplo, poller) Veja todos os tipos de processos do servidor. tipo de processo,N - Tipo de processo e número (por exemplo, poller,3) pid - Identificador do processo (1 a 65535). Para valores maiores, especifique o destino como 'tipo de processo,N'. |
| log_level_decrease[=<destino>] | Diminui o nível de log, afeta todos os processos se o destino não for especificado. Não suportado em sistemas BSD. |
|
| prof_enable[=<destino>] | Habilita o profiling. Afeta todos os processos se o destino não for especificado. O profiling habilitado fornece detalhes de todos os rwlocks/mutexes por nome de função. |
tipo de processo - Todos os processos do tipo especificado (por exemplo, history syncer) Tipos de processos suportados como destinos de profiling: alerter, alert manager, availability manager, configuration syncer, discovery manager, escalator, history poller, history syncer, housekeeper, http poller, icmp pinger, ipmi manager, ipmi poller, java poller, lld manager, lld worker, odbc poller, poller, preprocessing manager, preprocessing worker, proxy poller, self-monitoring, service manager, snmp trapper, task manager, timer, trapper, unreachable poller, vmware collector tipo de processo,N - Tipo de processo e número (por exemplo, history syncer,1) pid - Identificador do processo (1 a 65535). Para valores maiores, especifique o destino como 'tipo de processo,N'. escopo - rwlock, mutex, processing podem ser usados com o tipo de processo e número (por exemplo, history syncer,1,processing) ou todos os processos do tipo (por exemplo, history syncer,rwlock) |
| prof_disable[=<destino>] | Desabilita o profiling. Afeta todos os processos se o destino não for especificado. |
tipo de processo - Todos os processos do tipo especificado (por exemplo, history syncer) Tipos de processos suportados como destinos de profiling: veja prof_enabletipo de processo,N - Tipo de processo e número (por exemplo, history syncer,1) pid - Identificador do processo (1 a 65535). Para valores maiores, especifique o destino como 'tipo de processo,N'. |
Exemplo de uso do controle em tempo de execução para recarregar o cache de configuração do server:
Exemplos de uso do controle em tempo de execução para recarregar a configuração do proxy:
# Recarregar a configuração de todos os proxies:
zabbix_server -R proxy_config_cache_reload
# Recarregar a configuração do Proxy1 e Proxy2:
zabbix_server -R proxy_config_cache_reload=Proxy1,Proxy2Exemplo de uso do controle em tempo de execução para limpar o cache de histórico de um item:
Exemplos de uso do controle em tempo de execução para coletar informações de diagnóstico:
# Coletar todas as informações de diagnóstico disponíveis no arquivo de log do server:
zabbix_server -R diaginfo
# Coletar estatísticas do cache de histórico no arquivo de log do server:
zabbix_server -R diaginfo=historycacheExemplo de uso do controle em tempo de execução para recarregar o cache SNMP:
Quando uma interface SNMPv3 é atualizada pela interface web do Zabbix, o Zabbix recarregará automaticamente as novas credenciais SNMPv3 para essa interface na maioria dos casos; use -R snmp_cache_reload apenas se a coleta ainda falhar após as alterações de credenciais (por exemplo, devido a inconsistências de engineBoots/engineID ou dispositivos que não seguem o RFC), ou quando você precisar forçar uma limpeza global do cache SNMP para fins de troubleshooting.
Exemplo de uso do controle em tempo de execução para acionar a execução do housekeeper:
Exemplos de uso do controle em tempo de execução para alterar o nível de log:
# Aumentar o nível de log de todos os processos:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase
# Aumentar o nível de log do segundo processo poller:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=poller,2
# Aumentar o nível de log do processo com PID 1234:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_increase=1234
# Diminuir o nível de log de todos os processos http poller:
zabbix_server -c /usr/local/etc/zabbix_server.conf -R log_level_decrease="http poller"Exemplo de definição do atraso de failover do HA para o mínimo de 10 segundos:
O Zabbix server foi projetado para ser executado como um usuário não-root. Ele será executado como qualquer usuário não-root que o iniciar. Portanto, você pode executar o server como qualquer usuário não-root sem problemas.
Se você tentar executá-lo como 'root', ele mudará para o usuário 'zabbix', que deve estar presente em seu sistema. Você só pode executar o server como 'root' se modificar o parâmetro 'AllowRoot' no arquivo de configuração do server de acordo.
Se o Zabbix server e o agent forem executados na mesma máquina, é recomendável usar um usuário diferente para executar o server do que para executar o agent. Caso contrário, se ambos forem executados como o mesmo usuário, o agent poderá acessar o arquivo de configuração do server e qualquer usuário com nível de Admin no Zabbix poderá, com relativa facilidade, recuperar, por exemplo, a senha do banco de dados.
Veja as opções do arquivo de configuração para obter detalhes sobre como configurar o zabbix_server.
Os scripts são usados para iniciar/parar automaticamente os processos do Zabbix durante a inicialização/desligamento do sistema. Os scripts estão localizados no diretório misc/init.d.
agent poller - processo de poller assíncrono para verificações passivas com uma thread de trabalhoalert manager - gerenciador da fila de alertasalert syncer - gravador de alertas no banco de dadosalerter - processo para envio de notificaçõesavailability manager - processo para atualizações de disponibilidade de hostsbrowser poller - poller para verificações de itens de navegadorconfiguration syncer - processo para gerenciar o cache em memória dos dados de configuraçãoconfiguration syncer worker - processo para resolver e sincronizar valores de macros de usuário em nomes de itensconnector manager - processo gerenciador de conectoresconnector worker - processo para lidar com solicitações do gerenciador de conectoresdiscovery manager - processo gerenciador de descoberta de dispositivosdiscovery worker - processo para lidar com tarefas de descoberta do discovery managerescalator - processo para escalonamento de açõesha manager - processo para gerenciamento de alta disponibilidadehistory poller - processo para lidar com verificações calculadas que requerem conexão com o banco de dadoshistory syncer - gravador de histórico no banco de dadoshousekeeper - processo para remoção de dados históricos antigoshttp agent poller - processo de poller assíncrono para verificações HTTP com uma thread de trabalhohttp poller - poller de monitoramento webicmp pinger - poller para verificações icmppinginternal poller - poller para verificações internasipmi manager - gerenciador de poller IPMIipmi poller - poller para verificações IPMIjava poller - poller para verificações Javalld manager - processo gerenciador de tarefas de descoberta de baixo nívellld worker - processo de trabalho de tarefas de descoberta de baixo nívelodbc poller - poller para verificações ODBCpoller - poller normal para verificações passivaspreprocessing manager - gerenciador de tarefas de pré-processamento com threads de trabalho de pré-processamentopreprocessing worker - thread para pré-processamento de dadosproxy poller - poller para proxies passivosproxy group manager - gerenciador de balanceamento de carga e alta disponibilidade de proxiesreport manager- gerenciador de tarefas de geração de relatórios agendadosreport writer - processo para geração de relatórios agendadosself-monitoring - processo para coleta de estatísticas internas do servidorservice manager - processo para gerenciar serviços recebendo informações sobre problemas, tags de problemas e recuperação de problemas do history syncer, task manager e alert managersnmp poller - processo de poller assíncrono para verificações SNMP com uma thread de trabalho (apenas itens walk[OID] e get[OID])snmp trapper - trapper para traps SNMPtask manager - processo para execução remota de tarefas solicitadas por outros componentes (por exemplo, fechar problema, reconhecer problema, verificar valor de item agora, funcionalidade de comando remoto)timer - temporizador para processamento de manutençõestrapper - trapper para verificações ativas, traps, comunicação com proxytrigger housekeeper - processo para remoção de problemas gerados por triggers que foram excluídosunreachable poller - poller para dispositivos inacessíveisvmware collector - coletor de dados VMware responsável pela coleta de dados de serviços VMwareO arquivo de log do servidor pode ser usado para observar esses tipos de processos.
Vários tipos de processos do servidor Zabbix podem ser monitorados usando o item interno zabbix[process,<type>,<mode>,<state>].
O título do processo history syncer exibe estatísticas detalhadas sobre as transações do history syncer:
205182 ? S 0:00 zabbix_server: history syncer #2 [processed 0 values, 0+0 triggers in 0.000021 (0.000000,0.000000,0.000000,0.000000,0.000000) sec, idle 1 sec]
205183 ? S 0:00 zabbix_server: history syncer #3 [processed 18 values, 7+0 triggers in 0.002612 (0.001108,0.000000,0.000000,0.001208,0.000014) sec, idle 1 sec]
205184 ? S 0:00 zabbix_server: history syncer #4 [processed 0 values, 0+0 triggers in 0.000027 (0.000000,0.000000,0.000000,0.000000,0.000000) sec, idle 1 sec]Em "A+B triggers":
Os tempos, em "processed...in N (<timings>) sec", são:
Devido aos requisitos de segurança e à natureza crítica da operação do server, o UNIX é o único sistema operacional que pode fornecer consistentemente o desempenho, tolerância a falhas e resiliência necessários. O Zabbix opera nas versões líderes de mercado.
O server Zabbix é testado nas seguintes plataformas:
O Zabbix pode funcionar em outros sistemas operacionais do tipo Unix.
Observe que o server requer uma localidade UTF-8 para que alguns itens textuais possam ser interpretados corretamente. A maioria dos sistemas modernos semelhantes ao Unix possui uma localidade UTF-8 como padrão, no entanto, há alguns sistemas em que isso pode precisar ser definido especificamente.