Centreonen alerta IA lokalarekin Ollama

¡Muy buenas! La intención de este post es hacer un mero ejemplo de cómo podemos usar la IA en nuestro entorno de monitorización, en este primer documento lo orientaremos a la recepción de las alertas, en este caso de Centreon. Así que si estás aburrido de las notificaciones tradicionales, ha venido la IA para cambiarlo!

Esan dut, en este primer post veremos cómo usar la IA de Ollama para que nos traslade las notificaciones de nuestro sistema de monitorización de una manera más amable, más humana… Si queremos podemos decirla que nos dé recommendations o consejos para actuar, o que lo haga en verso… La idea es que Centreon le mandará por API a Ollama cada vez que un Host o un Servicio tenga un problema, crearemos pues un par de scripts muy sencillos que los usaremos para que la alerta sea enviada a Ollama, con un texto donde le detallaremos qué queremos de ella y le pasaremos como argumentos el Host o Servicio que falla, así como su estado…

Empezamos por lo tanto creando esos 2 scripts, en mi caso usaré notificaciones con Telegram, así que si vas a usar mail u otro servicio esa parte la tendrás que hacer distinta.

Creamos el script para las notificaciones de los hosts, le llamamos '/usr/lib/centreon/plugins/notifica_telegram_ia_ollama_host.sh’ adibidez. En él le daremos las indicaciones oportunas que consideremos, yo os dejo mi ejemplo, tendréis que tener en cuenta de modificar la IP de Ollama, así como el Chat ID del grupo de Telegram, el Token de Telegram, erabilitako LLM hizkuntza-eredua edo, adibidez, sortzaileagoa edo gutxiago izateko tenperatura. Hau izango litzateke edukia:

#!/bin/bash

testua="Mesedez, sortu testu bat erabiltzailearen smartphone-era bidaliko den jakinarazpen baterako informazio erabilgarria duena. Teknologia-sistemak diren teknikarientzako testuak sortzen dituen agente pertsonal erabilgarria zara. Zure erantzunak teknikoak izan daitezke, Ez eskaini laguntza gisa, Ez ere gomendiorik eman. Zure mezua arazo motaren batean da: "$1", taldean "$2" egoeran dagoelako "$3". Ez egin ongi etorri mezurik, Ez esan Kaixo eta ez zaindu agurtu, Ez eskertu ezer ere. Erantzuna euskaraz izan behar da eta mezua laburra izan behar da."

testua_sortutakoa=$(/usr/bin/curl http://DIRECCION_IP_OLLAMA:11434/api/generate  -H "Eduki-mota: application/json" -d '{
  "model": "llama3",
  "prompt": "'"$testua"'",
  "tenperatura.": 0.1,
  "stream": false,
  "gehieneko_luzera.": 50
}' | jq -r '.erantzuna')

texto_generado_sin_comillas='echo "$texto_generado" | sed 's/\"//g''

/usr/bin/curl -X POST -H "Eduki-mota: application/json" -d '{
  "chat_id": "-XXXXXXXXXX",
  "text": "'"$texto_generado_sin_comillas"'"
}' "https://api.telegram.org/botTOKEN_BOT_TELEGRAM/sendMessage"

E igualmente deberemos generar el script que usará Centreon para notificar cualquier problema en los Servicios, horretarako, igualmente creamos por ejemplo este script llamado '/usr/lib/centreon/plugins/notifica_telegram_ia_ollama_servicio.sh’ donde si os fijáis es muy parecido, pero tiene 1 argumento más.

#!/bin/bash

testua="Mesedez, genera un texto para una notificación que será enviada al smartphone del usuario. Eres un agente personal que genera texto para técnicos de sistemas. Zure erantzunak teknikoak izan daitezke. Zure mezua arazo motaren batean da: "$1", taldean "$2" ya que el servicio "$3" está en el estado "$4". Ez egin ongi etorri mezurik. No te despidas. No des las gracias. La respuesta debe ser en Español. El mensaje debe ser breve, en un parrafo tu respuesta"

testua_sortutakoa=$(/usr/bin/curl http://DIRECCION_IP_OLLAMA:11434/api/generate  -H "Eduki-mota: application/json" -d '{
  "model": "llama3",
  "prompt": "'"$testua"'",
  "tenperatura.": 0.1,
  "stream": false,
  "gehieneko_luzera.": 50
}' | jq -r '.erantzuna')

texto_generado_sin_comillas='echo "$texto_generado" | sed 's/\"//g''

/usr/bin/curl -X POST -H "Eduki-mota: application/json" -d '{
  "chat_id": "-ID_CHAT_TELEGRAM",
  "text": "'"$texto_generado_sin_comillas"'"
}' "https://api.telegram.org/botTOKEN_TELEGRAM/sendMessage"

Tras ello, exekutagarriak egiteko gogoratu (chmod +d-rekin) eta hurrengoa Centreon-en notifikazio motako Komandoak sortzea izango litzateke, vamos a “Konfigurazioa” > “Commands” > “Notifications” eta pare bat sortzen ditugu, bat Hosts-en arazoak jakinarazteko eta bestea Zerbitzuentzat, bakoitza bere Command Line-rekin:

  • /usr/lib/centreon/plugins/notifica_telegram_ia_ollama_host.sh ‘$HOSTSTATE$’ \ ‘$HOSTNAME$’ \ ‘$HOSTOUTPUT$’
  • /usr/lib/centreon/plugins/notifica_telegram_ia_ollama_servicio.sh ‘$SERVICESTATE$’ \ ‘$HOSTNAME$’ \ ‘$SERVICEDESC$’ \ ‘$SERVICEOUTPUT$’

Eta notifikazio Komandoak sortu ondoren, erabiltzaile bati edo talde bati lotu beharko zaizkie, beraz, hautatu zure Hosts eta Zerbitsuetan lotuta duzun erabiltzaile edo taldea eta adierazi berriki sortutako Komandoak 'Host Notification Commands'-en’ y en 'Service Notification Commands'.

Grabamos y exportamos, por si hace falta, y listo!

Eta ezer, ahora cada vez que tengáis una alerta en vuestro datacenter pues será distinta, tan curiosa como vosotr@s queráis que sea, corta, larga, con opciones de resolution, en euskera, en suajili…

Espero que os haya resultado curioso y nada, esandakoa, como siempre que vaya todo estupendamente!

Muxu bat!

Izenburuko mezuak

Egilea

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, ez zalantzarik izan nirekin harremanetan jartzeko, ahal duzun guztietan laguntzen saiatuko naiz, partekatu ahal dudan guztietan ;) . Dokumentuez gozatu!!!

Ollama, lekuan IA-rekin hasiz

30 apiriletik 2024