Это не подробная инструкция что, как и зачем..
Это просто мои "заметки на память".Попробуем создать custom sensor в системе домашней автоматизации HOMEd, который будет выступать в роли маленького системного монитора - показывать использование процессора, памяти, диска..
1. Создаем кастомный сенсор. Web HOMEd - Custom - Add:
Кастомный сенсор sysmon в HOMEdName = имя сенсора
ID = id сенсора
Exposes = cpuidle, cpuuse, freemem, diskused, diskfree, diskusedpers
Options = {"cpuidle":{"unit":"%"},"cpuuse":{"unit":"%"},"diskfree":{"unit":"MiB"},"diskused":{"unit":"MiB"},"diskusedpers":{"unit":"%"},"freemem":{"unit":"MiB"}}
В Exposes создаем все сенсоры за которыми будем наблюдать, а в Options задаем величины в которых эти сенсоры измеряются.
Если требуется накопительная статистика (а мы же хотим видеть графики), то в рекордере создаем записи для каждой сущности. Web HOMEd - Recorder - Add:
Recorder sysmon HOMEd2. Создаем скрипт ping. Подключаемся к шлюзу с OpenWRT помощью WinSCP, создаем файл скрипта.
#!/bin/sh
# Mini System Monitor для HOMEd - запрашивает инфу о CPU, RAM, ROM и обновляет
# custom sensor в HOMEd установленном на OpenWRT
# Автор tudimon.com
# Free Memory
freemem=`free -h |grep Mem | awk -F ' ' '{print $4}'`
freemem_k=$(( $freemem / 1024 ))
#echo $freemem
#echo $freemem_k
# CPU idle
cpuidle=`top -n1 | head -n2 |grep CPU | awk -F ' ' '{print $8}' | sed 's/%//'`
#echo $cpuidle
# CPU use
cpuuse=$(( 100 - $cpuidle ))
#echo $cpuuse
# disk /dev/root
dskf=`df -m |grep /dev/root`
#echo $dskf
diskused=$(echo $dskf | cut -d " " -f 3)
#echo $diskused
diskfree=$(echo $dskf | cut -d " " -f 4)
#echo $diskfree
diskusedpers=$(echo $dskf | cut -d " " -f 5 | sed 's/%//')
#echo $diskusedpers
mosquitto_pub -h localhost -p 1883 -t homed/fd/custom/gwt360sysmon -m "{\"cpuidle\":$cpuidle,\"cpuuse\":$cpuuse,\"freemem\":$freemem_k,\"diskused\":$diskused,\"diskfree\":$diskfree,\"diskusedpers\":$diskusedpers}" -u "homed" -P "pass_mqtt_homed"
переменные в коде:
-h localhost -p 1883 - адрес и порт mosquitto брокера (mqtt)
-t homed/td/custom/telephone - топик mqtt куда кладем данные
-u "homed" -P "pass_homed" - логин пароль от mqtt
Даем права на выполнение скрипта chmod +x
3. Создаем автоматизацию, которая дергать наш файл скрипта с заданной периодичностью. Web HOMEd - Automation - Add:
Автоматизация по запуску shell скрипта sysmon в HOMEdЗдесь:
Trigger = interval - срабатывать каждые 5 минут
Actions = выполнить shell команду - запустить наш скрипт, который мы писали в п.2
Вот так выглядит dashboard моего system monitor в HOMEd: