(информация переведена и собрана в кучу с официального форума)

openmediavault temperature

Для получения красивого графика температуры в панели администрирования OpenMediaVault нужно проделать вот что…

Первым делом убедиться, что в системе установлено приложение lm-sensors, либо его установить.

Дальше логинимся под рутом, открываем в редакторе файл Sensors.js:
nano /var/www/openmediavault/js/omv/module/admin/Sensors.js

вставляем следующее содержимое:

/**
* Sensors plugin for system information.
*/
// require("js/omv/NavigationPanel.js")
// require("js/omv/PluginMgr.js")
// require("js/omv/data/DataProxy.js")
// require("js/omv/data/Store.js")
// require("js/omv/grid/TBarGridPanel.js")
// require("js/omv/RrdGraphPanel.js")

Ext.ns("OMV.Module.Diagnostics.SysInfo");

/**
* @class OMV.Module.Diagnostics.SysInfo.Temperatures
* @derived Ext.TabPanel
*/

OMV.Module.Diagnostics.SysInfo.Temperature = function(config) {
var initialConfig = {
title: "CPU temperature",
rrdGraphName: "sensors"
};
Ext.apply(initialConfig, config);
OMV.Module.Diagnostics.SysInfo.Temperature.superclass.constructor.call(
this, initialConfig);
};
Ext.extend(OMV.Module.Diagnostics.SysInfo.Temperature, OMV.RrdGraphPanel, {
});
OMV.preg("sysinfo", "system", OMV.Module.Diagnostics.SysInfo.Temperature);

Теперь создаём другой файл для внесения изменений в collectd.conf и omv-mkgraph:

nano /usr/share/openmediavault/scripts/collectd.d/sensors

этот файл нужно отредактировать в соответствие с параметрами вашей системы,  в зависимости от того, какие датчики у вас установлены:

#!/bin/sh

set -e

. /etc/default/openmediavault
. /usr/share/openmediavault/scripts/helper-functions

OMV_COLLECTD_CONFIG=${OMV_COLLECTD_CONFIG:-"/etc/collectd/collectd.conf"}
OMV_COLLECTD_RRDTOOL_MKGRAPH=${OMV_COLLECTD_RRDTOOL_MKGRAPH:-"/usr/sbin/omv-mkgraph"}

cat <<EOF >> ${OMV_COLLECTD_CONFIG}
LoadPlugin sensors

EOF

cat <<EOF >> ${OMV_COLLECTD_RRDTOOL_MKGRAPH}
# Plugin: sensors
TITLE_LOAD="CPU temperature"
COLOR_CPU_PHYSICAL="#00cc00" # green
COLOR_CPU_CORE_0="#0000fd"   # blue
COLOR_CPU_CORE_1="#ff0000"  # red
rrdtool graph \${IMGDIR}/sensors-hour.png --start \${HOURSTART} \${DEFAULTS} --title "\${TITLE_LOAD}\${HOURTITLE}" --slope-mode --upper-limit 80 --lower-limit 0 --units-exponent 0 \
DEF:cpupavg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:AVERAGE \
DEF:cpupmin=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:MIN \
DEF:cpupmax=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:MAX \
DEF:cpuc0avg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:AVERAGE \
DEF:cpuc0min=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:MIN \
DEF:cpuc0max=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:MAX \
DEF:cpuc1avg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:AVERAGE \
DEF:cpuc1min=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:MIN \
DEF:cpuc1max=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:MAX \
LINE1:cpupavg\${COLOR_CPU_PHYSICAL}:"   CPU" \
GPRINT:cpupmin:MIN:"%4.2lf Min" \
GPRINT:cpupavg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpupmax:MAX:"%4.2lf Max" \
GPRINT:cpupavg:LAST:"%4.2lf Last\l" \
LINE1:cpuc0avg\${COLOR_CPU_CORE_0}:"Core 1" \
GPRINT:cpuc0min:MIN:"%4.2lf Min" \
GPRINT:cpuc0avg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpuc0max:MAX:"%4.2lf Max" \
GPRINT:cpuc0avg:LAST:"%4.2lf Last\l" \
LINE1:cpuc1avg\${COLOR_CPU_CORE_1}:"Core 2" \
GPRINT:cpuc1min:MIN:"%4.2lf Min" \
GPRINT:cpuc1avg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpuc1max:MAX:"%4.2lf Max" \
GPRINT:cpuc1avg:LAST:"%4.2lf Last\l" \
COMMENT:"\${LASTUPDATE}" >/dev/null
rrdtool graph \${IMGDIR}/sensors-day.png --start \${DAYSTART} \${DEFAULTS} --title "\${TITLE_LOAD}\${DAYTITLE}" --slope-mode --upper-limit 80 --lower-limit 0 --units-exponent 0 \
DEF:cpupavg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:AVERAGE \
DEF:cpupmin=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:MIN \
DEF:cpupmax=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:MAX \
DEF:cpuc0avg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:AVERAGE \
DEF:cpuc0min=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:MIN \
DEF:cpuc0max=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:MAX \
DEF:cpuc1avg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:AVERAGE \
DEF:cpuc1min=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:MIN \
DEF:cpuc1max=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:MAX \
LINE1:cpupavg\${COLOR_CPU_PHYSICAL}:"   CPU" \
GPRINT:cpupmin:MIN:"%4.2lf Min" \
GPRINT:cpupavg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpupmax:MAX:"%4.2lf Max" \
GPRINT:cpupavg:LAST:"%4.2lf Last\l" \
LINE1:cpuc0avg\${COLOR_CPU_CORE_0}:"Core 1" \
GPRINT:cpuc0min:MIN:"%4.2lf Min" \
GPRINT:cpuc0avg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpuc0max:MAX:"%4.2lf Max" \
GPRINT:cpuc0avg:LAST:"%4.2lf Last\l" \
LINE1:cpuc1avg\${COLOR_CPU_CORE_1}:"Core 2" \
GPRINT:cpuc1min:MIN:"%4.2lf Min" \
GPRINT:cpuc1avg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpuc1max:MAX:"%4.2lf Max" \
GPRINT:cpuc1avg:LAST:"%4.2lf Last\l" \
COMMENT:"\${LASTUPDATE}" >/dev/null
rrdtool graph \${IMGDIR}/sensors-week.png --start \${WEEKSTART} \${DEFAULTS} --title "\${TITLE_LOAD}\${WEEKTITLE}" --slope-mode --upper-limit 80 --lower-limit 0 --units-exponent 0 \
DEF:cpupavg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:AVERAGE \
DEF:cpupmin=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:MIN \
DEF:cpupmax=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:MAX \
DEF:cpuc0avg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:AVERAGE \
DEF:cpuc0min=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:MIN \
DEF:cpuc0max=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:MAX \
DEF:cpuc1avg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:AVERAGE \
DEF:cpuc1min=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:MIN \
DEF:cpuc1max=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:MAX \
LINE1:cpupavg\${COLOR_CPU_PHYSICAL}:"   CPU" \
GPRINT:cpupmin:MIN:"%4.2lf Min" \
GPRINT:cpupavg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpupmax:MAX:"%4.2lf Max" \
GPRINT:cpupavg:LAST:"%4.2lf Last\l" \
LINE1:cpuc0avg\${COLOR_CPU_CORE_0}:"Core 1" \
GPRINT:cpuc0min:MIN:"%4.2lf Min" \
GPRINT:cpuc0avg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpuc0max:MAX:"%4.2lf Max" \
GPRINT:cpuc0avg:LAST:"%4.2lf Last\l" \
LINE1:cpuc1avg\${COLOR_CPU_CORE_1}:"Core 2" \
GPRINT:cpuc1min:MIN:"%4.2lf Min" \
GPRINT:cpuc1avg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpuc1max:MAX:"%4.2lf Max" \
GPRINT:cpuc1avg:LAST:"%4.2lf Last\l" \
COMMENT:"\${LASTUPDATE}" >/dev/null
rrdtool graph \${IMGDIR}/sensors-month.png --start \${MONTHSTART} \${DEFAULTS} --title "\${TITLE_LOAD}\${MONTHTITLE}" --slope-mode --upper-limit 80 --lower-limit 0 --units-exponent 0 \
DEF:cpupavg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:AVERAGE \
DEF:cpupmin=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:MIN \
DEF:cpupmax=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:MAX \
DEF:cpuc0avg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:AVERAGE \
DEF:cpuc0min=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:MIN \
DEF:cpuc0max=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:MAX \
DEF:cpuc1avg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:AVERAGE \
DEF:cpuc1min=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:MIN \
DEF:cpuc1max=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:MAX \
LINE1:cpupavg\${COLOR_CPU_PHYSICAL}:"   CPU" \
GPRINT:cpupmin:MIN:"%4.2lf Min" \
GPRINT:cpupavg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpupmax:MAX:"%4.2lf Max" \
GPRINT:cpupavg:LAST:"%4.2lf Last\l" \
LINE1:cpuc0avg\${COLOR_CPU_CORE_0}:"Core 1" \
GPRINT:cpuc0min:MIN:"%4.2lf Min" \
GPRINT:cpuc0avg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpuc0max:MAX:"%4.2lf Max" \
GPRINT:cpuc0avg:LAST:"%4.2lf Last\l" \
LINE1:cpuc1avg\${COLOR_CPU_CORE_1}:"Core 2" \
GPRINT:cpuc1min:MIN:"%4.2lf Min" \
GPRINT:cpuc1avg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpuc1max:MAX:"%4.2lf Max" \
GPRINT:cpuc1avg:LAST:"%4.2lf Last\l" \
COMMENT:"\${LASTUPDATE}" >/dev/null
rrdtool graph \${IMGDIR}/sensors-year.png --start \${YEARSTART} \${DEFAULTS} --title "\${TITLE_LOAD}\${YEARTITLE}" --slope-mode --upper-limit 80 --lower-limit 0 --units-exponent 0 \
DEF:cpupavg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:AVERAGE \
DEF:cpupmin=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:MIN \
DEF:cpupmax=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:MAX \
DEF:cpuc0avg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:AVERAGE \
DEF:cpuc0min=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:MIN \
DEF:cpuc0max=\${DATA}/sensors-coretemp-isa-0000/temperature-temp2.rrd:value:MAX \
DEF:cpuc1avg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:AVERAGE \
DEF:cpuc1min=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:MIN \
DEF:cpuc1max=\${DATA}/sensors-coretemp-isa-0000/temperature-temp3.rrd:value:MAX \
LINE1:cpupavg\${COLOR_CPU_PHYSICAL}:"   CPU" \
GPRINT:cpupmin:MIN:"%4.2lf Min" \
GPRINT:cpupavg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpupmax:MAX:"%4.2lf Max" \
GPRINT:cpupavg:LAST:"%4.2lf Last\l" \
LINE1:cpuc0avg\${COLOR_CPU_CORE_0}:"Core 1" \
GPRINT:cpuc0min:MIN:"%4.2lf Min" \
GPRINT:cpuc0avg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpuc0max:MAX:"%4.2lf Max" \
GPRINT:cpuc0avg:LAST:"%4.2lf Last\l" \
LINE1:cpuc1avg\${COLOR_CPU_CORE_1}:"Core 2" \
GPRINT:cpuc1min:MIN:"%4.2lf Min" \
GPRINT:cpuc1avg:AVERAGE:"%4.2lf Avg" \
GPRINT:cpuc1max:MAX:"%4.2lf Max" \
GPRINT:cpuc1avg:LAST:"%4.2lf Last\l" \
COMMENT:"\${LASTUPDATE}" >/dev/null

EOF

Сохраним файл sensors и добавим ему права на выполнение:

chmod +x /usr/share/openmediavault/scripts/collectd.d/sensors
Запустим на выполнение:

/usr/share/openmediavault/scripts/collectd

этот скрип создаст файлы collectd.conf и omv-mkgraph

Если скрипт не сработал, или вышел с ошибкой (например, — у меня были пробелы после «EOF»), — нужно попробовать выполнить

/usr/share/openmediavault/scripts/collectd.d/sensors

и посмотреть, есть ли ошибки. Если их нет, — попробовать запустить

omv-mkgraph

Теперь логинимся в админку через веб-интерфейс, или перезагружаем страницу, если уже были залогинены и смотрим, чтобы появилась вкладка «CPU Temperature» в «Системная информация->система» Всё должно работать, но…

Для того, чтобы определить, какие сенсоры есть в системе, и чтобы прописать их в настройки, — нужно их для начала найти (это надо было выполнить прежде всего по идее ;)):

Открываем файл collectd.conf:

nano /etc/collectd/collectd.conf Добавляем следующую строку:

LoadPlugin sensors

Перезагружаем демон collectd, или систему:

/etc/init.d/collectd restart

Теперь мы можем посмотреть, какие сенсоры по какому пути использует collectd:

cd /var/lib/collectd/rrd/localhost
ls

В результате должны увидеть что-то вроде такого списка:

 


cpu-0
cpu-1
cpu-2
cpu-3
df
interface
load
memory
sensors-coretemp-isa-0000

Игнорируем всё кроме sensors-coretemp-isa-0000

Смотрим, что находится в папке sensors-coretemp-isa-0000:

ls sensors-coretemp-isa-0000

Должен быть список файлов, как правило, — индивидуальный для каждой системы, примерно такой:

temperature-temp1.rrd temperature-temp2.rrd temperature-temp3.rrd

Теперь мы можем использовать эту информацию, редактируя наш файл sensors, примерно так:

DEF:cpupavg=\${DATA}/sensors-coretemp-isa-0000/temperature-temp1.rrd:value:AVERAGE

Можно посмотреть, какую информацию выдаёт rrdtool:

rrdtool info yoursensorfile.rrd

В результате должен получиться симпатичный график:

Кроме мониторинга температуры можно добавить информацию о вентиляторах, о температуре жёстких дисков. В последнем случае, только надо иметь ввиду, что при опросе жёстких дисков они выводятся из режима сна и раскручивается шпиндель.