3 Instalação a partir de fontes

Você pode obter a versão mais recente do Zabbix compilando-a a partir de fontes.

Um tutorial passo a passo para instalar o Zabbix a partir de fontes é fornecido aqui.

1 Instalando Zabbix daemons

1 Download do arquivo fonte

Vá até a página de download do Zabbix e baixe o arquivo fonte. Uma vez baixado, extraia as fontes, executando:

$ tar -zxvf zabbix-6.0.0.tar.gz

Informe a versão correta do Zabbix no comando. Ela deve corresponder ao nome do arquivo baixado.

2 Criar conta de usuário

Para todos os processos daemon do Zabbix, é necessário um usuário não privilegiado. Se um daemon do Zabbix for iniciado a partir de uma conta de usuário não privilegiada, ele será executado como esse usuário.

No entanto, se um daemon for iniciado a partir de uma conta 'root', ele será alterado para uma conta de usuário 'zabbix', que deve estar presente. Para criar tal conta de usuário (em seu próprio grupo "zabbix"),

em um sistema baseado no RedHat-based, execute:

groupadd --system zabbix
       useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix

em um sistema baseado no Debian, execute:

addgroup --system --quiet zabbix
       adduser --quiet --system --disabled-login --ingroup zabbix --home /var/lib/zabbix --no-create-home zabbix

Os processos do Zabbix não precisam de um diretório home, por isso não recomendamos criá-lo. No entanto, se você estiver usando alguma funcionalidade que o exija (por exemplo, armazenar credenciais do MySQL em $HOME/.my.cnf), você pode criá-lo com os seguintes comandos.

Em um sistema baseado no RedHat-, execute:

mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
       chown zabbix:zabbix /usr/lib/zabbix

Em um sistema baseado no Debian, execute:

mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
       chown zabbix:zabbix /var/lib/zabbix

Uma conta de usuário separada não é necessária para a instalação do frontend do Zabbix.

Se o Zabbix server e o Zabbix agent forem executados na mesma máquina, é recomendado usar um usuário diferente para executar o servidor do que para executar o agente. Caso contrário, se ambos forem executados como o mesmo usuário, o agente poderá acessar o arquivo de configuração do servidor e qualquer usuário com nível Admin no Zabbix poderá, por exemplo, recuperar facilmente a senha do banco de dados.

Executar o Zabbix como root, bin, ou qualquer outra conta com direitos especiais é um risco de segurança.

3 Criar um banco de dados Zabbix

Para os daemons do Zabbix servidor e Zabbix proxy, assim como para Zabbix frontend, um banco de dados é necessário. Contudo, ele não é necessário para executar o agente do Zabbix agent.

SQL scripts são fornecidos para criar o esquema do banco de dados e inserir o conjunto de dados. O banco de dados do Zabbix proxy precisa apenas do esquema, enquanto o banco de dados do servidor Zabbix requer também o conjunto de dados além do esquema.

Após criar um banco de dados do Zabbix, prossiga para as próximas etapas de compilação do Zabbix.

4 Configurar as fontes

C99 com extensões GNU é necessário para compilar o servidor, o proxy ou o agente do Zabbix. Essa versão pode ser especificada explicitamente definindo CFLAGS="-std=gnu99":

export CFLAGS="-std=gnu99"

Se estiver instalando a partir do repositório de Zabbix Zabbix Git repository, é necessário executar primeiro:

./bootstrap.sh

Ao configurar as fontes para um servidor ou proxy Zabbix, você deve especificar o tipo de banco de dados a ser usado. Apenas um tipo de banco de dados pode ser compilado com um processo de servidor ou proxy por vez.

Para ver todas as opções de configuração suportadas, dentro do diretório das fontes extraídos do Zabbix, execute:

./configure --help

Para configurar as fontes para um servidor e agente Zabbix, você pode executar algo como:

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi

Para configurar os fontes para um servidor Zabbix (com PostgreSQL etc.), você pode executar:

./configure --enable-server --with-postgresql --with-net-snmp

Para configurar as fontes para um proxy Zabbix (com SQLite etc.), você pode executar:

./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2

Para configurar as fontes para um agente Zabbix, você pode executar:

./configure --enable-agent

ou, para o Zabbix agent 2:

./configure --enable-agent2

Um ambiente Go configurado com uma versão Go version atualmente suportada é necessário para compilar o Zabbix agent 2. Veja go.dev para instruções de instalação.

Notas sobre as opções de compilação:

  • As utilidades de linha de comando zabbix_get e zabbix_sender são compiladas se a opção --enable-agent for usada.
  • As opções de configuração --with-libcurl e --with-libxml2 são necessárias para o monitoramento de máquinas virtuais; --with-libcurltambém é necessário para autenticação SMTP e itens web.page.* do Zabbix agent items. Observe que o cURL 7.20.0 ou superior é necessário required com a opção de configuração --with-libcurl.
  • O Zabbix sempre compila com a biblioteca PCRE (desde a versão 3.4.0); instalá-la não é opcional. --with-libpcre=[DIR] apenas permite apontar para um diretório de instalação base específico, em vez de procurar em vários lugares comuns pelos arquivos libpcre.
  • Você pode usar a flag --enable-static para vincular bibliotecas estaticamente. Se você planeja distribuir binários compilados entre diferentes servidores, deve usar essa flag para fazer com que esses binários funcionem sem as bibliotecas necessárias. Observe que --enable-static não funciona no Solaris.
  • Usar a opção --enable-static não é recomendado ao compilar o servidor. Para compilar o servidor de forma estática, você deve ter uma versão estática de cada biblioteca externa necessária. Não há uma verificação estrita para isso no script configure.
  • Adicione o caminho opcional para o arquivo de configuração do --with-mysql=/<path_to_the_file>/mysql_config para selecionar a biblioteca cliente MySQL desejada quando houver necessidade de usar uma que não esteja localizada no local padrão. Isso é útil quando há várias versões do MySQL instaladas ou o MariaDB instalado junto com o MySQL no mesmo sistema.
  • Use a flag --with-oracle para especificar a localização da OCI API.

Se o ./configure falhar devido a bibliotecas ausentes ou alguma outra circunstância, consulte o arquivo config.log para obter mais detalhes sobre o erro. Por exemplo, se libssl estiver ausente, a mensagem de erro imediata pode ser enganosa:

checking for main in -lmysqlclient... no
       configure: error: Not found mysqlclient library

Enquanto config.log contém uma descrição mais detalhada:

/usr/bin/ld: cannot find -lssl
       /usr/bin/ld: cannot find -lcrypto

Consulte também:

5 compilar e instalar tudo

Se estiver instalando a partir do repositório Zabbix Git repository, é necessário executar primeiro:

$ make dbschema

make install

Essa etapa deve ser executada por um usuário com permissões suficientes (geralmente 'root', ou usando sudo).

Executar make install irá, por padrão, instalar os binários dos daemons (zabbix_server, zabbix_agentd, zabbix_proxy) em /usr/local/sbin e os binários dos clientes (zabbix_get, zabbix_sender)em /usr/local/bin.

Para especificar um local diferente de /usr/local, use a chave --prefix na etapa anterior de configuração das fontes, por exemplo --prefix=/home/zabbix. Nesse caso, os binários dos daemons serão instalados em <prefix>/sbin, enquanto as utilidades estarão em <prefix>/bin. As páginas de manual serão instaladas em <prefix>/share.

6 Revise e edite os arquivos de configuração
  • edite o arquivo de configuração do Zabbix Agent /usr/local/etc/zabbix_agentd.conf

Você precisa configurar este arquivo para cada máquina com zabbix_agentd instalado.

Você deve especificar o endereço IP do servidor Zabbix no arquivo. Conexões da partir de outros hosts serão negadas.

  • edite o arquivo de configuração do Zabbix Server /usr/local/etc/zabbix_server.conf

Você deve especificar o nome do banco de dados, usuário e senha (se usando alguma).

O restante dos parâmetros o atenderão com seus valores padrão se você tiver um ambiente pequeno (até 10 máquinas monitoradas). Todavia, você deve alterar os parâmetros padrão se você pretende maximizar a performance do Zabbix Server (ou Proxy).

  • se você tive instalado um Zabbix Proxy, edite o arquivo de configuração /usr/local/etc/zabbix_proxy.conf

Você deve especificar o endereço IP e o nome do servidor do Zabbix Proxy (que deve ser conhecido pelo Zabbix Server), bem como o nome do banco de dados, usuário e senha (se usando alguma).

Com o SQLite, o caminho completo para o arquivo do banco de dados deve ser especificado; usuário e senha do banco de dados não são necessários.

7 iniciar os daemons

Execute zabbix_server no lado do servidor.

zabbix_server

Certifique-se de que seu sistema permite a alocação de 36MB (ou um pouco mais) de memória compartilhada, caso contrário, o servidor pode não iniciar e você verá "Cannot allocate shared memory for <tipo de cache>." no arquivo de log do servidor. Isso pode acontecer no FreeBSD, Solaris 8.

Execute o zabbix_agentd em todas as máquinas monitoradas.

zabbix_agentd

Certifique-se de que seu sistema permite a alocação de 2MB de memória compartilhada, caso contrário, o agente pode não iniciar e você verá "Cannot allocate shared memory for collector." no arquivo de log do agente. Isso pode acontecer no Solaris 8.

Se você tiver instalado o proxy do Zabbix, execute o zabbix_proxy.

zabbix_proxy

2 Instalação da interface web do Zabbix

Copiando os arquivos PHP

O frontend do Zabbix é escrito em PHP, então, para executá-lo, é necessário um servidor web com suporte a PHP. A instalação é feita simplesmente copiando os arquivos PHP do diretório "ui" para o diretório de documentos HTML do servidor web.

Locais comuns de diretórios de documentos HTML para servidores Apache incluem:

  • /usr/local/apache2/htdocs (diretório padrão ao instalar o Apache a partir do código-fonte)
  • /srv/www/htdocs (OpenSUSE, SLES)
  • /var/www/html (Debian, Ubuntu, Fedora, RHEL)

É sugerido usar um subdiretório em vez da raiz HTML. Para criar um subdiretório e copiar os arquivos do frontend do Zabbix para ele, execute os seguintes comandos, substituindo o diretório real:

mkdir <htdocs>/zabbix
       cd ui
       cp -a . <htdocs>/zabbix

Se planejar usar qualquer outro idioma além do inglês, consulte instruções para instalação de outros idiomas Installation of additional frontend languages.

Instalando o frontend

Consulte a página Web interface installation para obter informações sobre o assistente de instalação do frontend do Zabbix.

3 Instalando o Java gateway

É necessário instalar o Java gateway apenas se você quiser monitorar aplicações JMX. O Java gateway é leve e não requer um banco de dados.

Para instalar a partir dos códigos de fontes, primeiro faça o download e extraia o arquivo de origem.

Para compilar o Java gateway, execute o script ./configure com opção--enable-java . É recomendável que você especifique a opção --prefix para solicitar um caminho de instalação diferente do padrão /usr/local, pois a instalação do Java gateway criará uma árvore de diretórios, e não apenas um único executável.

./configure --enable-java --prefix=$PREFIX

Para compilar e empacotar o Java gateway em um arquivo JAR, execute make. Observe que, para esta etapa, você precisará dos executáveis javac e jar no seu caminho.

make

Agora você terá um arquivo zabbix-java-gateway-$VERSION.jar no arquivo src/zabbix_java/bin. Se você estiver confortável em executar o Java gateway a partir de src/zabbix_java no diretório de distribuição, então pode seguir para as instruções de configuração e execução do Java gateway. Caso contrário, certifique-se de ter privilégios suficientes e execute make install.

make install

Continue para a configuração setup para mais detalhes sobre como configurar e executar o Java gateway.

4 Instalando o serviço web do Zabbix

Instalar o serviço web do Zabbix só é necessário se você quiser usar os relatórios agendados scheduled reports.

Para instalar a partir das fontes, primeiro faça o download e extraia o arquivo de origem.

Para compilar o serviço web do Zabbix, execute o script ./configure com a opção --enable-webservice.

Um ambiente configurado com Go versão 1.13+ é necessário para compilar o serviço web do Zabbix.

Execute zabbix_web_service na máquina onde o serviço web está instalado:

zabbix_web_service

Continue com a setup para mais detalhes sobre a configuração da geração de Relatórios Agendados.