• Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Mi Blog
✉ Cómo enviar alertas automáticas de email con SSMTP en GNU/Linux Debian

✉ Cómo enviar alertas automáticas de email con SSMTP en GNU/Linux Debian

Seguramente muchos de vosotros habéis querido estar informados del estado de vuestro servidor a través de alarmas de email, ¿verdad? Desde hace muchísimos años conozco multitud de sistemas de monitorización como por ejemplo, Cacti, Nagios (mi preferido), MRTG, HP Openview, Graphite, Pandora , Munin... pero posiblemente os haya interesado alguna vez recibir alarmas o notificaciones de vuestro servidor totalmente personalizadas. En este pequeñísimo tutorial, os voy a enseñar como enviar emails a través de la consola Shell gracias al programa SSMTP. De esta forma, junto con el programador de tareas CRON y un poco de Bash Scripting, podemos hacer maravillas a la hora de estar al tanto del estado de nuestros equipos. Espero que os guste mi nuevo tutorial.

Excepto el proceso de instalación del paquete SSMTP, todos los pasos podemos aplicarlos a cualquiera de las distribuciones actuales de GNU/Linux.

El manual es muy sencillo y seguro que no tendréis problemas en seguirlo con mis indicaciones. ¡Allá vamos!

1.- ELEMENTOS UTILIZADOS EN ESTE TUTORIAL

  • Máquina virtual con GNU/Linux Debian 8.0 corriendo bajo VMWARE WORKSTATION 11
  • SSMTP

2.- INSTALACIÓN DE SSMTP

Antes de realizar la instalación del paquete SSMTP, es recomendable primeramente actualizar la lista de paquetes de nuestros repositorios. Ejecutaremos (con root o sudo) los siguientes comandos para actualizar e instalar el paquete SSMTP:

# apt-get update
# apt-get install ssmtp

3.- CONFIGURACIÓN DE SSMTP

Ahora toca configurar SSMTP a través de su fichero principal de configuración en /etc/ssmtp/ssmtp.conf. Antes ed nada realizaremos uan copia de seguridad por si necesitamos revertir los cambios. Para ello haremos uso de nuestro editor de textos preferido, en mi caso usaré vi:

# cp /etc/ssmtp/ssmtp.conf /etc/ssmtp/ssmtp.conf.backup
# vi /etc/ssmtp/ssmtp.conf

El propósito de usar SSMTP es usar como una cuenta de GMAIL para el envío de correos desde nuestro propio equipo. Por tanto, debemos configurar los siguientes valores (el resto de valores podemos dejarlos tal y como están) en el fichero principal de configuración:

root = Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
mailhub = smtp.gmail.com:587
AuthUser=tu_email
AuthPass=tu_password
UseTLS=YES
UseSTARTTLS=YES
rewriteDomain=gmail.com
hostname=localhost
FromLineOverride=YES

Ahora necesitamos asociar al usuario root (en mi caso estoy usando root), la cuenta de email en el siguiente fichero /etc/ssmtp/revaliases quedando de la siguiente forma

root:Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.:smtp.gmail.com:587

Por último, para evitar que los emails se envien con From: root, ejecutaremos el siguiente comando y cambiaremos al valor a nuestro gusto:

# chfn -f 'Aquí nuestro valor' root

4.- CAMBIOS EN LA POLÍTICA DE SEGURIDAD DE GOOGLE

Tras el último cambio en la política de seguridad de Google, ya no es posible enviar los emails si no se usa una autenticación de tipo OAuth. Por tanto, debemos cambiar nuestra cuenta para que use una política de seguridad de acceso menos segura. Os recomiendo hacer esto con una cuenta de gmail nueva que tengáis en exclusiva para el envio de emails, no lo hagais con cuestra cuenta personal. El mensaje de Gmail y el link para cambiar la seguridad es el siguiente:

Gmail has recently started blocking emails from senders that do not authenticate using OAuth. To allow SSMTP to use gmail's SMTP server, you need to allow access to unsecure apps.

Una vez hecho este cambio ya podremos enviar los emails desde SSMTP.

5.- COMPROBAR EL ENVIO DE EMAILS

Para enviar un email podemos hacerlo de la siguiente forma:

# echo "Aqui el mensaje" | mail -s "Aqui el asunto" email_destino

6.- PEQUEÑO SCRIPT DE ENVIO DE ALARMA

A modo de ejemplo, os pongo un pequeño Script que comprueba si la ocupación del sistema /raíz supera el valor de 75%. Si este valor es superado, se envia un email avisando de dicha problema. El script hay que ponerlo en el CRON y programarlo cada X tiempo, pero existe un problema. Si lo lanzamos cada 5 minutos y el umbral es > de 75%, nos llegará un email cada 5 minutos, haciendo que sea muy molesto y posiblemente Google nos termine bloqueando la cuenta. Para ello, el CRON lo lanzaremos cada 5 minutos pero pondremos un pequeño contador en el Script de bash que compruebe si el email se ha enviado con anterioridad ( por ejemplo 6 horas ). De esta forma evitamos el SPAM. Os dejo a vuestro gusto la creación de Scripts y alarmas personalizadas:

El CRON quedará de la siguiente forma:

*/5 * * * *   /scripts/alarmas.sh

Y el contenido del Script es:

#!/bin/bash
USAGE_ROOT=`df -h / | awk '{print $5}' | tail -n 1 | cut -f1 -d "%"`
EMAIL="Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo."
NOW=`date +%s`
LAST_MAIL="/tmp/alarmas_emails.log"

if [ ! -f $LAST_MAIL ];
then
touch $LAST_MAIL
fi

if [ "$USAGE_ROOT" -gt "75" ];
then
let DIF=$NOW-`cat $LAST_MAIL`
if [ $DIF -gt 21600 ]; #6 horas
then
echo "El porcentaje de uso del directorio / ha superado el umbral de 50%. Actualmente su valor es de $USAGE_ROOT" | mail -s "El umbral de / ha sido superado: $USAGE_ROOT%" $EMAIL
echo $NOW > /tmp/alarmas_emails.log
fi
fi

El email llega de la siguiente forma a nuestro correo de Gmail:

SSMTP

ENJOY!


Raúl Prieto Fernández

Sitio Web: /

Si quieres ir rápido, ve solo. Si quieres llegar lejos, ve acompañado.

Escribir un comentario

Información básica sobre Protección de Datos

Responsable: Raúl Prieto Fernández +info

Finalidad: Moderar los comentarios a los artículos publicados en el blog. +info

Legitimación: Consentimiento del interesado +info

Destinatarios: No se comunicarán datos a persona u organización alguna. +info +info

Derechos: Tiene derecho a Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la información adicional. +info

Plazo de conservación de los datos: Hasta que no se solicite su supresión por el interesado.

Información adicional: Puede consultar la información adicional y detallada sobre Protección de Datos Personales en mi página web raulprietofernandez.net +info

Código de seguridad
Refescar


LOGIN / ENTRAR

BUSCAR EN EL BLOG

TWITTER TIMELINE

Posts Relacionados

Booking.com

ENCUESTA

¿Cual es el mejor Sistema Operativo?

Como es lógico, esta web utiliza cookies propias y de terceros para elaborar información estadística y mostrar publicidad personalizada a través del análisis de tu navegación, conforme a la política de cookies.

  Si continúas navegando, aceptas su uso.