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!

 

 

También te podría gustar...

Deja un comentario