Guia completo para instalar e configurar Zabbix 7 LTS no Debian 12 Bookworm com NGINX e PostgreSQL
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
# apt -y install wget; wget remontti.com.br/debian; bash debian; su -
Instalação do NGINX
Procederemos com a instalação do nginx, ocultando a sua versão como uma boa prática.
# apt -y install nginx # sed -i 's/# server_tokens/server_tokens/' /etc/nginx/nginx.conf # systemctl restart nginx
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.
# apt -y install --no-install-recommends \ php php-{fpm,cli,mysql,pear,gd,gmp,bcmath,mbstring,curl,xml,zip,json,pgsql}
Aumentar o limite de tempo de execução e o tamanho máximo de upload no PHP.
# vim /etc/php/8.2/fpm/php.ini
Localize max_execution_time e altere para 600 e upload_max_filesize para 100MB
max_execution_time = 600 upload_max_filesize = 100M
Reinicie o serviço do PHP.
# systemctl restart php8.2-fpm
Instalação do PostgreSQL
Instalação dos pacotes necessários do PostgreSQL.
# apt -y install postgresql postgresql-contrib
Altere para o usuário postgres.
# su - postgres
Acesse o terminal de comandos do banco de dados.
$ psql
Para definir a senha do usuário postgres e instalar o adminpack.
postgres=# \password postgres Digite nova senha para postgres: Digite-a novamente: postgres=# CREATE EXTENSION adminpack; CREATE EXTENSION postgres=# \q $ exit
Realize ajustes no arquivo pg_hba.conf para autenticação com senha.
# sed -i '/postgres.*peer/s/peer/md5/' /etc/postgresql/15/main/pg_hba.conf # sed -i '0,/local\s*all\s*all\s*peer/s/peer/md5/' /etc/postgresql/15/main/pg_hba.conf
É recomendado ajustar as configurações padrões do PostgreSQL conforme a memória disponível.
vim /etc/postgresql/15/main/postgresql.conf
#----------------------------------------- # 4GB de Memoria RAM #----------------------------------------- max_connections = 500 shared_buffers = 1GB work_mem = 16MB maintenance_work_mem = 128MB max_wal_size = 1GB min_wal_size = 256MB effective_cache_size = 2GB #----------------------------------------- # 8GB de Memoria RAM #----------------------------------------- max_connections = 1000 shared_buffers = 2GB work_mem = 32MB maintenance_work_mem = 512MB max_wal_size = 2GB min_wal_size = 512MB effective_cache_size = 4GB #----------------------------------------- # 16GB de Memoria RAM #----------------------------------------- max_connections = 2000 shared_buffers = 4GB work_mem = 64MB maintenance_work_mem = 1GB max_wal_size = 4GB min_wal_size = 1GB effective_cache_size = 8GB
Reinicie o serviço do PostgreSQL.
# systemctl restart postgresql
Instalação do Zabbix 7 LTS
Inclua o repositório oficial do Zabbix versão 7 LTS.
# cd /tmp/ # wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-1+debian12_all.deb # dpkg -i zabbix-release_7.0-1+debian12_all.deb # apt update
# apt -y install zabbix-server-pgsql zabbix-frontend-php \ zabbix-nginx-conf zabbix-sql-scripts zabbix-agent traceroute
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/
# su - postgres $ createuser --pwprompt zabbix Digite a senha para a nova role: <SENHA ZABBIX> Digite-a novamente: <SENHA ZABBIX> Senha: <SENHA POSTGRES CASO TENHA DEFINIDO NA INSTALAÇÃO DO MESMO> $ createdb -O zabbix zabbix Senha: <SENHA POSTGRES>
Importe o esquema inicial e os dados. Você será solicitado a inserir a senha que foi criada anteriormente.
$ zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | psql -U zabbix -d zabbix &>/dev/null Senha para usuário zabbix: : <SENHA ZABBIX> $ exit
Configure o arquivo zabbix_server.conf para conectar ao banco de dados PostgreSQL.
# vim /etc/zabbix/zabbix_server.conf
Descomente e defina a senha na linha # DBPassword=.
#... DBPassword=<SENHA ZABBIX> #...
Ajuste o arquivo /etc/zabbix/php-fpm.conf, descomente e defina o fuso horário correto. timezone Sua região.
# vim /etc/zabbix/php-fpm.conf
Adicione timezone, e ajuste upload_max_filesize:
php_value[date.timezone] = America/Sao_Paulo php_value[upload_max_filesize] = 100M
Configure as definições do nginx.
# vim /etc/nginx/conf.d/zabbix.conf
Deixei algumas linhas comentadas como exemplo, faça de acordo com sua necessidade.
server { listen 80; listen [::]:80; server_name zabbix.remontti.com.br localhost; #server_name OU_SEU_IP; # Metodo simples para quem quer rodar em uma determinada porta #listen 8181; #listen [::]:8181; #server_name _; root /usr/share/zabbix; index index.php; # Desmomente para deixar restringido apenas para determinados prefixos #allow 192.168.87.0/24; #allow 127.0.0.1; #allow 2001:0db8::/32; #allow ::1; #deny all; #error_page 403 http://www.remontti.com.br; client_max_body_size 100M; location = /favicon.ico { log_not_found off; } location / { try_files $uri $uri/ =404; } location /assets { access_log off; expires 10d; } location ~ /\.ht { deny all; } location ~ /(api\/|conf[^\.]|include|locale) { deny all; return 404; } location ~ [^/]\.php(/|$) { fastcgi_pass unix:/var/run/php/zabbix.sock; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_index index.php; fastcgi_param DOCUMENT_ROOT /usr/share/zabbix; fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name; fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name; include fastcgi_params; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_intercept_errors on; fastcgi_ignore_client_abort off; fastcgi_connect_timeout 60; fastcgi_send_timeout 180; fastcgi_read_timeout 180; fastcgi_buffer_size 128k; fastcgi_buffers 4 256k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; } }
Habilite o Zabbix para iniciar com o sistema.
# systemctl enable zabbix-server
Vamos reiniciar os serviços
# systemctl restart zabbix-server zabbix-agent nginx
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!
Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.
Abraço!
Segui todos os passos e usando o ip de acesso na web, somente aparece a mensagem de “Welcome to nginx!”. Não consigo prosseguir. Existe algum tópico de ajuda?
Muito bom, ajudou muito nos meus estudos
Sempre conteúdo de qualidade. Faz um tutorial usando o mariadb por gentileza.
Completão, muito grato.
Maravilha de conteudo, continue com esse projeto! sem duvida um dos melhores que ja vi
ststus do servidor rodando, mas ao acessa via browseraparece a seguite msg >> O servidor zabbix nao esta rodando: as informaçoes apresentadas pode nao ser atual.
Não consigo conectar a base de dados ao Zabbix ja tentei de tudo
Boa noite.
Estou observando que o Zabbix 7 com PostgreSQL. Esta voltado para desempenho.
Estou adicionando carga e não esta travando.
Já tinha separado a documentação do TimescaleDB para instalar caso necessário.
Vou deixar para instalar o TimescaleDB após adicionar todos os hosts da rede.
o meu ta abrindo direto a pagina do nginx ao invés do zabbix, isso alterei a porta pra 80, quando joga o zabbix na 8080 ai ele abre, mais queria rodar ele na 80
Aconteceu comigo e resolvi colocando o IP como server_name tbm
Olá a todos, o artigo que mostra como fazer envios no Telegram https://blog.remontti.com.br/5517 o Zabbix esta na versão 5, nesta versão 7 não consegui encontrar como enviar , alguém tem como ajudar ?
Alerts>Media Types
Muito obrigado pelo tutorial, estou iniciando o estudo de zabbix e essa instalação meu ajudou muito. Parabéns pelo excelente trabalho.
Boa noite Pessoal
Queria deixar aqui um grande abraço a todos e PARABENIZAR o RUDIMAR mais uma vez pelo excelente trabalho e contribuição para com todos.
Porém queria deixar um destaque aqui.
Doutor, a Instrução “1” você foi GIGANTE, isso foi uma sacada de mestre mesmo.
Parabéns Demais demais demais.
Desejo todo sucesso possível pra você.
O Brasil e o Mundo te agradecem. Parabéns mesmo pelo seu excelente trabalho e colaboração.
Obrigado! TMJ!