Instalação do Zabbix 5 LTS + Grafana 7/8 + NGINX + PostgreSQL + Notificação Telegram com Debian 10/11


O Zabbix é uma solução de nível enterprise, de código aberto. O Zabbix é um software que monitora vários parâmetros da rede, dos servidores e da saúde dos serviços. Utiliza-se de um mecanismo flexível de notificação que permite configurar alertas por e-mail entre outros como Telegram, para praticamente qualquer evento. As notificações permitem que se reaja rapidamente à problemas no ambiente. O Zabbix oferece excelentes recursos de relatórios e visualização de dados armazenados. Isso faz com que o Zabbix seja a ferramenta ideal para planejamento de capacidade.
O Grafana é um software livre que permite a visualização de formato de dados métricos. Ele permite criar painéis e gráficos a partir de várias fontes, mas aqui iremos vamos aprender a integra-lo com o Zabbix.

Requisitos se Debian 10 Buster

* Debian 10 instalação limpa
* Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt (Opcional phpPgAdmin + Letsencrypt)

Requisitos se Debian 11 Bullseye

Instalação do Debian 11 Bullseye limpa passo-a-passo
Servidor WEB NGINX + PHP + PostgreSQL + phpPgAdmin + Letsencrypt no Debian 11 Bullseye (LNPP)

Instalação do Zabbix

Para instalação do Zabbix vamos incluir o repositório do oficial do Zabbix.

Repositório Debian 10

Repositório Debian 11

Atualize o repositório e realize a instalação

Vamos criar uma base de dados chamada zabbix e um usuário também chamado de zabbix no PostgreSQL.
Não esqueça de alterar a senha: Use o gerador de senha: https://senhasegura.remontti.com.br/

Importe o esquema inicial e os dados. Você será solicitado a inserir a senha que foi criada anteriormente.

Edite o arquivo zabbix_server.conf para informar os dados para conexão com do PostgreSQL.

Procure por # DBPassword= descomente e sete sua senha.

Ajuste o arquivo /etc/zabbix/php-fpm.conf, descomente e defina o fuso horário correto. timezone Sua região.

Exemplo:

Este é modelo padrão, altere então para sua região, também irei alterar alguns valores padrões se quiser pode remover as conf do mod_php5.c

Ajuste as configurações do nginx.

Deixei algumas linhas comentadas como exemplo, faça de acordo com sua necessidade.

Inicie o servidor Zabbix e os processos do agente e configure-os para que sejam iniciados durante o boot do sistema.

Debian 10

Debian 11

Acesse em seu navegador http://seu_ip:porta ou http://zabbix.seudominio.com.br

Next Step

Se tudo estiver ok: Next step

Selecione PostgreSQL e informe a senha do usuário zabbix criada anteriormente, clique em Next step.

Next step

Next step

Finish

Entre com Usuário Admin e senha zabbix

🙂

Para dexa-lo em Português / Tema escuro:


Possível bug na instalação

Caso se deparar com essa tela não se assuste, faça o seguinte:

De um [Back] depois [Next] q é sucesso!


Alertas no Telegram

No Zabbix 5 temos o Telegram/Webhook, então bora aprender mexer nisso! Mas antes de mais nada será necessário criarmos um bot no Telegram.

Criando Bot no telegram

Abra o Telegram e procure por @BotFather.
Inicie a conversa com ele.

– Digite o comando /newbot para iniciar a criação de um novo bot.
– Após o comando você vai dar um nome para seu bot. Ex.: “Bot Legal RR”.
– Em seguida é necessário digitar o nome de usuário para o bot, sendo obrigatório terminar com bot. Ex.: “legallrr_bot”.
– Ao finalizar você receber informações com seu TOKEN, que vamos utilizar em seguida.

Neste exemplo nosso token para acessar a API HTTP ficou:
757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0

Agora que o token abra o menu Administração –> Tipos de mídias

Localize o Telegram e clique nele

Edite o ParseMode para HTML e Token para o token q você acabou de criar. Marque Process tags.

Neste momento que escrevo na própria descrição da mídia telegram ele recomenda você add o bot @myidbot para descobrir o seu ID, mas parace que este bot está “dormindo”. Vamos ao metodos tradicional. Você pode receber notificações direta do seu bot ou então adiciono-lo em um grupo.

Procure pelo seu bot e comece uma conversa com ele e envie uma mensagem de teste para o mesmo, pois vamos precisar descobrir o ID do seu usuário, para que ele possa lhe enviar as mensagens.

Abra em seu seu navegador a seguinte URL https://api.telegram.org/botTOKEN/getUpdates para descobrir o ID do usuário que enviou a mensagem ou de um grupo.
Ex.: https://api.telegram.org/bot757396508:AAHpaoyVN-95maOCax1vDPDQBnSaZd9P5r0/getUpdates

:: Chat privado ::

ID do chat privado: 999999999

Se desejar criar um grupo também, basta adicionar seu bot a ele, após adiciona-lo envia uma mensagem como /teste para que possamos coletar o ID do grupo.

:: Chat em Grupo ::

ID do chat grupo: -88888888888

Atenção para os grupos que sempre tem um sinal “-” na frente do ID.

Com o ID do grupo/usuário precisamos vincular ao usuário do Zabbix (Neste caso Admin)
AdministraçãoUsuários Clique no usuário Admin

Com as opções do usuário aberto clique na aba Mídia em seguita clique no Adicionar, selecione o Tipo Telegram e insira o em Enviar para o ID.

Atualize

Agora vamos criar a ação que fará o envios dos alertas.
ConfiguraçõesAçõesCriar ação

De um nome para sua ação
Em Condição clique em adicionar: Selecione Incidente suprimido e marque Não

Na aba Operações primeiro item Operações clique em adicionar

Enviar para usuário: Selecione o Admin
Enviar apenas para: Telegram
Marque Custom message, preencha com:
Assunto:

Mensagem

No item Operações de recuperação faremos praticamente o mesmo:

Assunto:

Mensagem padrão

No item Operações de atualização
Assunto:

Mensagem padrão

Operações configurada, clique em atualizar.

Pronto! Agora precisamos gerar um incidente para ver se nosso alerta será enviado para o Telegram.

O sistema de envio de mensagem está concluído! 🙂

Grafana v7/v8


Pacotes necessários:

Para versão 7.5.x: (Não recomendado)

Para versão 8.2.x: (Não recomendado)

Outras versões consulte https://grafana.com/grafana/download?edition=oss

Para Ultima versão v8.X: (Recomendado)
Vamos baixar a key do repositório e adiciona-lo

Atualize o repositório e instale o grafana

Antes de iniciar o grafana, se deseja alterar a porta padrão 3000 (recomendo) edite:

Localize http_port e defina a porta de sua escolha.

Exemplo:

Instale o Plugin Zabbix

É recomendado que mensalmente você faça atualizações dos plugins instalados, com o comando:

Agora sim colocamos o Grafana para iniciar junto com a inicialização, ativamos e inicializamos o serviço:

Acesse em seu navegador http://IP_URL:3000 ou pela porta que você alterou. O nome de usuário padrão é admin e a senha padrão é admin.

Ao fazer login pela primeira vez, você será solicitado a alterar sua senha.

Uhull 🙂

Integração do grafana com o Zabbix

Acesse o Configuration –> Plugins:

Localize o Zabbix e clique no mesmo

Agora ative clicando em Enable.

Volte em Configuration –> Data Sources

Clique em Add data source.

Uma nova tela com varias fontes, localize Zabbix e clique em Select

Nas opções HTTP em URL informe o endereço do seu servidor Zabbix http://IP_URL/api_jsonrpc.php. Em Access selecione Browser. Em Zabbix API details informe seu usuário e senha do Zabbix e selecione a versão correspondente.

Role até o final e e clique em Save & Test Se tudo ocorreu bem uma altera positivo com“Zabbix API version: 5.x.x” aparecerá.

Você pode também pode fazer uma conexão PostgreSQL com o banco de dados do zabbix, para tornar as coisas mais rápidas. Para isso basta “Add data source” pesquisar por PostgreSQL, então basta informa nome do banco, usuário e senha.

Vá para as configurações do data source do zabbix, localize Direct DB Connection, ative-o e selecione PostgreSQL.

Agora vem a parte mais “chata/legal” que é você montar seus gráficos, como isso é algo bem peculiar de cada um, o intuito aqui era ensinar instalar. Recomendo a leitura de Introdução ao Grafana-Zabbix do autor do plugin.

Bônus – Proxy Nginx grafana

Adicione:

Cria o link para sites-enabled em seguida verifique as configurações e reinicie o serviço.

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/download
https://www.zabbix.com/documentation/
https://grafana.com/docs/grafana/latest/installation/debian/
https://grafana.com/grafana/plugins/alexanderzobnin-zabbix-app
https://alexanderzobnin.github.io/grafana-zabbix/configuration/
https://core.telegram.org/bots

Rudimar Remontti

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

Você pode gostar...

28 Resultados

  1. Alex disse:

    Está aparecendo esse erro.

    Pacote nginx-full não está configurado ainda
    Pacote nginx-light não está instalado.
    Pacote nginx-extras não está instalado.

    dpkg: erro ao processar o pacote nginx (–configure):
    problemas de dependência – deixando desconfigurado
    Configurando snmpd (5.7.3+dfsg-5+deb10u4) …
    adduser: Alerta: o diretório pessoal ‘/var/lib/snmp’ não pertence ao usuário que você está criando atualmente.
    Created symlink /etc/systemd/system/multi-user.target.wants/snmpd.service → /lib/systemd/system/snmpd.service.
    dpkg: problemas com dependências impedem a configuração de zabbix-nginx-conf:
    zabbix-nginx-conf depende de nginx; porém:
    Pacote nginx não está configurado ainda.
    Pacote nginx-full, o qual fornece nginx ainda não está configurado.

    dpkg: erro ao processar o pacote zabbix-nginx-conf (–configure):
    problemas de dependência – deixando desconfigurado
    A processar ‘triggers’ para libapache2-mod-php7.3 (7.3.31-1~deb10u3) …
    A processar ‘triggers’ para systemd (241-7~deb10u8) …
    A processar ‘triggers’ para libc-bin (2.28-10+deb10u2) …
    A processar ‘triggers’ para php7.3-fpm (7.3.31-1~deb10u3) …
    NOTICE: Not enabling PHP 7.3 FPM by default.
    NOTICE: To enable PHP 7.3 FPM in Apache2 do:
    NOTICE: a2enmod proxy_fcgi setenvif
    NOTICE: a2enconf php7.3-fpm
    NOTICE: You are seeing this message because you have apache2 package installed.
    Erros foram encontrados durante o processamento de:
    nginx-full
    nginx
    zabbix-nginx-conf
    E: Sub-process /usr/bin/dpkg returned an error code (1)

  2. Douglas Preto disse:

    olá, primeiramente muito bom seu material e obrigado por compartilhar seu conhecimento.

    Utilizando o envio para telegram de problema, conforme a documentação acima:

    {EVENT.NAME}
    {ITEM.NAME1} {ITEM.VALUE1}

    Tempo do evento: {EVENT.AGE}
    {HOST.IP}
    {EVENT.SEVERITY}

    Para o envio do item {ITEM.VALUE1} quando se trata de Lock de banco de dados Oracle ele não envia a mensagem no telegram e informa o seguinte erro:

    Sending failed: Bad Request: can’t parse entities: Unsupported start tag “p” at byte offset 99.

    Não sei se já passou por isso e se consegue me ajudar?

  3. riclecio disse:

    perdi a senha da web do grafana como recuperar?

  4. Igor Dantas disse:

    Fala, Senhores!
    Apenas uma colaboração se estiverem tendo problemas ao tentar extrair os dados para base para banco de dados, usem o diretório que coloquei abaixo… Remontti, ótimo tutorial melhor da internet com nível de detalhes!

    postgres@servidor:~$ zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | psql -U zabbix -d zabbix &>/dev/null
    gzip: /usr/share/doc/zabbix-server-pgsql*/create.sql.gz: No such file or directory

    postgres@servidor:~$ zcat /usr/share/doc/zabbix-sql-scripts/postgresql/create.sql.gz | psql -U zabbix -d zabbix &>/dev/null

    Atenciosamente,
    Igor Dantas

    • Valeu, a pasta zabbix-sql-scripts existe apenas nas versões acima da 5.0 >

    • Vicente Filho disse:

      quem não conseguir achar o arquivo create.sql.gz
      é só instalar ele a parte:

      apt install zabbix-sql-scripts

      Ou adicione no final da linha onde o Remonti mostra no Passo a passo:
      apt install zabbix-server-pgsql zabbix-frontend-php zabbix-nginx-conf zabbix-agent zabbix-sql-scripts

      E pronto, Resolvido!

  5. Marcos Oliveira disse:

    NO DEBIAN 11: Impossível encontrar o pacote zabbix-nginx-conf

  6. Joabe Santos disse:

    Excelente tutorial! Gostaria de saber qual a configuração mínima de ram, processadores e armazenamento para o debian rodar o zabbix satisfatoriamente?

  7. Renan disse:

    Ola Rudimar, Onde configurou o retorno na porta 10051 no nginx?

  8. BUG PLUGIN ZABBIX: NO DATA GRAFANA 8.0

    Solução fazer downgrade para última versão 7:

    Comente a linha.

    https://github.com/alexanderzobnin/grafana-zabbix/issues/1221

    • Wesley Mello disse:

      Boa tarde Rudimar,

      Atualiza o tutorial, não é necessário descometa a linha ;allow_loading_unsigned_plugins = alexanderzobnin-zabbix-datasource

      zabbix já esta assinado por padrão, apenas sendo necessário instalar o plugin.

      abraços

  9. STEFANO GEOVANI ESMERIS disse:

    Em primeiro lugar parabéns ao tutorial. Muito pratico, um verdadeiro install guide destas soluções.
    Gostaria de contribuir com uma pequena dica, que me ajudoumuito.
    Após algum tempo de uso do Zabbix instalado a partir deste tutorial, o servidor do zabbix nao rodava mais! Eu tentava inicializar o serviço mas sempre ele caia imediatamente o start. Apos muito pesquisar descobri que precisamos aumentar o cache do Zabbix.
    No arquivo /etc/zabbix/zabbix_server.conf adicione :

    CacheSize=32M

    Por padrao o valor é 8M, o que pode ser insuficiente para alguns.

    • Obrigado Stefano. Eu normalmente altero os padrões de:

      Vai depender do hardware do servidor bem como o numero de itens/serviços no servidor.

  10. Ronaldo Pedrosa disse:

    Prezados atualizei sem querer para o Grafana v8.0.4 e agora ele fica informando que o plugin não esta assinado, já tem alguma resolução pra isso, conferir o que tinha que ser feito no /etc/grafana/grafana.ini mesmo assim não vai. Alguém poderia ajudar ?

  11. Rafael Machado disse:

    Alguém sabe se o plugin parou de funcionar no Grafana 8?

  12. Fernando disse:

    Remoti, ao tentar integrar o postgres no grafana 7 aparece o erro de certificado:
    x509: certificate is valid for zabbix-new, not localhost

    como faço para resolver?

  13. Fernando disse:

    Rumidar, estou instalando uma maquina nova com zabbix 5.4 e ao instalar o grafana ele integra com o zabbix mas, ao tentar colocar o postgres no datasource da essa mensagem:
    certificate is valid for zabbix-new.teste.net.br, not localhost

    Sabe como resolver isso?

  14. Otavio Simonal disse:

    Boa Tarde.

    Ao tentar adicionar o Data Source ” PostgreSQL”

    Gera o seguinte erro ao clicar em Save & Test (dial tcp [::1]:5432: connect: connection refused)

    O que devo fazer para reverter isso?

  15. Mauricio disse:

    Nota 1000 funcionou perfeitamente

  16. Maurício Venzi disse:

    Muito bom Rudimar!

    Não sei porque na instalação do zabbix server não copiou o arquivo “create.sql.gz” para o caminho, ai o comando abaixo é muito rápido:

    zcat /usr/share/doc/zabbix-server-pgsql*/create.sql.gz | psql -U zabbix -d zabbix &>/dev/null

    no inicio da parte web apresentou erro “Unable to determine current Zabbix database version: the table “dbversion” was not found”

    Após copiar o create.sql.gz o zcat funcionou e o zabbix abriu…

  17. Parabéns pelo tutorial, conseguir instalar todos recursos sem problemas. Obrigado rsrsrsrsr! Já fiz minha doação para o café! Gostaria de saber se tem aluns modelos de template BGP cisco série ASR.

  1. 16 de novembro de 2021

    […] Se aida não tem o Zabbix instalado siga: Instalação do Zabbix 5 LTS + Grafana + NGINX + PostgreSQL + Telegram […]

Deixe um comentário

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