IT & Engineering
Alertas de servidor Linux fiables con Mailgun
Este artículo ha sido escrito y aportado por Major Hayden, arquitecto principal de Rackspace.
El mundo multinube actual permite mucha flexibilidad, pero la dispersión de la infraestructura plantea grandes desafíos para la entrega de emails. Mailgun los clientes ya saben cómo puede ayudarles a enviar emails comerciales críticos, como recibos, newsletters y promociones. ¿Y qué pasa con todos esos otros emails que los servidores tienen que enviar cuando algo sale mal?
A menudo los servidores tienen que enviar una alerta por email cuando algo sale mal o cuando el personal de administración debe estar al tanto de un cambio. Por ejemplo, la mayoría de los fallos de las tareas cron acaban creando emails que se envían a alguien en el sistema. Estos emails suelen caer en el buzón del usuario root.
En algunos servidores, el buzón de root es un agujero negro porque la cuenta no está configurada para reenviar emails a otro sitio. En otros, el personal de administración de sistemas puede configurar otra dirección para recibir los emails del usuario root. Conseguir que ese email se entregue fuera del servidor es todo un desafío en los entornos en la nube por muchos motivos:
- Muchas direcciones IP en las plataformas en la nube están ya en listas de bloqueo de email
- El DNS inverso no siempre está configurado correctamente por el personal de administración en entornos en la nube
- Mantener registros SPF para entornos que fluctúan constantemente es difícil
- Distribuir DomainKeys de forma fiable también es difícil
- Algunos emails de alerta pueden acabar en las carpetas de spam debido a su contenido, a pesar de hacer todo bien en la configuración del servidor de email
- Algunos proveedores en la nube bloquean las conexiones salientes en los puertos SMTP habituales (como 25, 465 y 587)
Mailgun puede entregar estos emails importantes de forma fiable en casi cualquier sistema con acceso a internet. Los MTA comunes, como postfix o sendmail, pueden conectarse al Servidor SMTP servicio de Mailgun y enviar emails con muy poca configuración. Además, todos esos emails pueden entregarse de forma segura con SSL/TLS.
He facilitado un poco este proceso creando un rol de Ansible llamado ansible-mailgun que instalará postfix y lo configurará para usar Mailgun como servidor SMTP. El rol puede añadirse fácilmente a cualquier playbook de Ansible existente:
Solo hay tres variables que configurar para que el rol funcione. En primer lugar, mailgunusername y mailgunpassword aparecen en el panel de control de Mailgun para cada dominio bajo el encabezado Domain Information. La variable rootforward_ debe establecerse en una dirección de email que pueda recibir los emails del usuario root en cada servidor.
Así es como funciona cuando se genera un email de alerta en uno de los servidores con el rol ansible_mailgun aplicado:
- El email de alerta se deposita en la cola de entrega de postfix para root
- Postfix se conecta a Mailgun a través de SMTP para reenviar el email (la dirección configurada como
rootforward_ enel rol de Ansible) - Mailgun entrega el email al usuario configurado para recibir los emails de
root
Esta ruta de entrega de emails garantiza que tus alertas se entreguen de forma fiable, independientemente de dónde se generen.