Openhardwaremonitor

Boas,

Estou a correr o HA num raspberry, mas gostaria de ter acesso a informação do cpu, capacidade do hdd no servidor que tem outro ip. Acho que é possível através do openhardwaremonitor mas não consigo configurar. Sabem se é possível ter essa info?

Vê o netdata se te serve:

Eu tenho um pequeno bash script a correr em todas as VMs que tenho a postar esse tipo de informação no Mqtt.
Se quiseres, posso postar aqui.
Está um pouco arcaico, mas serve para o que quero é pode ser que alguém aqui o melhor :wink:

Podes postar sim toda a informação partilhada é benvinda.

Tenho 2 ficheiros que correm pelo cron.

cron

0 * * * * /home/<user>/mqtt_config.sh #corre a todas as horas
* * * * * /home/<user>/mqtt_status.sh #corre de 15 em 15 segundos
* * * * * sleep 15 && /home/<user>/mqtt_status.sh
* * * * * sleep 30 && /home/<user>/mqtt_status.sh
* * * * * sleep 45 && /home/<user>/mqtt_status.sh

mqtt_config.sh
serve para criar os sensores no HA pelo MQTT

#!/bin/bash

HOST=<IP-do-MQTTBroker> #Exemplo 192.168.1.1
PORT=<Porta-MQTTBroker> #Exemplo 1883
USER=<user MQTTBroker>
PASS=<password MQTTBroker
SENSOR='<nome base do sensor>' #Exemplo 'hassio_server_01', o sensor do disco será 'sensor.hassio_server_01_disk'
SERVER='<friendly name dos sensores>' # Exemplo 'Hassio Server 01', o sensor do disco será 'Hassio Server 01 Disk'

#LOAD
mosquitto_pub -h $HOST -p $PORT -t 'homeassistant/sensor/'$SENSOR'/Load/config' -m "{\"name\":\"$SERVER Load 1M\", \"icon\":\"mdi:cpu-64-bit\", \"unit_of_measurement\": \"%\", \"state_topic\":\"home/servers/$SENSOR/state\", \"value_template\": \"{{ value_json.load }}\"}" -u $USER -P $PASS
#MEM
mosquitto_pub -h $HOST -p $PORT -t 'homeassistant/sensor/'$SENSOR'/Mem/config' -m "{\"name\":\"$SERVER Memory\", \"icon\":\"mdi:memory\", \"unit_of_measurement\": \"%\", \"state_topic\":\"home/servers/$SENSOR/state\", \"value_template\": \"{{ value_json.mem }}\" }" -u $USER -P $PASS
#DISK
mosquitto_pub -h $HOST -p $PORT -t 'homeassistant/sensor/'$SENSOR'/Disk/config' -m "{\"name\":\"$SERVER Disk\", \"icon\":\"mdi:harddisk\", \"unit_of_measurement\": \"%\", \"state_topic\":\"home/servers/$SENSOR/state\", \"value_template\": \"{{ value_json.disk }}\" }" -u $USER -P $PASS
#LAST_BOOT
mosquitto_pub -h $HOST -p $PORT -t 'homeassistant/sensor/'$SENSOR'/LastBoot/config' -m "{\"name\":\"$SERVER Last Boot\", \"device_class\":\"timestamp\", \"icon\":\"mdi:clock\", \"state_topic\":\"home/servers/$SENSOR/state\", \"value_template\":\"{{ value_json.last_boot }}\" }" -u $USER -P $PASS
#UPDATES AVAILABLE
mosquitto_pub -h $HOST -p $PORT -t 'homeassistant/sensor/'$SENSOR'/AvailableUpdates/config' -m "{\"name\":\"$SERVER Available Updates\", \"icon\":\"mdi:package-variant\", \"state_topic\":\"home/servers/$SENSOR/state\", \"value_template\":\"{{ value_json.updates_available }}\" }" -u $USER -P $PASS

exit

mqtt_status.sh
serve para atualizar os valores dos sensores no HA

#!/bin/bash

HOST=<IP-do-MQTTBroker> #Exemplo 192.168.1.1
PORT=<Porta-MQTTBroker> #Exemplo 1883
USER=<user MQTTBroker>
PASS=<password MQTTBroker
SENSOR='<nome base do sensor>' #Deve ser o mesmo que definido no 'mqtt_config.sh'

LOAD=$(uptime | awk '{print $(NF-2)}' | head -c -2)
LOAD_PERC=$(awk "BEGIN {printf \"%.1f\n\", $LOAD*100/2}")

MEMTOTAL=$(free | grep Mem | awk {'print $2'}) 
MEMUSED=$(free | grep Mem | awk {'print $3'})
MEM=$(awk "BEGIN {printf \"%.1f\n\", $MEMUSED*100/$MEMTOTAL}") 

DISK=$(df -h | grep /dev/sda2 | awk {'print $5'} | tr -d %) 

UPTIME=$(uptime -s) 
LAST_BOOT=$(date -d"$UPTIME" +%FT%T+00:00) 

NUMBER_UPDATES=$(apt-get -s upgrade | grep -Po "^[[:digit:]]+ (?=upgraded)")

PAYLOAD="{\"load\":$LOAD_PERC, \"mem\":$MEM, \"disk\":$DISK, \"updates_available\":$NUMBER_UPDATES, \"last_boot\":\"$LAST_BOOT\"}"

echo $PAYLOAD

#STATE
mosquitto_pub -h $HOST -p $PORT -t 'home/servers/'$SENSOR'/state' -m "$PAYLOAD" -u $USER -P $PASS

exit

Os scripts devem ter permissão de execução.

chmod 755 mqtt_config.sh
chmod 755 mqtt_status.sh

Volto a referir que este scripts foram totalmente criados por mim e a experiencia em ShellScript não é muita.
Tenho vários pontos a melhorar, mas o tempo não tem sido muito para isto. Nomeadamente quando se reinicia o HA temos de esperar até uma hora certa (ex: 14h00, 15h00, etc) para que os sensores sejam criados novamente no HA.

Para os scripts correrem, têm de instalar o mosquitto-client nas máquinas onde querem correr os scripts

sudo apt-get install mosquitto-clients

Espero que seja útil


Copyright © 2017-2020. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade