Centreon alertak OpenAI-rekin

Onena, este post con estilo veraniego… sobre algo que no paramos de oir… la IA… en este post veremos cómo podemos usar a OpenAI para que nos haga las notificaciones de nuestro sistema de monitorización algo más personalizadas…

Bai, dagoeneko dakizun bezala, OpenAI-ri gauza asko eskatu ahal dizkiozu, kasu honetan Centreontik datozen mezuak egokitzeko erabiliko dugu eta agian errazagoak egiteko, o lo que necesitemos. Ni bakarrik hori erabiliko dudanez, alerteari bidali diezaiogula eta modu humanoago batean transkribatu diezaiogula. Noski esan diezaiokegu lagundu edo orientatu gaitzala konpontzen, edo errima eginez esan diezagula, hip-hop moduan, bertsoan, edo Chiquito de la Calzadaren moduan, horixe da… al gusto.

Norbaitek emozionatzea baino lehen… bai, OpenAI-ren ordainketa kontu bat beharko dugu, baina erabilera honek ekar ditzakeen kostua errega da, gainera parametrizatu ahal izango dugu token gutxiago erabiltzeko, eta abar… 0,05 € eguneko inguruan? mezuen kopuruaren araberakoa izango da ere bai…

Nola lortzen dugu? Beno, benetan erraza da, 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. Estos scripts recibirán como argumentos pues eso, el Host/Servicio afectado, con su estado, su output… los scripts le pedirán a OpenAI que por favor si no es mucha molestia los transcriba de una forma humana, usando un lenguaje amable, cercano, bla, bla, al gusto… o dirigido a un departamento técnico, que le gustaría además que le orientes… Por supuesto, que deberíais personalizarlo a vuestro gusto.

Script /usr/lib/centreon/plugins/notifica_telegram_ia_servicio.sh

#!/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. Tus respuestas son breves, útiles, amables, cálidas, perspicaces. Zure erantzunak teknikoak izan daitezke, no te ofrezcas como ayuda y no incluyen detalles internos del Asistente en Casa, como entidades en las respuestas. Zure mezua arazo motaren batean da: $1, taldean $2 ya que el servicio $3 está en el estado $4. No hace falta que saludes."

testua_sortutakoa=$(/usr/bin/curl https://api.openai.com/v1/completions   -H "Eduki-mota: application/json"   -H "Authorization: Bearer sk-TOKEN_OPENAI"   -d '{
  "model": "text-davinci-003",
  "prompt": "'"$testua"'",
  "tenperatura.": 0.9,
  "max_tokens": 100
}' | jq -r '.choices[0].text')

testua_sortutakoa=$(echo "$texto_generado" | sed 1d)

/usr/bin/curl -X POST -H "Eduki-mota: 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

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. Tus respuestas son breves, útiles, amables, cálidas, perspicaces. Zure erantzunak teknikoak izan daitezke, no te ofrezcas como ayuda y no incluyen detalles internos del Asistente en Casa, como entidades en las respuestas. Zure mezua arazo motaren batean da: $1, taldean $2 egoeran dagoelako $3. No hace falta que saludes."

testua_sortutakoa=$(/usr/bin/curl https://api.openai.com/v1/completions   -H "Eduki-mota: application/json"   -H "Authorization: Bearer sk-TOKEN_OPENAI"   -d '{
  "model": "text-davinci-003",
  "prompt": "'"$testua"'",
  "tenperatura.": 0.9,
  "max_tokens": 100
}' | jq -r '.choices[0].text')

testua_sortutakoa=$(echo "$texto_generado" | sed 1d)

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

Una vez guardados los scripts (exekutagarriak egiteko gogoratu), ya podremos ir a la GUI de Centreon y crear un Comando de tipo Notificación, horretarako, vamos a “Konfigurazioa” > “Commands” > “Notifications”, crearemos dos, uno para los Servicios y otro para los Hosts.

El comando llamado ‘Telegram_servicios_IA_shtiene 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_shtiene 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), ejecutarán nuestros scripts, pasándoles como argumentos las variables de Centreon (el Host, el servicio, haien egoera…) y luego OpenAi agita, sacude y nos mandará un mensaje por Telegram algo más interesante.

Recordar asociar estos Comandos de Notificación a los usuarios que corresponda y recargar la configuración de Centreon, que nunca viene de más 😉

Guztira, que tras exportar deberían de comenzar a llegarnos las alertas algo distintas, dependiendo de lo que le hayamos pedido a OpenIA! ¿Qué os parece? Ahora queda seguir exprimiéndolo, pidiendo soluciones, hablando un lenguaje no técnico… EDO, modificar el script y para que os lleguen las alertas por Alexa, llamada telefónica con VoIP, posta, , Teams, Slack, Discord…

Como siempre deseando que os parezca interesante, algo para darle una vuelta más a nuestro sistema de monitorización! y para los excépticos que me digan que le estamos dando información a OpenIA, lo hace igualmente al usar medios de comunicación externos =) Nada que un abrazote, que vaya muy bien, ser felices y sobre todo disfrutar del verano que pasa volando!

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!!!

SCAP Compliance Checker

12 de September de 2023