Cómo configurar notificaciones de Slack para poco espacio en disco en su servidor

Probablemente desee saber cuándo su servidor se está quedando sin espacio en disco. Una solución simple es configurar un trabajo cron para que se ejecute a diario y enviarle notificaciones en Slack si hay algún problema.

Índice de contenidos
  1. Obtenga espacio en disco con el comando df
  2. Configurar las notificaciones de Slack desde la línea de comandos
  3. Ponlo todo junto

Obtenga espacio en disco con el comando df

El comando para ver el espacio en disco en Linux es df -h (para salida en un formato legible por humanos):

Esto enumera cada sistema de archivos montado, qué tan grande es el disco físico y cuánto se está utilizando.

Para restringir la salida a un sistema de archivos específico (en este caso, root) puede ejecutar df /. Sin embargo, esto devuelve la fila del encabezado, por lo que puede filtrarla con grep:

Luego, seleccione la quinta columna (el porcentaje) con awky elimine el signo de porcentaje con sed. Esto le da un comando que devuelve un número que representa qué tan llena está su unidad principal:

df / | grep / | awk '{ print $5}' | sed 's/%//g'

Que, en este caso, volvería "39". Si desea cambiar el disco monitoreado por este comando, deberá cambiar el primero df declaración.

Configurar las notificaciones de Slack desde la línea de comandos

La forma más sencilla de hacer que las notificaciones de Slack funcionen es con webhooks. Los webhooks le permiten enviar notificaciones como solicitudes POST a una URL sin tener que administrar usuarios de bot u OAuth. Puede formatear mensajes como JSON y POST usando curl.

De Slack's Portal de API, cree una nueva aplicación, seleccione su espacio de trabajo para agregarla y asígnele un nombre. Esto es lo que se mostrará cuando te envíe un mensaje, así que elige algo interesante.

Una vez que tenga la aplicación, busque la pestaña "Webhooks entrantes" en "Agregar características y características".

Esto le permitirá crear un nuevo webhook y tendrá que elegir en qué canal publicar. Puede crear un nuevo canal para notificaciones de bot o agregarlo a sus mensajes directos.

Una vez que obtenga la URL, copie la solicitud de muestra para ver si funciona. Debería ver "¡Hola mundo!" en el canal seleccionado. Si es así, Slack está listo.

Ponlo todo junto

Para que su servidor realmente le notifique, creará un script que puede ejecutar con un diario cron trabaja. Aquí está el shell del script, menos el comando de notificación:

#!/bin/bash
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=90

if [ "$CURRENT" -gt "$THRESHOLD" ] ; then

fi

Este script establece dos variables, CURRENT (a la salida de df comando superior) e THRESHOLD (a un valor que puede configurar). Luego verifica si el valor actual es mayor que el umbral y, si lo es, ejecuta un comando.

Puede configurar la notificación como desee, pero aquí hay un ejemplo, sin incluir la URL del webhook, que deberá pegar al final (no se requieren indicadores adicionales):

curl -X POST -H 'Content-type: application/json' --data "{"text":"Your server `$(hostname)` is currently at ${CURRENT}% disk capacity."}"

Esto enviará una notificación bien formateada al canal designado de su webhook, incluido el nombre de host del servidor y la capacidad actual del disco.

Puede pegar este comando en el archivo if declaración de script anterior, haciendo que todo se una de esta manera:

#!/bin/bash
CURRENT=$(df / | grep / | awk '{ print $5}' | sed 's/%//g')
THRESHOLD=90

if [ "$CURRENT" -gt "$THRESHOLD" ] ; then
curl -X POST -H 'Content-type: application/json' --data "{"text":"Your server `$(hostname)` is currently at ${CURRENT}% disk capacity."}"
fi

Guardar como diskspace.sh en su directorio de inicio y asegúrese de que tenga permisos de ejecución con chmod +x diskpace.sh. Abra su crontab con crontab -ey agregue la siguiente línea al final:

0 * * * * ~/diskspace.sh

Esto ejecutará el script cada hora para verificar si el disco está lleno. Pero solo recibirá notificaciones si está lleno, por lo que puede verificar si el script está funcionando configurando THRESHOLD bajo el uso actual del disco y ejecutándolo manualmente.

Para notificaciones más detalladas, puede hacer que el script le envíe los resultados de df -h, muy bien formateado en un cuadro de código, simplemente actualizando el archivo curl declaración:

curl -X POST -H 'Content-type: application/json' --data "{"text":"Your server `$(hostname)` is currently at ${CURRENT}% disk capacity.n ```$(df -h)``` "}"

Que aparecerá en Slack como:

Dado que el comando ejecutado por el script puede ser cualquier cosa que desee, también puede configurar notificaciones por correo electrónico utilizando un administrador de correo como Postfix o cualquier otra fuente que admita webhooks.

Descubre más contenido

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Nelida Haydee Saldivia.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a KnownHost que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Subir