Hoy voy a presentaros una aplicación que puede ahorrarnos mucho tiempo a toda la gente que gestionamos sistemas, se trata de N8N.

Seguramente te preguntas que es N8N,

n8n es una herramienta con licencia "Apache 2.0 with Commons Clause licensed" para la automatización de tareas basada en TypeScript. Te ayudará a interconectar todas y cada una de las aplicaciones API entre sí para compartir y manipular los datos sin una sola línea de código. Es un servicio fácil de usar y altamente personalizable, que utiliza una interfaz de usuario intuitiva para que puedas diseñar tus workflows de forma ágil.

Tiene una serie de ventajas que la hace ideal para los que nos dedicamos a los sistemas.

  • Es Self-Hosted.
  • Puede correr dentro de una VPC, para acceder a servicios internos.
  • Un tercero no tiene acceso a nuestros datos.
  • Puedes crear tus propios 'nodes'.

¿Que es un node?

Un node es un punto de entrada para recuperar datos, una función para procesar datos o una salida para enviar datos. El proceso de datos incluye filtrar, recomponer y cambiar datos. Puede haber uno o varios nodos para su API, servicio o aplicación. Puede conectar varios nodos, lo que le permite crear flujos de trabajo simples y complejos con ellos de forma intuitiva.

Por ejemplo, el node de Hojas de cálculo de Google. Se puede utilizar para recuperar datos, leer y escribir en una hoja de cálculo de forma sencilla.

Como Instalarlar N8N

Estas son las distintas formas de instalar N8N.

N8N para SRE
N8N ya empieza a tener nodes interesantes por ejemplo:

Gestión de colas

  • RabbitMQ
  • Kafka
  • AMQP Sender

Bases de datos

  • Postgres
  • MySQL
  • MongoDB
  • Firebird
  • Microsoft SQL

Mensajería

  • Slack
  • Twilio ( SMS y Whatsapp)
  • Mattermost
  • Telegram
  • Microsoft Teams

Y muchos más que podéis ver en https://n8n.io/integrations

Sistema de avisos con N8N

Una integración que se podría hacer con N8N son los avisos de Zabbix por teléfono para incidencias de tipo Disaster.

El workflow esta formado por tres 'nodes'.

  • Webhook
  • Set
  • HTTP Request

Webhook: Es un 'node' que espera que le mandemos un POST
Set: Es el 'node' donde definiremos la configuración de twilio.
HTTP Request: Es un 'node' que hace llamadas a la API como si fuera curl.

Para crear este workflow debemos registrarnos en twilio y crear un proyecto de tipo voice, así:

Una vez registrado nos aparecerá esta pantalla para elegir un número.

Para la demo elegiré un número de USA pero podéis seleccionar uno de vuestro país, depende de el país donde esteis harán que valideis el número con vuestros datos, España es un ejemplo.

Ahora que ya nos hemos registrado necesitamos estos datos.

  • Número de teléfono ( Ya lo tenemos )
  • TWILIO_ACCOUNT_SID
  • TWILIO_AUTH_TOKEN

Vamos al dashboard del proyecto y nos debería aparecer allí.

Con estos datos localizados nos descargamos el workflow.
Workflow: https://n8n.io/workflows/884

Ahora podemos pegarlo en nuestra instancia de N8N.

Debemos guardar y activar el workflow para que funcione.

Una vez guardado debemos abrir el node Set y configurar los datos.

Una vez configurado vamos hacia el node con el nombre API Call, debemos configurar la credential de tipo Auth Basic justo así:

Una vez tenemos todo esto configurado debemos localizar nuestro webhook para poder envíar mensajes para eso vamos en Webhook Zabbix y vemos que endpoint nos da para producción.

Ahora que ya lo tenemos listo debemos permitir enviar llamadas a España.
https://www.twilio.com/console/voice/calls/geo-permissions/low-risk?countryIsoCode=spain

Una vez tenemos estos datos ya podemos hacer que nos llame nuestra automatización con una llamada post a nuestro webhook.

curl -X POST -H "Content-Type: application/json" --data '{ "phone":"+34666666666", "server": "zabbix prod", "message":"Unreachable Zabbix" }' https://tuinstancia.hooks.n8n.cloud/webhook/916f4c31a 

Debemos indicarle

  • phone
  • server
  • message

phone: Es el número al que llamará.
server: El servidor afectado.
message: El mensaje del trigger.

Ahora ya solo tendríais que integrarlo en vuestro zabbix.

N8N es un proyecto a tener en cuenta se estan desarrollando nodes de Ansible Tower y de Zabbix, sin duda nos ayudará a ahorrar muchisímo tiempo en nuestro día a día.

Aprovecho para invitaros a la comunidad https://comunidad-n8n.com y al canal de telegram https://t.me/comunidadn8n Os esperamos!

Saludos,

Cloudadmins.org