Neste post, aprenderemos a enviar email autenticado pelo ZABBIX através do Gmail.
O "How to" foi testado no ZABBIX 2.4 e no 3.0 com base em Debian.
Instale os pacotes abaixo:
CentOS 6.x e 7
yum install -y cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain mutt postfix
chkconfig postfix on
Debian
sudo apt-get install -y postfix mailutils libsasl2-2 ca-certificates libsasl2-modules mutt mutt-patched
Irá aparecer uma tela, selecione a opção Site Internet e selecione OK.
Digite o nome do seu servidor de e-mail, EX: monitoramento.com
Em seguida, entre no diretório de configuração do Postfix, faça o backup do arquivo de configuração:
cd /etc/postfix/ ; sudo mv main.cf main.cf.old
Crie um novo arquivo de configuração para Postfix:
sudo vi main.cf
Nele, coloque somente as seguintes linhas:
relayhost = [smtp.gmail.com]:587
smtp_tls_loglevel = 1
smtp_use_tls = yes
smtpd_tls_received_header = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
Crie o arquivo "sasl_passwd", contendo o servidor SMTP do Google e a conta que será utilizada para envio dos e-mails.
sudo vi sasl_passwd
[smtp.gmail.com]:587 SeuEmail@gmail.com:SenhaDoEmail
Em seguida, rodamos o comando "postmap" no arquivo "sasl_passwd" e no "main.cf", para que eles possam ser reconhecidos e utilizados pelo Postfix:
sudo postmap /etc/postfix/sasl_passwd ; sudo postmap /etc/postfix/main.cf
Dar permissão
sudo chown zabbix:zabbix sasl_passwd ; sudo chmod 600 sasl_passwd
Valide as permissões (caso dê "arquivo não encontrado" ou qualquer erro, pode ignorar e seguir)
sudo cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem
Reinicie o serviço do Postfix:
sudo service postfix restart
Pronto, agora você está com tudo certo para enviar e-mails através do shell. Faça um teste:
echo 'Teste.' | mutt -s 'Teste de envio pelo shell' SeuEmail@gmail.com
Cheque a caixa de entrada do seu e-mail, ou o aquivo de log.
Perceba o "status=", deve estar "status=sent".
CentOS 6.x e 7
tail -f /var/log/maillog
Debian
tail -f /var/log/mail.log