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).
na porta 587 (Postfix + Gmail).
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.
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.
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.
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.
Quais as variáveis das TRIGGERS que você estava tentando pegar?!