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

2 Requisitos

Hardware

Memória

O Zabbix requer memória física e de disco. A quantidade de memória de disco necessária obviamente depende do número de hosts e parâmetros que estão sendo monitorados. Se você planeja manter um longo histórico de parâmetros monitorados, deve pensar em pelo menos alguns gigabytes para ter espaço suficiente para armazenar o histórico no banco de dados. Cada processo do Zabbix daemon requer várias conexões ao servidor de banco de dados. A quantidade de memória alocada para a conexão depende da configuração do mecanismo de banco de dados.

Quanto mais memória física você tiver, mais rápido o banco de dados (e, portanto, o Zabbix) funcionará.

CPU

O Zabbix e, especialmente, o banco de dados do Zabbix pode requerer recursos de CPU significativos dependendo do número de parâmetros monitorados e o mecanismo de banco de dados selecionada.

Outro hardware

A porta de comunicação serial e o modem serial GSM são necessários para utilizar o suporte de notificação por SMS no Zabbix. O conversor USB para serial também funcionará.

Examples of hardware configuration

The table provides examples of hardware configuration, assuming a Linux/BSD/Unix platform.

These are size and hardware configuration examples to start with. Each Zabbix installation is unique. Make sure to benchmark the performance of your Zabbix system in a staging or development environment, so that you can fully understand your requirements before deploying the Zabbix installation to its production environment.

Installation size Monitored metrics1 CPU/vCPU cores Memory
(GiB)
Database Amazon EC22
Small 1 000 2 8 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.large/m6g.large
Medium 10 000 4 16 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.xlarge/m6g.xlarge
Large 100 000 16 64 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL,
Oracle
m6i.4xlarge/m6g.4xlarge
Very large 1 000 000 32 96 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL,
Oracle
m6i.8xlarge/m6g.8xlarge

1 1 metric = 1 item + 1 trigger + 1 graph
2 Example with Amazon general purpose EC2 instances, using ARM64 or x86_64 architecture, a proper instance type like Compute/Memory/Storage optimised should be selected during Zabbix installation evaluation and testing before installing in its production environment.

Actual configuration depends on the number of active items and refresh rates very much (see database size section of this page for details). It is highly recommended to run the database on a separate box for large installations.

Plataformas suportadas

Devido a requisitos de segurança e a natureza crítica do servidor de monitoramento, o UNIX é o único sistema operacional que consegue fornecer consistentemente a performance, tolerância a falhas e resiliência necessárias. O Zabbix opera em versões líderes de mercado.

Os componentes do Zabbix estão disponíveis e foram testados para as seguintes plataformas:

Plataforma Servidor Agente Agente2
Linux x x x
IBM AIX x x -
FreeBSD x x -
NetBSD x x -
OpenBSD x x -
HP-UX x x -
Mac OS X x x -
Solaris x x -
Windows - x x

O servidor Zabbix/agente Zabbix pode funcionar em outros sistemas operacionais baseados em Unix. O agente Zabbix é suportado em todos os Windows versão desktop e versões de servidor desde o XP.

O Zabbix desabilita os core dumps se compilado com criptografia e não inicia se o sistema não permitir a desativação dos core dumps.

Software necessário

O Zabbix é construído em torno de servidores web modernos, principais mecanismos de banco de dados e linguagem de programação PHP.

Third-party external surrounding software

Mandatory requirements are needed always. Optional requirements are needed for the support of the specific function.

Software Mandatory status Supported versions Comments
MySQL/Percona One of 8.0.X Required if MySQL (or Percona) is used as Zabbix backend database. InnoDB engine is required. We recommend using the MariaDB Connector/C library for building server/proxy.
MariaDB 10.5.00-10.8.X InnoDB engine is required. We recommend using the MariaDB Connector/C library for building server/proxy.
Oracle 19c - 21c Required if Oracle is used as Zabbix backend database.
PostgreSQL 13.0-14.X Required if PostgreSQL is used as Zabbix backend database.
TimescaleDB for PostgreSQL 2.0.1-2.7 Required if TimescaleDB is used as a PostgreSQL database extension. Make sure to install TimescaleDB Community Edition, which supports compression.
SQLite Optional 3.3.5-3.34.X SQLite is only supported with Zabbix proxies. Required if SQLite is used as Zabbix proxy database.
smartmontools 7.1 or later Required for Zabbix agent 2.
who Required for the user count plugin.
dpkg Required for the system.sw.packages plugin.
pkgtool Required for the system.sw.packages plugin.
rpm Required for the system.sw.packages plugin.
pacman Required for the system.sw.packages plugin.

Although Zabbix can work with databases available in the operating systems, for the best experience, we recommend using databases installed from the official database developer repositories.

Frontend

A largura mínima de tela suportada para o frontend Zabbix é 1200px.

Software Versão Comentários
Apache 1.3.12 ou posterior
PHP 7.2.5 ou posterior O PHP 8.0 não é suportado.
Extensões do PHP
gd 2.0.28 ou posterior A extensão PHP GD deve suportar imagens PNG (--with-png-dir), JPEG (--with-jpeg-dir) e FreeType 2 (--with-freetype-dir).
bcmath php-bcmath (--enable-bcmath)
ctype php-ctype (--enable-ctype)
libXML 2.6.15 ou posterior php-xml, se fornecido como um pacote separado pelo distribuidor.
xmlreader php-xmlreader, se fornecido como um pacote separado pelo distribuidor.
xmlwriter php-xmlwriter, se fornecido como um pacote separado pelo distribuidor.
session php-session, se fornecido como um pacote separado pelo distribuidor.
sockets php-net-socket (--enable-sockets). Necessário para suporte ao script de usuário.
mbstring php-mbstring (--enable-mbstring)
gettext php-gettext (--with-gettext). Necessário para que as traduções funcionem.
ldap php-ldap. Necessário somente se a autenticação por LDAP for utilizada no frontend.
openssl php-openssl. Necessário somente se a autenticação por SAML for utilizada no frontend.
mysqli Necessário se o MySQL for utilizado como banco de dados no backend do Zabbix.
oci8 Necessário se o Oracle for utilizado como banco de dados no backend do Zabbix.
pgsql Necessário se o PostgreSQL for utilizado como banco de dados no backend do Zabbix.

O Zabbix também pode funcionar em versões anteriores do Apache, MySQL, Oracle e PostgreSQL.

Para outras fontes além do padrão DejaVu, a função do PHP imagerotate pode ser necessária. Se estiver ausente, essas fontes podem ser renderizadas incorretamente quando um gráfico é exibido. Esta função só está disponível se o PHP for compilado com GD empacotado, o que não é o caso no Debian e outros distribuições.

Os Cookies e o JavaScript devem estar habilitados.

As últimas versões estáveis ​​do Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari e Opera são suportadas.

A política de mesma origem para os IFrames é implementada, o que significa que o Zabbix não pode ser inserido em frames em domínio diferente.

Ainda assim, as páginas colocadas em um frame do Zabbix terão acesso ao Zabbix frontend (através de JavaScript) se a página que é inserida no frame e o frontend do Zabbix estiverem no mesmo domínio. Uma página como http://secure-zabbix.com/cms/page.html, se inserida nos dashboards em http://secure-zabbix.com/zabbix/, terá o total acesso JS ao Zabbix.

Servidor

Requisitos obrigatórios são necessários sempre. Os requisitos opcionais são necessários para o suporte da função específica.

Requisito Status Descrição
libpcre Obrigatório A biblioteca PCRE é necessária para suporte ao Perl Compatible Regular Expression (PCRE).
A nomenclatura pode diferir dependendo da distribuição GNU/Linux, por exemplo 'libpcre3' ou 'libpcre1'. PCRE v8.x e PCRE2 v10.x (do Zabbix 6.0.0) são suportados.
libevent Necessário para suporte de métrica em massa e monitoramento de IPMI. Versão 1.4 ou superior.
Observe que para o proxy Zabbix este requisito é opcional; é necessário para suporte de monitoramento IPMI.
libpthread Required for mutex and read-write lock support.
zlib Necessário para o suporte a compressão.
OpenIPMI Optional Necessário para suporte IPMI.
libssh2 or libssh Necessário para SSH checks. Versão 1.0 ou superior (libssh2); 0.6.0 ou superior (libssh).
libssh é suportado desde o Zabbix 4.4.6.
fping Necessário para ICMP ping items.
libcurl Necessário para monitoramento web, monitoramento VMware, autenticação SMTP, web.page.* items do agente Zabbix, itens do agente HTTP e Elasticsearch (se utilizado). Recomendado versão 7.28.0 ou superior.
Requisitos da versão do Libcurl:
- Autenticação SMTP: versão 7.20.0 ou superior
- Elasticsearch: versão 7.28.0 ou superior
libxml2 Necessário para monitoramento VMware e pré-processamento XML XPath.
net-snmp Necessário para suporte SNMP. Versão 5.3.0 ou superior.
GnuTLS, OpenSSL ou LibreSSL Necessário ao utilizar encryption.
Agente
Requisito Status Descrição
libpcre Obrigatório A biblioteca PCRE é obrigatória para suporte ao Perl Compatible Regular Expression (PCRE).
A nomenclatura pode diferir dependendo da distribuição GNU/Linux, por exemplo 'libpcre3' ou 'libpcre1'. PCRE v8.xe PCRE2 v10.x (do Zabbix 6.0.0) são suportados.
GnuTLS, OpenSSL ou LibreSSL Opcional Necessário ao utilizar encryption.
Em sistemas Microsoft Windows é necessário OpenSSL 1.1.1 ou posterior.

A partir da versão 5.0.3, o agente Zabbix não funcionará em plataformas AIX inferior as versões 6.1 TL07 / AIX 7.1 TL01.

Agent 2
Requisito Status Descrição
libpcre Obrigatório A biblioteca PCRE é obrigatória para suporte ao Perl Compatible Regular Expression (PCRE).
A nomenclatura pode diferir dependendo da distribuição GNU/Linux, por exemplo 'libpcre3' ou 'libpcre1'. PCRE v8.xe PCRE2 v10.x (do Zabbix 6.0.0) são suportados.
OpenSSL Opcional Necessário ao usar criptografia.
OpenSSL 1.0.1 ou posterior é necessário em plataformas UNIX.
A biblioteca OpenSSL deve ter o suporte PSK ativado. O LibreSSL não é suportado.
Nos sistemas Microsoft Windows, o OpenSSL 1.1.1 ou posterior é necessário.
Java gateway

Se você obteve o Zabbix do repositório de origem ou de um arquivo, então as dependências necessárias já estão incluídas na árvore de origem.

Se você obteve o Zabbix do pacote de sua distribuição, então as dependências necessárias já são fornecidas pelo sistema de empacotamento.

Em ambos os casos acima, o software está pronto para ser usado e não há downloads são necessários.

Se, no entanto, você deseja fornecer suas versões dessas dependências (por exemplo, se você estiver preparando um pacote para alguns distribuição), abaixo está a lista de versões de biblioteca que o gateway Java é conhecido por trabalhar. O Zabbix pode funcionar com outras versões destes bibliotecas também.

A tabela a seguir lista os arquivos JAR que estão atualmente empacotados com Java gateway no código original:

Biblioteca Licença Site Comentários
logback-core-1.2.3.jar EPL 1.0, LGPL 2.1 http://logback.qos.ch/ Testado com 0.9.27, 1.0.13, 1.1.1 e 1.2.3.
logback-classic-1.2.3.jar EPL 1.0, LGPL 2.1 http://logback.qos.ch/ Testado com 0.9.27, 1.0.13, 1.1.1 e 1.2.3.
slf4j-api-1.7.30.jar Licença MIT http://www.slf4j.org/ Testado com 1.6.1, 1.6.6, 1.7.6 e 1.7.30.
android-json-4.3_r3.1.jar Licença Apache 2.0 https://android.googlesource.com/platform/libcore/+/master/json Testado com 2.3.3_r1.1 e 4.3_r3.1. Verifique src/zabbix_java/lib/README para instruções de criação de arquivo JAR.

O Java gateway pode ser construído pode ser construído usando Oracle Java ou código aberto OpenJDK (versão 1.6 ou mais recente). Os pacotes fornecidos pelo Zabbix são compilados usando o OpenJDK. A tabela abaixo fornece informações sobre as versões do OpenJDK usadas para construir pacotes Zabbix por distribuição:

Distribuição Versão do OpenJDK
RHEL/CentOS 8 1.8.0
RHEL/CentOS 7 1.8.0
SLES 15 11.0.4
SLES 12 1.8.0
Debian 10 11.0.8
Ubuntu 20.04 11.0.8
Ubuntu 18.04 11.0.8

Default port numbers

The following list of open ports per component is applicable for default configuration:

Zabbix component Port number Protocol Type of connection
Zabbix agent 10050 TCP on demand
Zabbix agent 2 10050 TCP on demand
Zabbix server 10051 TCP on demand
Zabbix proxy 10051 TCP on demand
Zabbix Java gateway 10052 TCP on demand
Zabbix web service 10053 TCP on demand
Zabbix frontend 80 HTTP on demand
443 HTTPS on demand
Zabbix trapper 10051 TCP on demand

The port numbers should be open in firewall to enable Zabbix communications. Outgoing TCP connections usually do not require explicit firewall settings.

Tamanho do banco de dados

Os dados de configuração do Zabbix requerem uma quantidade fixa de espaço em disco e não crescem muito.

O tamanho do banco de dados Zabbix depende principalmente dessas variáveis, que definem a quantidade de dados históricos armazenados:

  • Números de valores processados por segundo

Este é o número médio de novos valores que o servidor Zabbix recebe a cada segundo. Por exemplo, se tivermos 3.000 itens para monitoramento com uma taxa de atualização de 60 segundos, o número de valores por segundo será calculado como 3.000/60 = 50.

Isso significa que 50 novos valores são adicionados ao banco de dados Zabbix a cada segundo.

  • Configuração do Housekeeper para o histórico

Zabbix mantém valores por um período fixo de tempo, normalmente várias semanas ou meses. Cada novo valor requer uma certa quantidade de espaço em disco para dados e índice.

Então, se quisermos manter 30 dias de histórico e recebermos 50 valores por segundo, o número total de valores será em torno de (30*24*3600)* 50 = 129.600.000, ou cerca de 130M de valores.

Dependendo do mecanismo de banco de dados usado, tipo de valores recebidos (reais, inteiros, strings, arquivos de log, etc), o espaço em disco para manter um único valor pode variar de 40 bytes a centenas de bytes. Normalmente é cerca de 90 bytes por valor para itens numéricos2. No nosso caso, significa que 130M de valores exigirão 130M * 90 bytes = 10.9GB de espaço em disco.

O tamanho dos items do tipo texto/log é impossível de ser previsto com exatidão, mas você esperar em torno de 500 bytes por valor.

  • Configuração do Housekeeper para a estatística

O Zabbix mantém um conjunto de valores máximo/min/médio/contagem de 1 hora para cada item na tabela trends. Os dados são usados ​​para tendências e gráficos de longos períodos. O período de uma hora não pode ser personalizado.

O banco de dados do Zabbix, dependendo do tipo do banco de dados, requer cerca de 90 bytes para cada total. Suponha que gostaríamos de manter os dados de estatística por 5 anos. Os valores para 3.000 itens exigirão 3.000*24*365* 90 = 2,2 GB por ano ou 11 GB por 5 anos.

  • Configuração do Housekeeper para os eventos

Cada evento Zabbix requer aproximadamente 250 bytes de espaço em disco1. É difícil estimar o número de eventos gerados diariamente pelo Zabbix. Na pior das hipóteses, podemos assumir que o Zabbix gera um evento por segundo.

Para cada evento de recuperação, é criado um registro event_recovery. Normalmente a maioria dos eventos serão recuperados para que possamos assumir um registro de event_recovery por evento. Isso significa 80 bytes adicionais por evento.

Opcionalmente, os eventos podem ter tags, cada registro de tag requer aproximadamente 100 bytes de espaço em disco1. O número de tags por evento (#tags) depende da configuração. Portanto, cada um precisará de mais #tags * 100 bytes de espaço em disco.

Isso significa que se quisermos manter 3 anos de eventos, isso exigiria 3*365*24*3600* (250+80+#tags*100) = ~30GB+#tags*100B disco espaço2.

1 Mais quando tiver nomes de eventos não ASCII, tags e valores.

2 As aproximações de tamanho são baseadas no MySQL e podem ser diferentes para outros bancos de dados.

A tabela contém fórmulas que podem ser usadas para calcular o espaço em disco necessário para o sistema Zabbix:

Parâmetro Fórmula para o espaço em disco necessário (em bytes)
Configuração do Zabbix Tamanho fixo. Normalmente 10MB ou menos.
Histórico dias*(itens/intervalo de atualização)*24*3600*bytes
itens : número de itens
dias : número de dias para manter o histórico
intervalo de atualização : intervalo de atualização médio para os itens
bytes : número de bytes necessário para manter um valor, depende do mecanismo de banco de dados, normalmente ~90 bytes.
Estatísticas dias*(itens/3600)*24*3600*bytes
itens : número de itens
dias : número de dias para manter o histórico
bytes : número de bytes necessário para manter um valor estatístico, depende do mecanismo de banco de dados, normalmente ~90 bytes.
Eventos dias*eventos*24*3600*bytes
eventos : número de eventos por segundo. Um (1) evento por segundo no pior cenário.
dias : número de dias para manter o histórico
bytes : número de bytes necessários para manter um valor estatístico, depende do mecanismo de banco de dados, normalmente ~330 + número médio de tags por evento * 100 bytes.

Assim, o espaço total em disco necessário pode ser calculado como:
Configuração + Histórico + Estatísticas + Eventos
O espaço em disco NÃO será usado imediatamente após a instalação do Zabbix. O tamanho do banco de dados aumentará e depois parará de crescer em algum ponto, o que depende das configurações do Housekeeper.

Sincronização de tempo

É muito importante ter a hora exata do sistema no servidor no qual o Zabbix está em execução. O ntpd é o daemon mais popular que sincroniza a hora do host com a hora de outras máquinas. Isso é fortemente recomendado para manter a hora do sistema sincronizada em todos os sistemas nos quais os componentes do Zabbix estão sendo executados.

Network requirements

A following list of open ports per component is applicable for default configuration.

Port Components
Frontend http on 80, https on 443
Server 10051 (for use with active proxy/agents)
Active Proxy 10051 ( not sure about fetching config)
Passive Proxy 10051
Agent2 10050
Trapper
JavaGateway 10053
WebService 10053

In case the configuration is completed, the port numbers should be edited accordingly to prevent firewall from blocking communications with these ports.Outgoing TCP connections usually do not require explicit firewall settings.