Estado de los servicios de raspbian. Comprobación en Home Assistant
Haciendo uso de los comandos por SSH que te explicábamos anteriormente, hoy vamos a supervisar el estado de los servicios de raspbian mediante Home Assistant.
Con esto podremos saber si un servicio está corriendo correctamente, y en caso contrario automatizar el reinicio del mismo.
Esto es importante para servicios como mosquitto, openvpn, dasher, o motion entre otros.
Vamos a explicar el proceso poniendo como ejemplo mosquitto
Para el resto de servicios se haría igual
Creación de los sensores
Lo primero que hemos de hacer es crear el sensor para conocer el estado del servicio.
Para ello en el directorio sensors
crearemos un archivo servicios.yaml
con el siguiente contenido:
- platform: command_line
name: Servicio MQTT
command: "ssh pi@127.0.0.1 systemctl is-active --quiet mosquitto && echo Service is running || echo Service is stopped"
scan_interval: 10
Para el resto de servicios debes copiar el sensor sustituyendo mosquitto por otro servicio.
Si quieres saber todos los servicios que tienes instalados puedes teclear
dpkg --get-selections | grep -v 'deinstall' | more
Te saldrá TODOS los paquetes instalados en raspbian.
Aunque aparezcan muchos, ten en cuenta que casi todo será librerías
Una vez creados los sensores, ya puedes organizarlo en grupos y pestañas a tu antojo.
En la imagen anterior puedes ver algunos de los servicios corriendo actualmente en mi raspberry
Creación de automatismos
Una vez organizado los sensores, debemos preparar los automatismos para el reincio
Para ello, podemos usar un automation como el siguiente:
- alias: Restart Mosquitto
trigger:
platform: state
entity_id: sensor.servicio_mqtt
from: 'Service is running'
to: 'Service is stopped'
action:
- service: notify.telegram
data_template:
message: "Reinicio de MQTT"
- delay:
seconds: 10
- service: shell_command.reiniciomqtt
Este automation detecta la caida de mosquitto, envía un mensaje por telegram y lanza un shell command.
He puesto un delay antes del reinicio porque me daba error al intentar reiniciar nada más detectada la caída.
Como es lógico, debes crear un shell_command con la siguiente instrucción:
reiniciomqtt: ssh pi@127.0.0.1 sudo systemctl start mosquitto
Con esto ya puedes monitorizar tus servicios al más puro estilo docker. (Si quieres probar docker, nuestro amigo Rodrigo Tomé tiene un muy buen tutorial)
Y además en caso de que un servicio se pare por algún motivo, se reiniciará automaticamente
Una vez lo tengas todo configurado, puedes probar su funcionamiento mediante la terminal putty.
Teclea:
sudo systemctl stop mosquitto
Verás como el servicio indica «Service is stopped
» y recibirás un aviso por telegram.
A los pocos segundos el servicio se reiniciará y volverá a indicar «Service is running
»
Como siempre, deja tus dudas en los comentarios o en el grupo de Telegram
Hasta la próxima!
Pingback: Fail2ban. Instalación e integración en Homeassistant | Domology 2.0