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!

Fontes:
https://www.zabbix.com/documentation/

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

16 Resultados

  1. Jobson Nery disse:

    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?

  2. Aquiles Santos disse:

    Muito bom, ajudou muito nos meus estudos

  3. Daniel disse:

    Sempre conteúdo de qualidade. Faz um tutorial usando o mariadb por gentileza.

  4. Pablo Oliveira disse:

    Completão, muito grato.

  5. Marcos disse:

    Maravilha de conteudo, continue com esse projeto! sem duvida um dos melhores que ja vi

  6. Mariano disse:

    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.

  7. Willian Peres Ramos disse:

    Não consigo conectar a base de dados ao Zabbix ja tentei de tudo

  8. Vagner Carvalho disse:

    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.

  9. Diego disse:

    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

  10. Daniel Gusmão disse:

    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 ?

  11. Matheus disse:

    Muito obrigado pelo tutorial, estou iniciando o estudo de zabbix e essa instalação meu ajudou muito. Parabéns pelo excelente trabalho.

  12. Leandro Silva disse:

    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.

  1. 25 de setembro de 2024

    […] Instalação Debian 12 Bookworm Instalação Debian 11 Bullseye Zabbix: Instalação do Zabbix 7 LTS + NGINX + PostgreSQL + Debian 12 Bookworm Instalação do Zabbix 6 LTS + NGINX + PostgreSQL + Debian 12 Bookworm Instalação do Zabbix 6 LTS […]

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *