Alertes de Centreon amb OpenAI
Bo, aquest post amb estil estiuenc… sobre una cosa que no param d'oir… la IA… en aquest post veurem com podem fer servir OpenAI perquè ens faci les notificacions del nostre sistema de monitoratge una mica més personalitzades…
Sí, com ya sabes, a OpenAI le pots pedir muchas cosas, en aquest cas la usaremos adaptar los missatges que venen de Centreon y potser hacerlos més fàcils, o lo que necessitemos. Ya que yo sólo lo usaré para eso, para que me mande la alerta y me la transcriba de una manera més humana. Per descomptat podem dir que nos ayude o nos oriente a resolverla, o que nos lo diga fent rima, hip-hop, en verso, o como Chiquito de la Calzada, eso ya… al gust.
Antes de que alguien se emocione… sí, necesitaremos una cuenta de pago de OpenAI, però es ridículo el coste que pueda suponer este uso, a més que podrem parametritzar para que use menos tokens, etc.… sobre 0,05€ dia? dependerá del número de notificaciones que tengáis también…
¿Com ho aconseguimos? Pues realmente sencillo, en mi caso uso Telegram para las notificaciones, así que tengo 2 scripts, uno para las notificaciones de los Hosts y otro para las notificaciones de los Servicios. These scripts recibirán como argumentos pues eso, el Host/Servicio afectado, amb el seu estat, su output… los scripts le pedirán a OpenAI que por favor si no es mucha molèstia los transcribs de una forma humana, usando un lenguaje amable, cercano, bla, bla, al gust… o dirigido a un departament tècnic, que le gustaría a més que les orientes… Per suposat, que hauries de personalitzar a vuestro gusto.
Script /usr/lib/centreon/plugins/notifica_telegram_ia_servicio.sh
#!/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. Tus respuestas son breves, útiles, amables, càlides, perspicaços. Les teves respostes poden ser tècniques, no te ofrezcas como ayuda y no inclús detalls interns del Asistente en Casa, com entitats en las respostes. El missatge que has de dir és sobre un problema de tipus: $1, a l' equip $2 ya que el servei $3 está en el estado $4. No hace falta que saludes." texto_generado =$(/usr/bin/curl https://api.openai.com/v1/completions -H "Content-Type: application/json" -H "Authorization: Bearer sk-TOKEN_OPENAI" -d '{ "model": "text-davinci-003", "prompt": "'"$text"'", "temperature": 0.9, "max_tokens": 100 }' | jq -r '.choices[0].text') texto_generado =$(echo "$texto_generado" | sed 1d) /usr/bin/curl -X POST -H "Content-Type: application/json" -d '{ "chat_id": "ID_CHAT_TELEGRAM_DESTINO", "text": "'"$texto_generado"'" }' "https://api.telegram.org/botTOKEN_TELEGRAM/sendMessage"
Script /usr/lib/centreon/plugins/notifica_telegram_ia_host.sh
#!/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. Tus respuestas son breves, útiles, amables, càlides, perspicaços. Les teves respostes poden ser tècniques, no te ofrezcas como ayuda y no inclús detalls interns del Asistente en Casa, com entitats en las respostes. 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 hace falta que saludes." texto_generado =$(/usr/bin/curl https://api.openai.com/v1/completions -H "Content-Type: application/json" -H "Authorization: Bearer sk-TOKEN_OPENAI" -d '{ "model": "text-davinci-003", "prompt": "'"$text"'", "temperature": 0.9, "max_tokens": 100 }' | jq -r '.choices[0].text') texto_generado =$(echo "$texto_generado" | sed 1d) /usr/bin/curl -X POST -H "Content-Type: application/json" -d '{ "chat_id": "ID_CHAT_TELEGRAM_DESTINO", "text": "'"$texto_generado"'" }' "https://api.telegram.org/botTOKEN_TELEGRAM/sendMessage"
Una vez guardados los scripts (recordar hacerlos ejecutables), ya podremos ir a la GUI de Centreon y crear un Comando de tipo Notificación, per a això, anem a “Configuration” > “Commands” > “Notifications”, crearemos dos, uno para los Servicios y otro para los Hosts.
El comando llamado ‘Telegram_servicios_IA_sh’ tiene la siguiente línea de comandos:
/usr/lib/centreon/plugins/notifica_telegram_ia_servicio.sh '$SERVICESTATE$' \ '$HOSTNAME$' \ '$SERVICEDESC$' \ '$SERVICEOUTPUT$'
El comando llamado ‘Telegram_hosts_IA_sh’ tiene la siguiente línea de comandos:
/usr/lib/centreon/plugins/notifica_telegram_ia_host.sh '$HOSTSTATE$' \ '$HOSTNAME$' \ '$HOSTOUTPUT$'
Cómo veis, estos Comandos cuando sean llamados (por una alerta), executarán nuestros scripts, pasándoles como argumentos las variables de Centreon (el Host, el servei, el seu estat…) i després OpenAi agita, sacude i ens mandarà un missatge per Telegram alguna cosa més interessant.
Recordar associar aquests Comandos de Notificación a los usuaris que corresponden i recargar la configuració de Centreon, que mai viene de más 😉
Total, que tres exportar haurien de començar a arribar a les alertes alguna cosa distinta, dependiendo de lo que le hayamos demanat a OpenIA! Què us sembla? Ara queda seguir exprimiéndolo, pidiendo soluciones, parlant un llenguatge no tècnic… O, modificar el script i per que os lleguen les alertes por Alexa, llamada telefónica con VoIP, mail, Teams, Slack, Discord…
Como sempre deseando que os parezca interessant, alguna cosa per donar una volta més a el nostre sistema de monitorització! i per als excéptics que em dicen que estem davant informació a OpenIA, ho fa igualment al usar mitjans de comunicació externas =) Res que un abrazote, que vagi molt bé, ser felices i sobre tot gaudir de l'estiu que passa volendo!











































