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.

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