Envio de e-mail criptografado pelo Zabbix usando Postfix

O artigo apresenta uma solução para envio de e-mails pelo Zabbix via protocolo SMTPS, ou seja, e-mails com criptografia
na porta 587 (Postfix + Gmail).

[ Hits: 20.186 ]

Por: Marco Antonio Araujo em 30/12/2014


Introdução



Prezados colaboradores,

Em primeiro lugar gostaria de dizer que estou muito feliz por contribuir com o meu primeiro artigo. Sempre quis contribuir, mas toda vez que descobria algo novo, alguém já o tinha descoberto antes ou já tinha contribuído com algo similar. Desta vez, acredito que minha contribuição será no mínimo inovadora.

Recentemente instalei e configurei o ZABBIX 2.4 no ambiente que trabalho. Desde a versão antiga que trabalhara, versão 2.0, verifiquei que o ZABBIX, mesmo na sua versão mais recente, só envia alertas utilizado o protocolo SMTP (porta 25). O problema é que foi determinado pela CGI no Brasil o bloqueio da porta 25 (SMTP) pelos provedores de internet, e mesmo desconsiderando essa decisão, os grandes provedores de e-mails não mais utilizam esse protocolo, passando utilizar o SMTPS portas 587 ou 465 para envio de e-mails por medidas de segurança e redução de SPAM (Gmail, Hotmail, Yahoo).

Desta forma não temos como fugir, tivemos que fazer a alteração de todos os nossos serviços que utilizavam a porta 25 para a porta 587, porém há aplicativos como o ZABBIX que não possui suporte para isso, pois não se trata simplesmente de alterar a porta. O SMTPS exige autenticação e trabalha com parâmetros diferentes do SMTP, por isso é necessário que a aplicação tenha suporte.

Busquei várias alternativas na internet, mas nenhuma solução funcionou. Existem diversos tutorias do ZABBIX utilizando SendEmail para enviar e-mails, mas não consegui fazê-lo funcionar de jeito nenhum. Até consegui fazê-lo funcionar, mas de uma forma bem rústica. O alerta enviava apenas "SERVIDOR COM PROBLEMA", mas isso não basta. Tenho vários servidores, preciso saber qual deles deu problema e qual o tipo de problema. Então comecei a levantar soluções.

Hipótese 1

Armazenar as variáveis das TRIGGERs do ZABBIX em um arquivo e encaminhar em anexo via SendEmail.

Pareceu a solução mais eficaz no momento, mas não imagino como capturar as variáveis das TRIGGERs do ZABBIX, tentei de diversas formas mas sem sucesso.

Hipótese 2

Alterar o código fonte do ZABBIX para incluir a função de encaminhar e-mails via SMTPS.

Pelo pouco que entendi analisando o código do ZABBIX, ele armazena tudo que é configuração no banco de dados MYSQL, e conforme as funções vão sendo chamadas ele vai montando a informação fazendo consultas nas tabelas do banco e combinando com as variáveis PHP. É um código bem complexo para mim, se eu tivesse muito familiaridade com PHP, talvez seria mais fácil, mas mesmo assim eu levaria muito tempo para entender o código, além disso, alterar o código fonte de uma aplicação tão componenizada como essa é sempre um grande risco de interferir em alguma outra função.

Hipótese 3

Configurar um servidor POSTFIX escutando a porta 25 e que redirecione e-mails para a porta 587. Sem dúvidas a solução mais eficiente que pensei. Tão óbvia, que não sei porque pensei nas outras duas soluções primeiros. As outras duas soluções resolveriam apenas o problema no ZABBIX, já esta terceira solução resolverá o problema de todas as aplicação que não possuem suporte ao SMTPS.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Cenário
   3. Instalação do POSTFIX
   4. Configuração da senha e certificados
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Debian 9: como instalar TL-WN823N v2 (TP-LINK)

Nagios 3 + NagiosQL no Ubuntu Server 12.04

Análise de Desempenho: Web API

Configurando o segundo default gateway para um link de entrada específico

Montagem de Cluster

  
Comentários
[1] Comentário enviado por tsuriu em 30/12/2014 - 12:42h

Ótimo tutorial, parabéns!

Quais as variáveis das TRIGGERS que você estava tentando pegar?!

[2] Comentário enviado por hacktheplanet em 30/12/2014 - 13:01h

Obrigado. Eu estava tentando criar uma action para pegar as variáveis {TRIGGER.STATUS} e {TRIGGER.NAME} pra começar, e saber pelo menos qual o servidor parou.

[3] Comentário enviado por ragen em 31/12/2014 - 19:35h

O título está "usando Postix" não seria usando Post"F"ix?

[4] Comentário enviado por hacktheplanet em 31/12/2014 - 19:39h

É sim amigo, bem observado. Só percebi depois que publiquei o artigo, e agora acho que não dá mais pra alterar.

[5] Comentário enviado por thiagosabo em 17/02/2017 - 01:53h

Parabéns pelo post!!!

Considerando um monitoramento de link, onde este passa por oscilações (queda de energia e etc), seria possível inserir uma trigger com um time mínimo de indisponibilidade? Ex: Um link ficou inoperante por 10 min, neste tempo não haveria envio de notificação, apenas à partir de 11 min de indisponibilidade?

[6] Comentário enviado por hacktheplanet em 17/02/2017 - 06:50h

Prezado Thiago,

Sim há essa possibilidade. O amigo terá que montar uma nova trigger para disparar a notificação por meio de desses parâmetros que você informou. E associar a nova trigger ao host, apenas por questõs de organização. Digamos que o nome do Host seja "link". A trigger ficaria da seguinte forma. A expressão quer dizer que se o link testar o ping durante 11 minutos, a resposta de pacotes for igual a zero e essa condição for verdadeira uma vez, será disparada a trigger com a notificação. Boa sorte.

{link:icmpping.count(11m,0)}=1


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts