Senden von Centreon-Benachrichtigungen an Google Home

Wenn wir ein bisschen Geeks sind und einen intelligenten Assistenten von diesen zur Hand haben, der Google Home heißt, Sie haben ein Überwachungssystem, das auf Centreon oder Nagios basiert, und möchten die Warnungen dort hören, Bist du gebucht?!

gut, Um dies zu erreichen, müssen wir einige Schritte in unserem Centreon-Überwachungsserver ausführen, Wir werden es dank eines Python-Skripts erreichen 3, Auf diese Weise können Sie einen Text als Argument an eine Google-Startseite senden.

Wir werden in Betracht ziehen, mindestens Python zu haben 3.5:

sudo yum installiere rh-python35
scl enable rh-python35 bash

Und wir aktivieren es dauerhaft, Beispiel für meine '/etc/profile.d/enablepython35.sh':

#!/bin / bash
source scl_source enable rh-python35

danach, Wir müssen die Centreon-Dienste neu starten, damit die Centreon-Engine-Sitzung erneut geladen und Python3 ausgeführt wird.

Etwas, das wir sicher nicht mögen, aber ich habe es als Voraussetzung aufgeschrieben, ist, dass der Benutzer von centreon-centengine über Sudo-Berechtigungen verfügen muss, Wir führen Visudo’ und fügen Sie die folgende Zeile in den entsprechenden Teil ein:

Centreon-Motor ALL =(ALLE) NOPASSWD:ALLE

Wir laden dieses Skript herunter, in meinem Fall habe ich es "message_google_home.sh" genannt.:

#! /usr / bin / python3.5

#
# sprach etwas auf GoogleHome
#
# benutzen: ./ghome_say [ghome_ip] [text_to_say]
#
#

sys importieren
Pychromecast importieren
os importieren
os.path importieren
aus gtts importiere gTTS
Importzeit
Hashlib importieren

ip = sys.argv[1];
say = sys.argv[2];

#********* Rufe die lokale IP meines RPI3 ab
Socket importieren
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
local_ip = s.getsockname()[0]
an schließen()
#**********************

fname = hashlib.md5(say.encode()).hexdigest()+".mp3"; #Erstellen Sie den MD5-Dateinamen für das Caching

castdevice = pychromecast.Chromecast(ip)
castdevice.wait()
vol_prec = castdevice.status.volume_level
castdevice.set_volume(0.0) #Lautstärke einstellen 0 für nicht den BEEEP hören

Versuchen:
   os.mkdir("/var / www / html / mp3_cache /")
außer:
   bestehen

wenn nicht os.path.isfile("/var / www / html / mp3_cache /"+fname):
   tts = gTTS(sagen,lang='es')
   tts.save("/var / www / html / mp3_cache /"+fname)

mc = castdevice.media_controller
mc.play_media("http://"+local_ip +"/mp3_cache /"+fname, "Audio / MP3")

mc.block_until_active()

mc.pause() #prepare audio and pause...

time.sleep(1)
castdevice.set_volume(vol_prec) #setting volume to precedent value
time.sleep(0.2)

mc.play() #play the mp3

while not mc.status.player_is_idle:
   time.sleep(0.5)

mc.stop()

castdevice.quit_app()

Lo hacemos ejecutable y lo probamos:

chmod +x mensaje_google_home.sh
python3 mensaje_google_home.sh DIRECCION_IP_GOOGLE_HOME "probando, Testen"

Veremos cómo nuestro altavoz inteligente de Google Home nos dirá el texto que pusimos en el ejemplo. gut, ahora llevaremos esto a Centreon, nämlich, crearemos un Comando de Notificación para alertas de Hosts y otro para alertas de Servicios que utilicen el script anterior.

dies zu tun, von “Aufbau” > “Befehle” > “Benachrichtigungen”, crearemos un Comando para que Google Home alerte de lo que le pase a nuestros hosts con la siguiente línea de comandos:

python3 /usr/lib/centreon/plugins/mensaje_google_home.sh DIRECCION_IP_GOOGLE_HOME "El Host $HOSTNAME$ ($HOSTADDRESS$) befindet sich im Zustand $ HOSTSTATE $"

Und wir machen noch einen Befehl, aber diesmal, um die Dienste zu alarmieren, und mit der folgenden Zeile würde es uns reichen:

python3 /usr/lib/centreon/plugins/mensaje_google_home.sh DIRECCION_IP_GOOGLE_HOME "In $ HOSTNAME $ befindet sich der Service $ SERVICEDESC $ im Status $ SERVICESTATE $"

Was jetzt bleiben würde, wäre, diese neu erstellten Benachrichtigungsbefehle einem Benutzer zuzuordnen, den wir haben, zum Beispiel bereits definiert, oder zu denen wir Benachrichtigungen aktivieren. Wir werden die Centreon-Konfiguration exportieren und ab diesem Moment die Benachrichtigungen über unsere Überwachung erhalten, unter anderem mit unseren Lautsprechern oder intelligenten Assistenten von Google Home oder Google Home Mini.

wie immer, Ich hoffe, Sie waren von Interesse und danke Ihnen wie immer, dass Sie es über soziale Netzwerke übertragen haben.

Letzte Artikel von Hector Herrero (Alle anzeigen)