2 Pré-requisitos

Hardware

Memória

Para instalar o Zabbix existem requisitos de memória (128MB) e de armazenamento(256MB disponíveis em disco). Entretanto, a quantidade de memória e de disco, obviamente, dependerá da quantidade de hosts e de parâmetros monitorados. Se você está planejando manter um longo histórico dos parâmetros monitorados você deverá pensar em, pelo menos, alguns gigas para ter espaço disponível para uso do banco de dados.

Cada processo deamon do Zabbix Server irá requerer diversas conexões com o servidor de banco de dados. A quantidade de memória alocada para cada conexão dependerá das configurações da engine do SGBD.

Regra de ouro dos bancos de dados: quanto mais memória RAM você possui, mais rápido é o banco de dados (e mais rápido o Zabbix por consequência!)

CPU

O Zabbix Server e, especialmente, seu banco de dados pode exigir quantidade significativa de recursos da CPU dependendo da quantidade de parâmetros monitorados e da engine do SGDB.

Outro hardware

Para a notificação por SMS nativa da solução será requerido também uma porta de comunicação serial e um modem GSM a ela conectado. Conexões USB-to-serial também deverão funcionar.

Exemplos de configuração de hardware

A tabela a seguir provê diversos exemplos de configuração de hardware:

Nome Plataforma CPU/Memória SGDB Hosts Monitorados
Small CentOS Virtual Appliance MySQL InnoDB 100
Medium CentOS 2 CPU cores/2GB MySQL InnoDB 500
Large RedHat Enterprise Linux 4 CPU cores/8GB RAID10 MySQL InnoDB ou PostgreSQL >1000
Very large RedHat Enterprise Linux 8 CPU cores/16GB RAID10 rápido MySQL InnoDB ou PostgreSQL >10000

A apropriada dependerá da quantidade de itens ativos e seu intervalo de coleta, o que varia muito de um ambiente para outro. É altamente recomendável separar o Banco de dados em um servidor em separado em instalações maiores.

Plataformas Suportadas

Devido à requisitos de segurança e natureza de missão crítica dos servidores de monitoramento o UNIX é o único sistema operacional que pode entregar de forma consistente os requisitos de performance, tolerância a falha e resiliência. O Zabbix opera entre as ferramentas líderes de mercado.

O Zabbix é testado nas seguintes plataformas:

  • Linux
  • IBM AIX
  • FreeBSD
  • NetBSD
  • OpenBSD
  • HP-UX
  • Mac OS X
  • Solaris
  • Windows: 2000, Server 2003, XP, Vista, Server 2008, 7, 8, Server 2012 (Apenas Zabbix Agent)

O Zabbix poderá rodar em várias outras variantes do UNIX.

Software

O Zabbix é construído em torno do servidor de páginas Apache, SGDBs líderes de mercado e a linguagem de scripts PHP.

Banco de dados de monitoração
Software Versão Comentários
MySQL 5.0.3 ou superior Se for o SGDB escolhido como backend database. A engine InnoDB é requerida.
Oracle 10g ou superior Se for o SGDB escolhido como backend database.
PostgreSQL 8.1 ou superior Se for o SGDB escolhido como backend database
Entretanto é sugerido o uso do PostgreSQL 8.3 ou posterior, com o suporte ao VACUUM otimizado.
SQLite 3.3.5 ou superior Se for o SGDB escolhido como backend database.
IBM DB2 9.7 ou superior Se for o SGDB escolhido como backend database.

O uso do IBM DB2 é experimental!

Enquatno o uso do SQLite3 com o Zabbix Proxy é até recomendado, o uso com o Zabbix Server não é recomendável. Desde o Zabbix 2.4.0, os requisitos de acessos simultâneos do Zabbix Server e da interface web podem levar à corromper o banco de dados!

Interface Web

Para o funcionamento da interface web do Zabbix será necessário:

Software Versão Comentários
Apache 1.3.12 ou superior
PHP 5.4.0 ou superior A versão 7 do PHP ainda não é suportada.
Extensões do PHP:
gd 2.0 ou superior A extensão PHP GD precisa 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 superior php-xml ou php5-dom, se forem fornecidas de forma separada pela distribuição escolhida.
xmlreader php-xmlreader, se for fornecido de forma separada pela distribuição escolhida.
xmlwriter php-xmlwriter, se for fornecidp de forma separada pela distribuição escolhida.
session php-session, se for fornecido de forma separada pela distribuição escolhida.
sockets php-net-socket (--enable-sockets). Necessário para o suporte a scripts de usuário.
mbstring php-mbstring (--enable-mbstring)
gettext php-gettext (--with-gettext). Necessário para o recurso de tradução.
ldap php-ldap. Necessário somente se a autenticação na interface web for através do LDAP.
ibm_db2 Necessário se a tecnologia de banco de dados escolhida para o repositório da monitoração for o IBM DB2.
mysqli Necessário se a tecnologia de banco de dados escolhida para o repositório da monitoração for o MySQL.
oci8 Necessário se a tecnologia de banco de dados escolhida para o repositório da monitoração for o Oracle.
pgsql Necessário se a tecnologia de banco de dados escolhida para o repositório da monitoração for o PostgreSQL.
sqlite3 Necessário se a tecnologia de banco de dados escolhida para o repositório da monitoração for o SQLite.

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

Para outras fontes como a default DejaVu, a função PHP imagerotate poderá ser necessária. Se estiver ausente, estas fontes poderão não ser corretamente renderizadas no cabeçalho da visão geral da monitoração (Monitoração → Overview) e em outros locais. Esta função só está disponível se o PHP for compilado com o suporte ao GD, o que não é o caso para o Debian e outras distribuições.

O suporte a Cookies e Java Script deverá estar habilitado.
Últimas versões do Google Chrome, Mozilla Firefox, Microsoft Internet Explorer e Opera são suportadas. Outros navegadores (Apple Safari, Konqueror) também poderão funcionar.

Zabbix Server

Os requisitos obrigatórios são sempre necessários, os opcionais são necessários quando utilizar alguma função específica.

Requirement Description
OpenIPMI Necessário para o suporte a IPMI.
libssh2 Necessário para o suporte ao SSH, na versão 1.0 ou superior.
fping Necessário para o suporte a itens de ping ICMP.
libcurl Necessário para o suporte a verificação web, monitoração de máquinas virtuais VMWare e SMTP autenticado. Para o SMTP autenticado é necessário no mínimo a versão 7.20.0.
libiksemel Necessário para o suporte a envio de mensagens instantâneas / Jabber.
net-snmp Necessário para o suporte ao SNMP.
Zabbix Java Gateway

Se você instalou através do código fonte, as dependências necessárias foram atendidas durante a instalação (pois elas são verificadas durante o processo de compilação).

Se você instalou o Zabbix através dos pacotes distribuídos, as dependências foram resolvidas durante o processo de instalação.

Em ambos os casos o software está pronto para uso e não requer downloads adicionais.

Se, por qualquer motivo, você deseja fornecer as suas próprias versões destas dependências (por exemplo, se você está preparando um novo pacote para alguma distribuição do Linux), a lista a seguir lista as bibliotecas e versões que já testamos o funcionamento. É possível que o Zabbix funcione também com outras versões.

A tabela a seguir lista os arquivos JAR que são empacotados atualmente em conjunto com o Zabbix Java Gateway:

Biblioteca Licença Site Comentários
logback-core-0.9.27.jar EPL 1.0, LGPL 2.1 http://logback.qos.ch/ Testado com 0.9.27, 1.0.13, e 1.1.1.
logback-classic-0.9.27.jar EPL 1.0, LGPL 2.1 http://logback.qos.ch/ Testado com 0.9.27, 1.0.13, e 1.1.1.
slf4j-api-1.6.1.jar MIT License http://www.slf4j.org/ Testado com 1.6.1, 1.6.6, e 1.7.6.
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. Veja src/zabbix_java/lib/README por instruções sobre como criar um arquivo JAR.

O Zabbix Java Gateway é compilável e executável com o Java 1.6 ou superior. É recomendável que se forneça uma versão pré-compilada do mesmo de modo a permitir que outras versões do Java também possam ser utilizadas.

Tamanho do Banco de Dados

Os dados de configuração do Zabbix requerem um tamanho praticamente fixo de espaço em disco pois não crescem de forma significativa.

O tamanho do banco de dados do Zabbix depende, principalmente, do período de retenção dos dados coletados (histórico e médias). O primeiro ponto a se observar é:

  • A quantidade de novos valores processados por segundo (Values Per Second / VPS)

Esta é a quantidade média de novos valores (chaves de itens coletadas) que o Zabbix Sever recebe a cada segundo. Por exemplo, se nós temos 3000 itens para monitorar com um intervalo de coleta de 60 segundos, a quantidade de itens por segundo pode ser calculada conforme a seguir:

3000/60 = **50**.

Isso significa que 50 novos valores (50 novos registros) serão adicionados no banco de dados a cada segundo.

  • Configurações do histórico no Housekeeper

O Zabbix guarda os valores por um período fixo de tempo, normalmente várias semanas ou meses. Cada novo valor precisa de uma quantidade determinada de espaço em disco para guardar o dado (seu valor) e os índices associados ao registro.

Logo, se nós queremos manter por 30 dias o histórico e recebemos 50 novos valores por segundo, podemos obter o total de valores através de um simples cálculo (30*24*3600)* 50 = 129.600.000, ou cerca de 130M de valores.

Dependendo do SGBD utilizado, do tipo do valor (ponto flutuante, inteiro, caractere, log, etc), a quantidade necessária de disco para armazenar um simples valor pode variar de 40 bytes para centenas de bytes. Normalmente é algo em torno de 90 bytes por valor. Em nosso caso, isso quer dizer que os quase 130.000 valores irão precisar de cerca de 10.9GB de espaço em disco (130M * 90 bytes = 10.9GB).

<​note>Observe que é impossível prever o tamanho ocupado pelos campos do tipo texto ou log, mas estimamos algo em torno de 500 bytes por valor (média com grande margem de erro).</​note>​

  • Configurações das médias no Housekeeper

A cada hora o Zabbix guarda um kit de valores (max/min/avg/count) para cada item coletado que possua configuração de médias. Estes dados são salvos nas tabelas trends. Estes dados são utilizados para agilizar a construção de gráficos em longos períodos. O intervalo das médias não pode ser customizado.

Dependendo do tipo do SGDB cada registro de média consumirá cerca de 90 bytes.

Suponha que nós precisemos guardar os dados de médias por 5 anos. Os valores dos 3000 itens agora irão requerer 3000*24*365* 90 = 2.2GB por ano, ou 11GB para 5 anos.

  • Configurações de eventos no Housekeeper

Cada evento no Zabbix requer aproximadamente 170 bytes de espaço em disco. É muito difícil estimar a quantidade de eventos gerada pelo Zabbix Sever por dia. No pior cenário nós recomendamos assumir que o Zabbix gere um evento por segundo.

Isso significa que se nós precisarmos manter 3 anos de eventos, isso irá requerer 3*365*24*3600* 170 = 15GB .

A tabela a seguir contêm as fórmulas utilizadas para calcular o espaço em disco aproximado que será requerido pela solução Zabbix:

Parâmetro Fórumla de cálculo de disco (em bytes)
Configuração do Zabbix Tamanho fixo. Estimado em 10MB ou menos.
Histórico dias*(items/intervalo de coleta)*24*3600*bytes
items : quantidade de items
dias : quantidade em dias da retenção do histórico
intervalo de atualização: tempo médio entre coletas do item
bytes : quantidade de bytes necessária para guardar cada valor. Varia entre os SGDBs, mas normalmente é de aproximadamente 90 bytes.

AQUI

Médias dias*(items/3600)*24*3600*bytes
items : quantidade de items
dias : quantidade em dias da retenção das médias
bytes : quantidade de bytes necessária para guardar cada valor. Varia entre os SGDBs, mas normalmente é de 128 bytes.
Eventos dias*eventos*24*3600*bytes
eventos : quantidade de eventos por segundo. Um (1) evento por segundo no pior caso.
dias : quantidade em dias da retenção de eventos
bytes : quantidade de bytes necessária para guardar cada valor. Varia entre os SGDBs, mas normalmente é de aproximadamente 170 bytes.

<​note>Os valores médios (90 bytes para itens numéricos e 170 para eventos) foram obtidos através de estatísticas em cenários reais de ambientes monitorados pelo Zabbix utilizando como SGDB o MySQL.</​note>​

Então, o total de espaço em disco pode ser obtido através da fórmula a seguir:

Configuração + Histórico + Médias + Eventos

É claro que estes cálculos não pretendem obter o espaço em disco utilizado logo após o início da monitoração e sim o máximo de disco que o Banco irá precisar consumir para guardar os dados do Zabbix.

Default port numbers

The following table lists default port numbers that Zabbix components listen on:

Zabbix component Port number Protocol Type of connection
Zabbix agent 10050 TCP on demand
Zabbix server 10051 TCP on demand
Zabbix proxy 10051 TCP on demand
Zabbix Java gateway 10052 TCP on demand

Sincronização de hora

É muito importante que você tenha um sistema preciso de sincronismo de hora entre todos os servidores monitorados, inclusive o Zabbix. O ntpd é o deamon mais popular para sincronizar o horário de todo o ambiente.

Se os horários não estiverem sincronizados o Zabbix irá converter as marcas de tempo de os dados recolhidos no servidor Zabbix utilizando timestamps do cliente / servidor depois de estabelecer a conexão de dados e ajustar a data e hora do valor do item recebido pela diferença de tempo entre o cliente e o servidor. Para manter este processo mais simples e evitar possíveis complicações a latência da conexão é ignorada. Os dados de latência da conexão serão adicionados às marcas de tempo de dados adquiridos a partir de conexões ativas (agente ativo, Proxy ativa, o remetente) e subtraído da data e hora dos dados obtidos através de conexões passivas (proxy passivo). Todas as demais verificações são feitas usando como referência o horário do servidor e, neste caso, não ocorrem ajustes.

Time synchronization

It is very important to have precise system time on server with Zabbix running. ntpd is the most popular daemon that synchronizes the host's time with the time of other machines. It's strongly recommended to maintain synchronized system time on all systems Zabbix components are running on.