6 Сензор

Сваки сензорски чип добија свој директоријум у стаблу sysfs /sys/devices. Да бисте пронашли све сензорске чипове, лакше је пратити симболичне везе уређаја из /sys/class/hwmon/hwmon*, где је * реалан број (0,1,2,...).

Очитавања сензора се налазе или у /sys/class/hwmon/hwmon*/ директоријуму за виртуелне уређаје, или у /sys/class/hwmon/hwmon*/device директоријуму за невиртуелне уређаје. Датотека, названа name, налази се унутар директоријуми hwmon* или hwmon*/device садрже име чипа, што одговара називу драјвера кернела који користи чип ссензора.

Постоји само једна вредност очитавања сензора по датотеци. Заједничка шема за именовање датотека које садрже очитавања сензора унутар било којег од горе поменутих директоријума је: <type><number>_<item>, где је

  • type - за сензорске чипове је "in" (напон), "temp" (температура), "fan" (вентилатор) итд.,
  • item - "input" (измерена вредност), "max" (горњи праг), "min" (низак праг) итд.,
  • number - увек се користи за елементе који могу бити присутни више од једном (обично почиње од 1, осим за напоне који почињу од 0). Ако се датотеке не односе на одређени елемент, оне имају једноставно име без броја.

Информације о сензорима доступним на домаћину се могу добити користећи алате sensor-detec и sensors (lm-sensors пакет: http://lm-sensors.org/). Sensors-detect помаже да се утврди који модули су неопходни за доступне сензоре. Када се модули учитају sensors програм се може користити за приказ очитавања свих чипова сензора. Означавање очитавања сензора, које користи овај програм, може бити другачије од уобичајене шеме именовања (<type><number>_<item> ):

  • ако постоји датотека под називом <type><number>_label, онда ће се ознака унутар ове датотеке користити уместо имена <type><number><item>;
  • ако не постоји датотека <type><number>_label, онда програм претражује унутар /etc/sensors.conf (може бити и /etc/sensors3.conf, или другачије) за замену имена.

Ово означавање омогућава кориснику да одреди какав се хардвер користи. Ако унутра нема датотеке <type><number>_label ни ознаке у конфигурационој датотетеци тип хардвера се може одредити према атрибуту имена (hwmon*/device/name). Стварни називи сензора, који zabbix_agent прихвата, може се добити покретањем програма sensors са параметром -u (sensors -u).

У програму sensor доступни сензори су раздвојени према типу магистрале (ISA адаптер, PCI адаптер, SPI адаптер, виртуелни уређај, ACPI интерфејс, HID адаптер).

На Linux-у 2.4:

(Очитавања сензора се добијају из директоријума /proc/sys/dev/sensors)

  • device - име уређаја (ако се користи <mode>, то је регуларни израз);
  • sensor - назив сензора (ако се користи <mode>, то је регуларни израз);
  • mode - могуће вредности: avg, max, min (ако је овај параметар изостављени, уређај и сензор се третирају дословно).

Пример кључа: sensor[w83781d-i2c-0-2d,temp1]

На Linux-у 2.6+:

(Очитавања сензора се добијају из директоријума /sys/class/hwmon)

  • device - назив уређаја (не регуларни израз). Назив уређаја може бити прави назив уређаја (нпр. 0000:00:18.3) или име стечено коришћењем програма сензора (нпр. k8temp-pci-00c3). На кориснику је да одабере које ће име користити;
  • sensor - назив сензора (нерегуларни израз);
  • mode - могуће вредности: avg, max, min (ако је овај параметар изостављен, уређај и сензор се третирају дословно).

Пример кључа:

sensor[k8temp-pci-00c3,temp,max] or sensor[0000:00:18.3,temp1]

sensor[smsc47b397-isa-0880,in,avg] or sensor[smsc47b397.2176,in1]

Добијање имена сензора

Ознаке сензора, како их штампа наредба сензори, не могу се увек користи директно јер се називи ознака могу разликовати за сваког од продаваца сензорских чипова. На пример, излаз сензора може садржати следеће редове:

$ sensors
       in0: +2.24 V (min = +0.00 V, max = +3.32 V)
       Vcore: +1.15 V (min = +0.00 V, max = +2.99 V)
       +3.3V: +3.30 V (min = +2.97 V, max =+3.63 V)
       +12V: +13.00 V (min = +0.00 V, max = +15.94 V)
       M/B Temp: +30.0°C (low=  -127.0°C, high = +127.0°C)

Од њих, само једна ознака може да се користи директно:

$ zabbix_get -s 127.0.0.1 -k sensor[lm85-i2c-0-2e,in0]
       2.240000

Покушај коришћења других ознака (попут Vcore или +12В) неће успети.

$ zabbix_get -s 127.0.0.1 -k sensor[lm85-i2c-0-2e,Vcore]
       ZBX_NOTSUPPORTED

Да бисте сазнали стварно име сензора, које Zabbix може користити за повратна очитавања сензора, покрените sensors -u. На излазу, може се приметити следеће:

$ sensors -u ... Vcore: in1_input: 1.15 in1_min: 0,00 in1_max: 2.99 in1_alarm: 0.00 ...
+12V: in4_input: 13.00 in4_min: 0.00 in4_max: 15.94 in4_alarm: 0.00 ...

Дакле, Vcore треба да се упита као in1, а +12V треба да буде упитан као in4. Према спецификацијама, ово су напони на пиновима чипа и уопштено говорећи, можда ће бити потребно скалирање.

$ zabbix_get -s 127.0.0.1 -k sensor[lm85-i2c-0-2e,in1]
       1.301000

Не само напон (in), већ и струја (curr), температура (temp) и очитавање брзине вентилатора (fan) може да преузме Zabbix.