Alertes de Centreon amb la IA local Ollama
Molt bones! La intenció d'aquest post és fer un mer exemple de com podem fer servir la IA en el nostre entorn de monitoratge, en aquest primer document l'orientarem a la recepció de les alertes, en aquest cas de Centreon. Així que si estàs avorrit de les notificacions tradicionals, ha vingut la IA per canviar-lo!
El que s'ha dit, en aquest primer post veurem com utilitzar la IA d' Ollama perquè ens traslladi les notificacions del nostre sistema de monitorització d'una manera més amable, més humana… Si volem podem dir-li que ens doni recomanacions o consells per actuar, o que ho faci en vers… La idea és que Centreon enviarà per API a Ollama cada cop que un Host o un Servei tingui un problema, crearem doncs un parell d'scripts molt senzills que els farem servir perquè l'alerta sigui enviada a Ollama, amb un text on li detallarem què volem d'ella i li passarem com a arguments l'Host o Servei que falla, així com el seu estat…
Comencem per tant creant aquests 2 scripts, en el meu cas utilitzaré notificacions amb Telegram, així que si vas a utilitzar correu u un altre servei esa part la tendrà que fer distinta.
Creamos el script para a les notificacions dels amfitrions, les llamamos '/usr/lib/centreon/plugins/notifica_telegram_ia_ollama_host.sh’ per exemple. En ell les daremos les indicacions oportunes que consideremos, yo os dejo el meu exemple, tendréis que tenir en compte de modificar la IP de Ollama, així com el Chat ID del grup de Telegram, el Token de Telegram, el model de llenguatge LLM utilitzat o per exemple la temperatura per a que sea més o menys creatiu. Este seria el contenido:
#!/bin/bash
texto="Per favor, genera un text per a una notificació que serà enviada a l'smartphone de l'usuari amb informació útil. Ets un agent personal útil que genera text per a tècnics de sistemes. Les teves respostes poden ser tècniques, no t'ofereixis com a ajuda, ni des recomanacions. El missatge que has de dir és sobre un problema de tipus: "$1", a l' equip "$2" ja que és a l'estat "$3". No saluts, no diguis Hola i no t'acomiades, ni des les gràcies per res. La resposta ha de ser en Espanyol i el missatge ha de ser breu."
texto_generado =$(/usr/bin/curl http://DIRECCION_IP_OLLAMA:11434/api/generate -H "Content-Type: application/json" -d '{
"model": "crida3",
"prompt": "'"$text"'",
"temperature": 0.1,
"stream": false,
"max_length": 50
}' | jq -r '.response')
texto_generado_sin_comillas ='echo "$texto_generado" | sed 's/"//g''
/usr/bin/curl -X POST -H "Content-Type: 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, per a això, 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 texto="Per favor, 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. Les teves respostes poden ser tècniques. El missatge que has de dir és sobre un problema de tipus: "$1", a l' equip "$2" ya que el servicio "$3" está en el estado "$4". No saluts. No te despidas. No des las gracias. La respuesta debe ser en Español. El mensaje debe ser breve, en un parrafo tu respuesta" texto_generado =$(/usr/bin/curl http://DIRECCION_IP_OLLAMA:11434/api/generate -H "Content-Type: application/json" -d '{ "model": "crida3", "prompt": "'"$text"'", "temperature": 0.1, "stream": false, "max_length": 50 }' | jq -r '.response') texto_generado_sin_comillas ='echo "$texto_generado" | sed 's/"//g'' /usr/bin/curl -X POST -H "Content-Type: application/json" -d '{ "chat_id": "-ID_CHAT_TELEGRAM", "text": "'"$texto_generado_sin_comillas"'" }' "https://api.telegram.org/botTOKEN_TELEGRAM/sendMessage"
Després d'això, recordar hacerlos ejecutables (con chmod +d) y lo siguiente sería crear los Comandos de tipo notificación en Centreon, anem a “Configuration” > “Commands” > “Notifications” y creamos un par d'ells, uno para notificar problemes amb els Hosts i altres per als Serveis, cada uno con su Command Line:
- /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$’
Y una vez creados los Comandos de notificación quedará asociarlos a un Usuario o a un Grupo, així que selecciona al usuari o grup que tengas associat en tus Hosts y Servicios e indica els Comandos recentment creats en 'Host Notification Commands’ y en 'Service Notification Commands'.
Grabamos y exportamos, por si hace falta, i llest!
I res, ara cada vegada que tengés una alerta en vuestro datacenter pues serà distinta, tan curiosa com vosotr@s queràis que sea, corta, larga, amb opcions de resolució, en euskera, en suajili…
Espero que os haya resultat curiós i nada, el que s' ha dit, com sempre que vaya tot estupendament!
Una abraçada!









































