Instalação do Zabbix 5 + Grafana 7/8 + NGINX + PostgreSQL + Notificação Telegram


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:

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

Zabbix

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

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.

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

Next Step

Se tudo estiver ok: Next step

Informe a senha do banco de dados criada anteriormente para o zabbix, e clique em Next step.

Next step

Next step

Finish

Entre com Usuário Admin e senha zabbix

Ualaaa 🙂

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 7


Pacotes necessários:

Vamos baixar a key do repositório e adiciona-lo

Atualize o repositório e instale o grafana


OBS Julho/2021:
Atualmente o grafana que está sendo instalado é a versão 8, o mesmo na data de hoje está passando por um bug com o plugin do Zabbix caso você queira instalar a ultima versão 7.x faça o seguinte:
Solução fazer downgrade para última versão 7:

Comente a linha do repositório (quando o bug for corrigido você pode descomenta-la para fazer o upgrade para versão 8).


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:

Localize em [plugins] ;allow_loading_unsigned_plugins descomente removendo o “;” e adicionando:


Caso contrário o plugin de integração com o zabbix não irá funcionar.
Já instalamos também o plugin Zabbix com ferramenta grafana-cli:

É 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...

16 Resultados

  1. Renan disse:

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

  2. 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

  3. 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.

  4. 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 ?

  5. Rafael Machado disse:

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

  6. 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?

  7. 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?

  8. 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?

  9. Mauricio disse:

    Nota 1000 funcionou perfeitamente

  10. 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…

  11. 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.

Deixe uma resposta

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