Avvisi acustici Centreon con Ollama e Piper AI

In questo post combineremo diversi elementi per avere notifiche vocali nel nostro sistema di monitoraggio. Ovviamente utilizzeremo l'intelligenza artificiale locale e sicura (Ollama) per generare un testo amichevole e umano con l'avviso Centreon, per poi riprodurlo sul nostro schermo da 7 pollici″ grazie a Piper e una voce in perfetto spagnolo.

Quindi quello che ho detto, se disponi di un sistema di monitoraggio basato su Centreon saprai che puoi ricevere avvisi quando c'è un problema in un Servizio o Host monitorato, In questo modo scoprirai eventuali problemi nel tuo datacenter. In un Post passato abbiamo visto come rendere più 'umani' i messaggi che Centreon genera’ grazie all'IA di Ollama, in quell'occasione ha inviato la segnalazione in formato testo tramite Telegram. Oggi la differenza è che avremo il messaggio riprodotto da una voce umana (Grazie a Piper) e spara attraverso gli altoparlanti di un piccolo Raspberry Pi, che uso su di me 7 Schermo″ Monitoraggio.

Questo sarebbe un esempio di audio:

Ah, Certo, Ricorda che tutto ciò che vedremo in questo post è open source, locale, certo, Non è richiesta alcuna connessione Internet

Pifferaio

Partiamo quindi con Piper, che come si dice in il suo sito ufficiale Si tratta di un "sistema neurale di sintesi vocale locale veloce che suona alla grande". È un TTS (Sintesi vocale) che possiamo installare sul Raspberry Pi per convertire qualsiasi testo in audio con un'immensa varietà di voci in diverse lingue che torneranno utili!

Il modo più semplice per installare Piper sul Raspberry Pi, scaricherà il binario compilato per la nostra architettura CPU. Che lo sapremo eseguendo: 'cat /proc/cpuinfo'.

  • Per desktop Linux a 64 bit: amd64
  • Per il Raspberry Pi 4 64 bit: Braccio64
  • Per il Raspberry Pi 3/4 32 bit: Armv7

Scarica l'ultima versione che trovi sul loro GitHub, I link diventeranno obsoleti. Lo scarichiamo, Decomprimiamo ed entriamo nella tua directory:

wget https://github.com/rhasspy/piper/releases/download/v1.2.0/piper_armv7.tar.gz tar zxfv piper_armv7.tar.gz cd piper

Scegliamo un modello vocale addestrato dal tuo repository: https://github.com/rhasspy/piper/#voices e quando scegliamo quello che ci piace di più, scarichiamo il file ONNX e il JSON. A proposito, se vuoi ascoltarli per vedere come suonano, Usa questo sito web: https://rhasspy.github.io/piper-samples/. Venire, li scarichiamo:

wget https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/es/es_ES/sharvard/medium/es_ES-sharvard-medium.onnx?download=true -O es_ES-sharvard-medium.onnx wget https://huggingface.co/rhasspy/piper-voices/resolve/v1.0.0/es/es_ES/sharvard/medium/es_ES-sharvard-medium.onnx.json?download=true.json -O es_ES-sharvard-medium.onnx.json

E possiamo provarlo ora, Avremo due opzioni, crea il flusso audio e ascoltalo direttamente attraverso gli altoparlanti del Raspberry Pi, o generare un file .wav per ciò di cui abbiamo bisogno. Correre:

echo 'Hola, esto es un ejemplo de una frase.' | ./piper --modello es_ES-sharvard-medium.onnx --output-raw | Aplay -r 22050 -F S16_LE -T GREZZO -

E suonerà più o meno così:

Integrazione con Centreon

Se vogliamo chiamare Piper da un avviso di notifica, Questi sono i passaggi che ho seguito. Per prima cosa sul Raspberry Pi creeremo uno script che Centreon può chiamare quando c'è una notifica, eseguirà questo script che notificherà ai parlanti l'avviso generato. Lo script riceverà come prima e unica variabile il testo da riprodurre. Mi è rimasta una cosa del genere (/casa/Pifferaio/Pifferaio/alerta_piper.sh):

#!/Bin/Bash CD /Home/Pi/Piper RM alerta.wav Echo $1 | ./piper --modello es_ES-sharvard-medium.onnx --length_scale 1.1 --output_file alerta.wav systemctl arresta snapclient aplay alerta_inicio.wav aplay alerta.wav aplay alerta_fin.wav systemctl avvia snapclient

Alcuni dettagli che vedrete è che ho rallentato un po' la sua voce, e questo ha interrotto alcuni servizi Snapclient, poiché la musica ambientale di solito viene riprodotta anche da questa schermata e di interromperla temporaneamente mentre suona il messaggio.

Dopo aver creato lo script eseguibile, dobbiamo chiamarlo/eseguirlo dal server Centreon Central, o da un Pollaio se applicabile. Per fare ciò,, sarà necessario effettuare il fingerprinting tra il server Centreon e il Raspberry Pi, in modo da poter accedere tramite SSH senza richiedere le credenziali, e in questo modo eseguiremo lo script da remoto.

su centreon-engine ssh-keygen -t rsa cat /var/lib/centreon-engine/.ssh/id_rsa.pub ssh-rsa AAA... ySHsfu0= centreon-engine@os-poller-osit

Quindi a Centreon accediamo come l'utente che esegue le cose in Centreon, Generiamo una chiave privata e una pubblica se non le abbiamo; Quindi con CAT vedremo la chiave pubblica appena creata e la copieremo.

Incolla la chiave pubblica da Centreon Central o Poller sul Raspberry Pi nel file /home/pi/.ssh/authorized_keys

E abbiamo provato a vedere se ci colleghiamo da Centreon con centreon-engine al Raspberry Pi con un SSH::

Sh pi@DIRECCION_IP_RASPBERRY_PI

Ora resta da registrare i comandi in Centreon che serviranno per notificare quando un Host o un Servizio ha problemi. Se usiamo In questo post precedente Per riferimento, dove già generiamo gli script per lanciare il messaggio generato dall'AI di Ollama a Telegram, Bene, dovremo semplicemente aggiungere una riga alla fine che chiama lo script creato nel Raspberry Pi e il gioco è fatto. In questo modo riceveremo la notifica su Telegram e tramite gli altoparlanti. Vi lascio un riassunto dello script che segnala problemi negli Host, Come ho detto, l'importante è l'ultima riga:

#!/bin/bash

# L'intelligenza artificiale di Ollama genera il messaggio per assaggiare il testo="Per favore, genera un testo per una notifica che verrà inviata allo smartphone dell'utente con informazioni utili. Sei un utile agente personale che genera testo per i tecnici IT. Le tue risposte possono essere tecniche, Non offrirti come aiuto, Non dare consigli. Il messaggio che devi dire riguarda un problema di tipo: "$1", Nel team "$2" dal momento che è nello stato "$3". Non dire ciao, Non dire ciao e non dire addio, Non ringraziarti nemmeno per niente. La risposta dovrebbe essere in spagnolo e il messaggio dovrebbe essere breve."

texto_generado=$(/usr/bin/curl http://DIRECCION_IP_OLLAMA:11434/api/genera -H "Tipo di contenuto: Applicazione/JSON" -d '{
  "modello": "lama3",
  "sollecito": "'"$Testo"'",
  "temperatura": 0.1,
  "Corrente": Falso,
  "max_length": 50
}' | jq -r '.response')

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

# Manda a Telegram
/usr/bin/curl -X POST -H "Tipo di contenuto: Applicazione/JSON" -d '{
  "chat_id": "ID_CHAT_TELEGRAM",
  "Testo": "'"$texto_generado_sin_comillas"'"
}' "https://api.telegram.org/botTOKEN_BOT_TELEGRAM/sendMessage"

# Avviso su Raspberry Pi con Piper tramite altoparlanti ssh pi@DIRECCION_IP_RASPBERRYPI "sudo /home/pi/piper/alerta_piper.sh \"$texto_generado_sin_comillas""

¡Y chimpún! Ya lo tenemos listo, script creado y el que tenga dudas tiene en los posts anteriores cualquier dato que necesite para crear el Comando, darlo de alta en Centreon, montar la IA local y segura de Ollama, montarse Centreon

Como siempre y por ser muy original, espero que os haya resultado de interés, que podáis aplicarlo en otro tipo de tecnologías, ideasLa verdad que Piper y Ollama en mi hogar con Home Assistant son totalmente necesarios, le dan un toque original, ahora sí que podemos empezar a llamarle poquito a poco hogar inteligentepero eso, en otros posts, Vedremo!

Abbracci, Comportati bene!

Post consigliati

Autore

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Non esitate a contattarmi, Cercherò di aiutarti ogni volta che potrò, Condividere è vivere ;) . Goditi i documenti!!!