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() #audioa prestatu eta pausa egin...

time.sleep(1)
castdevice.set_volume(vol_prec) #bolumena aurreko balioan ezarri
time.sleep(0.2)

mc.play() #mp3a itzuli

mc.status.player_is_idle false den bitartean:
   time.sleep(0.5)

mc.stop()

castdevice.quit_app()

Exekugarria bihurtzen dugu eta probatzen dugu:

chmod +x mensaje_google_home.sh
python3 mensaje_google_home.sh GOOGLE_HOME_IP_HELBIDEA "Probando, probando"

Ikusiko dugu nola gure Google Home adimendunak adieraziko digun adibidean jarri dugun testua. Ondo, Orain hau Centreon-era eramango dugu, hau da, Notifikazio Komando bat sortuko dugu Host-entzako alerta eta beste bat Service-entzako alerta egiteko, aurreko script-a erabiliz.

Para ello, etik “Konfigurazioa” > “Commands” > “Notifications”, Komando bat sortuko dugu Google Home gure host-ek pasatzen dena abisatzeko hurrengo komando-lerroarekin:

python3 /usr/lib/centreon/plugins/mensaje_google_home.sh GOOGLE_HOME_IP_HELBIDEA "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 GOOGLE_HOME_IP_HELBIDEA "$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!!!