This is a translation of the original English documentation page. Help us make it better.

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 адаптер).

Overview

Each sensor chip gets its own directory in the sysfs /sys/devices tree. To find all sensor chips, it is easier to follow the device symlinks from /sys/class/hwmon/hwmon*, where * is a real number (0,1,2,...).

The sensor readings are located either in /sys/class/hwmon/hwmon*/ directory for virtual devices, or in /sys/class/hwmon/hwmon*/device directory for non-virtual devices. A file, named name, located inside hwmon* or hwmon*/device directories contains the name of the chip, which corresponds to the name of the kernel driver used by the sensor chip.

There is only one sensor reading value per file. The common scheme for naming the files that contain sensor readings inside any of the directories mentioned above is: <type><number>_<item>, where

  • type - for sensor chips is "in" (voltage), "temp" (temperature), "fan" (fan), etc.
  • item - "input" (measured value), "max" (high threshold), "min" (low threshold), etc.
  • number - always used for elements that can be present more than once (usually starts from 1, except for voltages which start from 0). If files do not refer to a specific element they have a simple name with no number.

The information regarding sensors available on the host can be acquired using sensors-detect and sensors tools (lm-sensors package). Sensors-detect helps to determine which modules are necessary for available sensors. When modules are loaded the sensors program can be used to show the readings of all sensor chips. The labeling of sensor readings, used by this program, can be different from the common naming scheme (<type><number>_<item> ):

  • if there is a file called <type><number>_label, then the label inside this file will be used instead of <type><number><item> name;
  • if there is no <type><number>_label file, then the program searches inside the /etc/sensors.conf (could be also /etc/sensors3.conf, or different) for the name substitution.

This labeling allows user to determine what kind of hardware is used. If there is neither <type><number>_label file nor label inside the configuration file the type of hardware can be determined by the name attribute (hwmon*/device/name). The actual names of sensors, which zabbix_agent accepts, can be obtained by running sensors program with -u parameter (sensors -u).

In the sensors program the available sensors are separated by the bus type (ISA adapter, PCI adapter, SPI adapter, Virtual device, ACPI interface, HID adapter).

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

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

$ 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.

Compatibility

На 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]