Enviando las alertas de Centreon a Google Home
Badakigu pixka bat frikiak bagarela eta eskura badugu Google Home deitzen diren laguntzaile adimendun horietako bat, Centreon edo Nagios oinarritutako monitorizazio sistema bat duzu eta han alerta guztiak entzun nahi dituzue, hau da zure post-a!
Ondo, lortzeko gure Centreon monitorizazio zerbitzarian pauso batzuk egin beharko ditugu, Python script baten bidez lortuko dugu 3, Google Home-ri testu bat argumentu gisa bidaltzea ahalbidetzen duena.
Gutxienez Python izatea kontuan hartuko dugu 3.5:
sudo yum install rh-python35 scl enable rh-python35 bash
Eta modu iraunkorrean gaitzen dugu, nire ‘/etc/profile.d/enablepython35.sh’ adibidea:
#!/bin/bash
source scl_source enable rh-python35
Tras ello, Centreon zerbitzuak berrabiarazi beharko ditugu centreon-engine saioa berriro kargatzeko eta Python3 exekutatzeko.
Guretzat ziurrenik gustatzen ez zaigun zerbait, baina behar gisa apuntatua dut, centreon-centengine erabiltzaileak sudo pribilegioak izan behar dituela, ‘visudo’ exekutatzen dugu’ eta hurrengo lerroa gehitzen dugu dagokion atalera:
centreon-engine DENAK=(DENAK) NOPASSWD:DENAK
Nos descargamos este script, que en mi caso lo llamé 'mensaje_google_home.sh':
#! /usr/bin/python3.5
#
# spoken something on GoogleHome
#
# use: ./ghome_say [ghome_ip] [text_to_say]
#
#
import sys
import pychromecast
import os
import os.path
from gtts import gTTS
import time
import hashlib
ip=sys.argv[1];
say=sys.argv[2];
#********* retrieve local ip of my rpi3
import socket
s = socket.socket(socket.AF_INET, socket. SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
local_ip=s.getsockname()[0]
s.close()
#**********************
fname=hashlib.md5(say.encode()).hexdigest()+".mp3"; #sortu md5 fitxategi-izena cacherako
castdevice = pychromecast. Chromecast(ip)
castdevice.wait()
vol_prec=castdevice.status.volume_level
castdevice.set_volume(0.0) #ezarri bolumena 0 for not hear the BEEEP
try:
os.mkdir("/var/www/html/mp3_cache/")
except:
pass
if not os.path.isfile("/var/www/html/mp3_cache/"+fname):
tts = gTTS(say,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, probando"
Veremos cómo nuestro altavoz inteligente de Google Home nos dirá el texto que pusimos en el ejemplo. Ondo, ahora llevaremos esto a Centreon, hau da, crearemos un Comando de Notificación para alertas de Hosts y otro para alertas de Servicios que utilicen el script anterior.
Para ello, etik “Konfigurazioa” > “Commands” > “Notifications”, 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$) $HOSTSTATE$ egoeran dago"
Eta beste Komando bat egiten dugu, baina oraingoan Zerbitzuei abisua emateko, eta hurrengo lerro honekin nahikoa litzateke:
python3 /usr/lib/centreon/plugins/mensaje_google_home.sh DIRECCION_IP_GOOGLE_HOME "$HOSTNAME$-n $SERVICEDESC$ Zerbitzua $SERVICESTATE$ egoeran dago"
Orain geratzen dena sortu berri ditugun jakinarazpen komando hauek guk ditugun erabiltzaile bati lotzea litzateke, adibidez, dagoeneko definitua, edo jakinarazpenak aktibatuko dizkiogunari. Centreon konfigurazioa esportatuko dugu eta une honetatik aurrera gure monitorizazioko alerta guztiak jasoko ditugu gure bozgorailuekin edo Google Home edo Google Home Mini bezalako laguntzaile adimendunekin.
Betiko moduan, Espero dut interesgarria izan dela eta beti bezala eskertzen dut sare sozialen bidez partekatzea.











































