Open RPA's: N8N para SRE (Zabbix Usecase)

N8N una herramienta que te permitirá ahorrar mucho tiempo e integrarla en los workflows de tú día a día.


4 min de lectura
Open RPA's: N8N para SRE (Zabbix Usecase)

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.

Captura-de-pantalla-2021-01-08-a-las-19.47.34

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í:

Captura-de-pantalla-2021-01-08-a-las-19.59.54

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

Captura-de-pantalla-2021-01-08-a-las-20.06.36

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.
numero

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í.

Captura-de-pantalla-2021-01-08-a-las-20.19.46

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.

Captura-de-pantalla-2021-01-08-a-las-20.25.53

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

Captura-de-pantalla-2021-01-08-a-las-20.56.33

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.

Captura-de-pantalla-2021-01-08-a-las-21.05.57

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

Captura-de-pantalla-2021-01-08-a-las-21.22.35

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

Artículos Relacionados

Ansible, automatización de tareas y despliegues de forma simple

Hoy en día el número de servidores, virtuales o físicos, sigue creciendo a un ritmo muy alto y a los

4 min de lectura

Gestionar discos en Amazon Web Services (AWS)

Si trabajamos con Amazon Web Services, uno de los servicios que usaremos sin duda es EC2. Con EC2 podremos crear

5 min de lectura

Primeros pasos de Puppet en Amazon EC2

Después de varias pruebas con Puppet, ir a la Puppet Camp, reuniones de la puppet-users-barcelona y la ayuda de la

5 min de lectura

Chef, devops... future of system administration

Some thoughts for the holidays… Best Regards!  Cloudadmins team. by Julian Dunn, 2012 Last night, at a meeting of

3 min de lectura

Interoperability in the Cloud

Many people in the industry believe it is critically important for the Cloud to be open and share concerns about

1 min de lectura

SUBIR

🎉 Te has suscrito con éxito a CloudAdmins!
OK