O Zabbix é uma solução de nível empresarial e de código aberto. Ele monitora diversos parâmetros de rede, servidores e a saúde dos serviços, utilizando um mecanismo flexível de notificação. Este mecanismo permite configurar alertas, por e-mail e outros meios como Telegram, para quase qualquer evento, facilitando uma rápida resposta a problemas. Além disso, o Zabbix oferece recursos avançados para relatórios e visualização de dados armazenados, sendo ideal para o planejamento de capacidade.
Requisitos Debian 12 Bookworm
– Instalação do Debian 12 Bookworm limpa passo-a-passo
Melhorando o seu BASH
Para melhorar seu bash e entender o comando a seguir, visite: Como melhorar a produtividade no seu Debian após a instalação
1 # apt -y install wget; wget remontti.com.br/debian; bash debian; su - Copiar
Instalação do NGINX
Procederemos com a instalação do nginx, ocultando a sua versão como uma boa prática.
1 # apt -y install nginx 2 # sed -i 's/# server_tokens/server_tokens/' /etc/nginx/nginx.conf 3 # systemctl restart nginx Copiar
Instalação PHP 8
Vamos instalar extensões do PHP usadas pelo Zabbix e evitar a instalação de pacotes recomendados (–no-install-recommends) para que o Apache não seja instalado.
1 # apt -y install --no-install-recommends \ php php-{fpm,cli,mysql,pear,gd,gmp,bcmath,mbstring,curl,xml,zip,json,pgsql}Copiar
Aumentar o limite de tempo de execução e o tamanho máximo de upload no PHP.
1 # vim /etc/php/8.2/fpm/php.ini Copiar
Localize max_execution_time e altere para 600 e upload_max_filesize para 100MB
1 max_execution_time = 600 2 upload_max_filesize = 100M Copiar
Reinicie o serviço do PHP.
1 # systemctl restart php8.2-fpm Copiar
Instalação do PostgreSQL
Instalação dos pacotes necessários do PostgreSQL.
1 # apt -y install postgresql postgresql-contrib Copiar
Altere para o usuário postgres.
1 # su - postgres Copiar
Acesse o terminal de comandos do banco de dados.
1 $ psql Copiar
Para definir a senha do usuário postgres e instalar o adminpack.
1 postgres=# \password postgres 2 Digite nova senha para postgres: 3 Digite-a novamente: 4 postgres=# CREATE EXTENSION adminpack; 5 CREATE EXTENSION 6 postgres=# \q 7 $ exit Copiar
Realize ajustes no arquivo pg_hba.conf para autenticação com senha.
1 # sed -i '/postgres.*peer/s/peer/md5/' /etc/postgresql/15/main/pg_hba.conf 2 # sed -i '0,/local\s*all\s*all\s*peer/s/peer/md5/' /etc/postgresql/15/main/pg_hba.conf Copiar
É recomendado ajustar as configurações padrões do PostgreSQL conforme a memória disponível.
1 vim /etc/postgresql/15/main/postgresql.conf Copiar
1 #----------------------------------------- 2 # 4GB de Memoria RAM 3 #----------------------------------------- 4 max_connections = 500 5 shared_buffers = 1GB 6 work_mem = 16MB 7 maintenance_work_mem = 128MB 8 max_wal_size = 1GB 9 min_wal_size = 256MB 10 effective_cache_size = 2GB 11 12 #----------------------------------------- 13 # 8GB de Memoria RAM 14 #----------------------------------------- 15 max_connections = 1000 16 shared_buffers = 2GB 17 work_mem = 32MB 18 maintenance_work_mem = 512MB 19 max_wal_size = 2GB 20 min_wal_size = 512MB 21 effective_cache_size = 4GB 22 23 #----------------------------------------- 24 # 16GB de Memoria RAM 25 #----------------------------------------- 26 max_connections = 2000 27 shared_buffers = 4GB 28 work_mem = 64MB 29 maintenance_work_mem = 1GB 30 max_wal_size = 4GB 31 min_wal_size = 1GB 32 effective_cache_size = 8GB Copiar
Reinicie o serviço do PostgreSQL.
1 # systemctl restart postgresql Copiar
Instalação do Zabbix 7 LTS
Inclua o repositório oficial do Zabbix versão 7 LTS.
1 # cd /tmp/ 2 # wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian12_all.deb 3 # dpkg -i zabbix-release_7.0-1+debian12_all.deb 4 # apt update Copiar
1 # apt -y install zabbix-server-pgsql zabbix-frontend-php \ zabbix-nginx-conf zabbix-sql-scripts zabbix-agent tracerouteCopiar
Crie uma base de dados chamada zabbix e um usuário também chamado zabbix no PostgreSQL. Lembre-se de alterar a senha. Use o gerador de senha: https://senhasegura.remontti.com.br/
1 # su - postgres 2 $ createuser --pwprompt zabbix 3 Digite a senha para a nova role: <SENHA ZABBIX> 4 Digite-a novamente: <SENHA ZABBIX> 5 Senha: <SENHA POSTGRES CASO TENHA DEFINIDO NA INSTALAÇÃO DO MESMO> 6 7 $ createdb -O zabbix zabbix 8 Senha: <SENHA POSTGRES> Copiar
Importe o esquema inicial e os dados. Você será solicitado a inserir a senha que foi criada anteriormente.
1 $ zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | psql -U zabbix -d zabbix &>/dev/null 2 Senha para usuário zabbix: : <SENHA ZABBIX> 3 $ exit Copiar
Configure o arquivo zabbix_server.conf para conectar ao banco de dados PostgreSQL.
1 # vim /etc/zabbix/zabbix_server.conf Copiar
Descomente e defina a senha na linha # DBPassword=.
1 #... 2 DBPassword=<SENHA ZABBIX> 3 #... Copiar
Ajuste o arquivo /etc/zabbix/php-fpm.conf, descomente e defina o fuso horário correto. timezone Sua região.
1 # vim /etc/zabbix/php-fpm.conf Copiar
Adicione timezone, e ajuste upload_max_filesize:
1 php_value[date.timezone] = America/Sao_Paulo 2 php_value[upload_max_filesize] = 100M Copiar
Configure as definições do nginx.
1 # vim /etc/nginx/conf.d/zabbix.conf Copiar
Deixei algumas linhas comentadas como exemplo, faça de acordo com sua necessidade.
1 server { 2 listen 80; 3 listen [::]:80; 4 server_name zabbix.remontti.com.br localhost; 5 #server_name OU_SEU_IP; 6 7 # Metodo simples para quem quer rodar em uma determinada porta 8 #listen 8181; 9 #listen [::]:8181; 10 #server_name _; 11 12 root /usr/share/zabbix; 13 index index.php; 14 15 # Desmomente para deixar restringido apenas para determinados prefixos 16 #allow 192.168.87.0/24; 17 #allow 127.0.0.1; 18 #allow 2001:0db8::/32; 19 #allow ::1; 20 #deny all; 21 #error_page 403 http://www.remontti.com.br; 22 23 client_max_body_size 100M; 24 25 location = /favicon.ico { 26 log_not_found off; 27 } 28 29 location / { 30 try_files $uri $uri/ =404; 31 } 32 33 location /assets { 34 access_log off; 35 expires 10d; 36 } 37 38 location ~ /\.ht { 39 deny all; 40 } 41 42 location ~ /(api\/|conf[^\.]|include|locale) { 43 deny all; 44 return 404; 45 } 46 47 location ~ [^/]\.php(/|$) { 48 fastcgi_pass unix:/var/run/php/zabbix.sock; 49 fastcgi_split_path_info ^(.+\.php)(/.+)$; 50 fastcgi_index index.php; 51 52 fastcgi_param DOCUMENT_ROOT /usr/share/zabbix; 53 fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name; 54 fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name; 55 56 include fastcgi_params; 57 fastcgi_param QUERY_STRING $query_string; 58 fastcgi_param REQUEST_METHOD $request_method; 59 fastcgi_param CONTENT_TYPE $content_type; 60 fastcgi_param CONTENT_LENGTH $content_length; 61 62 fastcgi_intercept_errors on; 63 fastcgi_ignore_client_abort off; 64 fastcgi_connect_timeout 60; 65 fastcgi_send_timeout 180; 66 fastcgi_read_timeout 180; 67 fastcgi_buffer_size 128k; 68 fastcgi_buffers 4 256k; 69 fastcgi_busy_buffers_size 256k; 70 fastcgi_temp_file_write_size 256k; 71 } 72 } Copiar
Habilite o Zabbix para iniciar com o sistema.
1 # systemctl enable zabbix-server Copiar
Vamos reiniciar os serviços
1 # systemctl restart zabbix-server zabbix-agent nginx Copiar
Acesse http://seu_ip:porta ou http://zabbix.seudominio.com.br no navegador.
Siga as instruções de configuração na interface web do Zabbix.
Selecione o idioma, e Próximo passo
Se tudo estiver ok: Próximo passo
Selecione PostgreSQL e informe a senha do usuário zabbix criada anteriormente, clique em Próximo passo.
Defina um nome, e selecione o Tema padrão e clique em Próximo passo
Se tudo estiver ok, Próximo passo
Fim
Entre com Usuário Admin e senha zabbix

Simples né? Gostou e quer me ajudar?
Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!