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á.
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.
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.
O Zabbix é construído em torno de servidores web modernos, principais mecanismos de banco de dados e linguagem de programação PHP.
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.
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.
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. |
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.
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. |
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 |
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.
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:
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.
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.
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.
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.
É 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.
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.