- Publicado em
Instalação Zabbix 7 no Ubuntu - Parte I
- Autores
- Nome
- Felipe Padilha
Índice
Introdução
O Zabbix é uma plataforma open-source de monitoramento que permite coletar, armazenar e anaisar métricas de redes, servidores, contêineres e aplicações. Suportando métodos de coleta como SNMP, IPMI, agentes dedicados e consultas HTTP. Ele também oferece monitoramento ativo e passivo, que permite realizar coletas através de redes NAT, além de alertas configuráveis e gráficos detalhados.
Sua arquitetura é composta por um servidor central que processa os dados recebidos de agentes e outras fontes, armazenadno as informações em um banco de dados. A interface web possibilita o gerenciamento de hosts, a criação de templates de monitoramento e a configuração de notificações automatizadas.
Uma instalação típica do Zabbix envolve três componentes principais: o próprio Servidor Zabbix, um banco de dados e um servidor web para a interface gráfica. Tais componentes podem ser implantados em um único servidor ou distribuídos em várias máquinas, além de existir suporte para alta disponibilidade.
O Zabbix pode ser instalado diretamente em hosts Linux ou via contêineres, permitindo maior flexibilidade no deploy. Nesta primeira parte, abordaremos a instalação do Zabbix em um ambiente Ubuntu, cobrindo requisitos, configuração inicial e primeiros passos na interface. Será apresentado a abordagem de instalação centralizada (todos os serviços em uma única máquina), e nas partes seguintes, a abordagem distribuída, baseada em contêineres e altamente disponível.
Link para o tutorial em vídeo
Instalação Centralizada
Nesta abordagem, todos os componente do servidor Zabbix - o próprio Servidor Zabbix, o banco de dados e a interace web - serão instalados na mesma máquina, facilitando a gestão e a manutenção do ambiente. Ao longo deste artigo, serão apresentados os comadnos para instalação e configuração.
A configuração da máquina utilizada neste artigo é:
felipe-padilha@ubuntu-zabbix:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 24.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.2 LTS (Noble Numbat)"
VERSION_CODENAME=noble
Em uma instalação de produção, recomendo realizar o particionamento de disco, deixando os diretórios /, /boot e do banco de dados (/var/lib/<mysql,postgres,etc>) em partições separadas. Inclusive, se utilizar múltiplos tier de disco no seu ambiente, utilize o com maior número de IOPS para a partição do banco de dados.
Atualização do sistema e instalação do banco de dados
A primeira coisa que devemos fazer é atualizar o sistema operacional:
sudo apt update -y && sudo apt upgrade -y
Entãos instalamos o banco de dados, para este artigo irei utilizar o MariaDB:
sudo apt install mariadb-server mariadb-client -y
Com o banco instalado, vamos usar o utilitário mysql_secure_installation para fazer a configuração inicial de segurança do nosso banco de dados. Este script automatiza o processo de configuração do usuário root do banco entre outos ajustes de segurança.
sudo mysql_secure_installation
O script irá fazer algumas perguntas durante sua execução. Basta seguir as respostas abaixo:
Enter current password for root (enter for none)
: pressioneEnter
, ainda vamos configurar a senha do root.Switch to unix_socket authentication [Y/n]
: pressionen
, queremos permitir conexões ao banco de dados via rede.Change the root password? [Y/n]
: pressioney
.New password
: defina a nova senha do usuárioroot
.Re-enter new password
: repita a senha definida.Remove anonymous users? [Y/n]
: pressioney
.Disallow root login remotely? [Y/n]
: pressioney
.Remove test database and access to it? [Y/n]
: pressioney
.Reload privilege tables now? [Y/n]
: pressioney
.
Feito isso, temos a instalação do nosso MariaDB protegida. Agora, vamos acessá-lo para criarmos o banco de dados do Zabbix e o usuário de acesso, execute os comandos abaixo para configurar o banco de dados:
# Definindo variáveis
ZABBIX_DB="zabbix"
ZABBIX_DB_USER="zabbix"
ZABBIX_DB_PASSWORD="senha_segura"
sudo mysql -u root <<EOF
CREATE DATABASE IF NOT EXISTS \`${ZABBIX_DB}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER IF NOT EXISTS '${ZABBIX_DB_USER}'@'localhost' IDENTIFIED BY '${ZABBIX_DB_PASSWORD}';
GRANT ALL PRIVILEGES ON \`${ZABBIX_DB}\`.* TO '${ZABBIX_DB_USER}'@'localhost';
FLUSH PRIVILEGES;
EOF
Explicação dos comandos:
- ZABBIX_DB="zabbix": cria uma variável chamada
ZABBIX_DB
e atribui o valorzabbix
. - ZABBIX_DB_USER="zabbix": cria uma variável chamada
ZABBIX_DB_USER
e atribui o valorzabbix
. - ZABBIX_DB_PASSWORD="senha_segura": cria uma variável chamada
ZABBIX_DB_PASSWORD
e atribui o valorsenha_segura
. - sudo mysql -u root << EOF;: conecta no MariaDB/MySQL como usuário
root
solicitando senha, e inicia um bloco de comandos viaheredoc
. - CREATE DATABASE IF NOT EXISTS ${ZABBIX_DB} CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;: cria o banco de dados, se não existir, com charset
utf8mb4
e collationutf8mb4_bin
. - CREATE USER IF NOT EXISTS ${ZABBIX_DB_USER}@'localhost' IDENTIFIED BY '${ZABBIX_DB_PASSWORD}';: cria o usuário do banco de dados (caso ainda não exista) e define sua senha de acesso.
- GRANT ALL PRIVILEGES ON ${ZABBIX_DB}.* TO ${ZABBIX_DB_USER}@'localhost';: concede todos os privilégios sobre o banco de dados criado ao usuário recém-criado.
- FLUSH PRIVILEGES;: força o MySQL a recarregar as permissões imediatamente.
- EOF: finaliza o bloco
heredoc
, enviando todos os comandos acima para execução no banco.
Lembre-se de alterar os valores de ZABBIX_DB, ZABBIX_DB_USER e ZABBIX_DB_PASSWORD para os valores reais de sua instalação.
Instalação e configuração da aplicação Zabbix
A primeira coisa que precisamos fazer é instalar o repositório Zabbix para termos acesso a versão 7.
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest+ubuntu24.04_all.deb
sudo rm zabbix-release_latest+ubuntu24.04_all.deb
sudo apt update -y
Com o repositório instalado, agora temos acesso aos pacotes do Zabbix para instalarmos:
sudo apt install -y \
zabbix-server-mysql \
zabbix-frontend-php \
zabbix-nginx-conf \
zabbix-agent \
zabbix-sql-scripts
Com tudo isntalado, precisamos alterar algumas configurações nos arquivos .conf do Zabbix e do Nginx, além de popular o banco de dados. Para não ser ncessário utilizar um editor de texto com oo Nano ou Vim, deixo abaixo os comadnos utilizando o sed para alterar as linhas de texto via expressão regular. Não esqueça de alterar as variáveis para os valores do seu ambiente.
# Definindo variáveis
SERVER_NAME="seu.dominio.com"
SERVER_PORT="80"
# Atualizar a senha do banco de dados no arquivo de configuração do Zabbix
sudo sed -i "s/^#\s*\(DBPassword=\).*/\1${ZABBIX_DB_PASSWORD}/" /etc/zabbix/zabbix_server.conf
# Atualizar a porta do servidor no Nginx
sudo sed -i -E "s@#(\s*listen\s+)8080;@\1${SERVER_PORT};@" /etc/zabbix/nginx.conf
# Atualizar o nome do servidor no Nginx
sudo sed -i -E "s@#(\s*server_name\s+)example.com;@\1${SERVER_NAME};@" /etc/zabbix/nginx.conf
# Definir o timezone no PHP-FPM
echo "php_value[date.timezone] = America/Sao_Paulo" | sudo tee -a /etc/zabbix/php-fpm.conf
Lembrando que seu.dominio.com pode simplesmente ser o endereço IP da máquina.
Para popularmos o banco de dados com as tabelas esperadas pela aplicação Zabbix, usamos o comando abaixo:
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -u"${ZABBIX_DB_USER}" -p"${ZABBIX_DB_PASSWORD}" "${ZABBIX_DB}"
Por fim, reiniciamos o serviço do Zabbix e do Nginx para ler as configurações novas e habilitamos a inicialização dos serviços junto com a máquina.
sudo systemctl restart zabbix-server zabbix-agent nginx
sudo systemctl enable zabbix-server zabbix-agent nginx
Últimas configurações e primeiro acesso

Apenas clique em Próximo passo para continuarmos.







Script de Instalação
Os comandos abaixos são todos os comandos executados para realizar a instalação do Zabbix. Como está usando variáveis, é possível apenas alterar seus valores, copiar e colar para ter uma instalação funcional, ou você copiar para um arquivo, dar permissão de execução e executar como um script.
#!/bin/bash
# Script de Instalação do Zabbix 7 no Ubuntu 24.04 - Instalação Centralizada
# Definindo variáveis
ZABBIX_DB="zabbix"
ZABBIX_DB_USER="zabbix"
ZABBIX_DB_PASSWORD="senha_segura"
SERVER_NAME="seu.dominio.com"
SERVER_PORT="80"
# Atualizar o sistema
sudo apt update -y && sudo apt upgrade -y
# Instalar o MariaDB
sudo apt install -y mariadb-server mariadb-client
# Configurar o MariaDB
sudo mysql_secure_installation <<EOF
n
y
$ZABBIX_DB_PASSWORD
$ZABBIX_DB_PASSWORD
y
y
y
y
EOF
# Criar banco de dados e usuário para o Zabbix
sudo mysql -u root <<EOF
CREATE DATABASE IF NOT EXISTS \`${ZABBIX_DB}\` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER IF NOT EXISTS '${ZABBIX_DB_USER}'@'localhost' IDENTIFIED BY '${ZABBIX_DB_PASSWORD}';
GRANT ALL PRIVILEGES ON \`${ZABBIX_DB}\`.* TO '${ZABBIX_DB_USER}'@'localhost';
FLUSH PRIVILEGES;
EOF
# Instalar o repositório do Zabbix 7
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest+ubuntu24.04_all.deb
sudo dpkg -i zabbix-release_latest+ubuntu24.04_all.deb
sudo rm zabbix-release_latest+ubuntu24.04_all.deb
sudo apt update -y
# Instalar pacotes do Zabbix
sudo apt install -y \
zabbix-server-mysql \
zabbix-frontend-php \
zabbix-nginx-conf \
zabbix-agent \
zabbix-sql-scripts
# Configurar Zabbix server e Nginx
sudo sed -i "s/^#\s*\(DBPassword=\).*/\1${ZABBIX_DB_PASSWORD}/" /etc/zabbix/zabbix_server.conf
sudo sed -i -E "s@#(\s*listen\s+)8080;@\1${SERVER_PORT};@" /etc/zabbix/nginx.conf
sudo sed -i -E "s@#(\s*server_name\s+)example.com;@\1${SERVER_NAME};@" /etc/zabbix/nginx.conf
echo "php_value[date.timezone] = America/Sao_Paulo" | sudo tee -a /etc/zabbix/php-fpm.conf
# Popular banco de dados com as tabelas do Zabbix
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -u"${ZABBIX_DB_USER}" -p"${ZABBIX_DB_PASSWORD}" "${ZABBIX_DB}"
# Reiniciar e habilitar serviços
sudo systemctl restart zabbix-server zabbix-agent nginx
sudo systemctl enable zabbix-server zabbix-agent nginx
echo "Instalação concluída! Acesse http://${SERVER_NAME}:${SERVER_PORT} para continuar a configuração via interface web."
Posts Relacionados
Como usar o Zabbix para monitorar a qualidade do link de Internet
Este artigo fornece orientações para criação de scripts que podem ser integrados ao Zabbix para monitoramento de link de internet.
Monitoramento de PPPoE, DHCP e OSPF por Interface no Mikrotik usando scripts
Este artigo fornece orientações para criação de scripts que podem ser integrados ao Zabbix para monitoramento de link de internet.
Configurando SNMP Traps no Zabbix 7
O artigo demonstra a configuração necessária para configurar o recebimento de SNMPTRAPS no servidor Zabbix.
Os comentários são carregados sob demanda para melhorar a performance