IT & Engineering

Alertas de servidor Linux confiáveis com o Mailgun

Esta publicação foi escrita por Major Hayden, arquiteto principal na Rackspace. O mundo multinuvem atual oferece muita flexibilidade, mas a dispersão da infraestrutura cria sérios desafios para a entrega de e-mail. Os clientes do Mailgun já sabem como a plataforma pode ajudar no envio de e-mails comerciais importantes, como recibos, newsletters e promoções. E quanto àqueles outros e-mails que os servidores precisam enviar quando algo dá errado?
Imagem para Alertas de servidor Linux confiáveis com o Mailgun

Esta publicação foi escrita por Major Hayden, arquiteto principal na Rackspace.

O mundo multinuvem atual oferece muita flexibilidade, mas a dispersão da infraestrutura cria sérios desafios para a entrega de e-mail. Mailgun os clientes já sabem como a plataforma pode ajudar no envio de e-mails comerciais importantes, como recibos, newsletters e promoções. E quanto àqueles outros e-mails que os servidores precisam enviar quando algo dá errado?

Os servidores frequentemente precisam enviar um alerta por e-mail quando algo dá errado ou quando a pessoa administradora precisa saber de uma alteração. Por exemplo, a maioria das falhas de cron jobs acaba criando e-mails que são enviados para alguém no sistema. Geralmente, esses e-mails caem na caixa de correio da conta de usuário root.

Para alguns servidores, a caixa de correio da conta root é um buraco negro porque a conta não está configurada para encaminhar o e-mail para outro lugar. Para outros, quem administra o sistema pode configurar outro endereço para receber os e-mails da conta de usuário root. Conseguir que esse e-mail seja entregue fora do servidor é um desafio em ambientes de nuvem por vários motivos:

  • Muitos endereços IP em plataformas de nuvem estão já em listas de bloqueio de e-mail 
  • O DNS reverso nem sempre é configurado corretamente por quem administra ambientes de nuvem
  • Mantendo registros SPF para ambientes em constante mudança é difícil
  • Distribuir configurações de DomainKeys de forma confiável também é difícil
  • Alguns e-mails de alerta podem cair nas pastas de spam devido ao seu conteúdo, apesar de tudo estar correto na configuração do servidor de e-mail
  • Alguns provedores de nuvem bloqueiam conexões de saída em portas SMTP comuns (como 25, 465 e 587)

O Mailgun pode entregar esses e-mails importantes de forma confiável em quase todos os sistemas com acesso à internet. MTAs comuns, como o postfix ou o sendmail, podem se conectar ao serviço do Mailgun Retransmissão SMTP e enviar e-mails com pouquíssima configuração. Além disso, todos esses e-mails podem ser entregues com segurança via SSL/TLS.

Facilitei um pouco esse processo ao criar uma função do Ansible chamada ansible-mailgun que instalará o postfix e o configurará para usar o Mailgun como uma retransmissão SMTP. A função pode ser facilmente adicionada a qualquer playbook existente do Ansible:

Há apenas três variáveis a serem configuradas para a função operar corretamente. Primeiro, mailgunusername e mailgunpassword aparecem no painel do Mailgun para cada domínio, na seção Domain Information . A variável rootforward_ deve ser configurada com um endereço de e-mail que possa receber os e-mails da conta de usuário root em cada servidor.

Veja como funciona quando um e-mail de alerta é gerado em um dos servidores com a função ansible_mailgun aplicada:

  1. O e-mail de alerta é colocado na fila de entrega do postfix para root
  2. O Postfix se conecta ao Mailgun via SMTP para encaminhar o e-mail (o endereço configurado como rootforward_ na função do Ansible)
  3. O Mailgun entrega o e-mail para o usuário configurado para receber os e-mails da conta root

Esse caminho de entrega de e-mail garante que seus alertas sejam entregues de forma confiável, independentemente de onde sejam gerados.