[comment]: # translation:outdated

[comment]: # ({a3d1b320-b33b8329})
# 6 Сензор

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

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

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

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

Информације о сензорима доступним на домаћину могу се добити
коришћењем алата **sensor-detect** и **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 ни ознаке унутар
конфигурационе датотеке, тип хардвера се може одредити помоћу
атрибута name (hwmon\*/device/name). Стварна имена сензора, која
zabbix\_agent прихвата, могу се добити покретањем програма **sensors**
са параметром -u (**sensors -u**).

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

[comment]: # ({/a3d1b320-b33b8329})

[comment]: # ({new-eaab320d})
#### 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](https://docs.kernel.org/hwmon/sysfs-interface.html)).
**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).

[comment]: # ({/new-eaab320d})

[comment]: # ({3af7f5c1-0cb28aa9})
#### Добијање имена сензора

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

$ 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* или *+12V*) неће функционисати.

$ 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*.
Према [спецификацији](https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface), ово су напони на пиновима чипа и генерално говорећи, можда ће бити потребно скалирање.

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

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

[comment]: # ({/3af7f5c1-0cb28aa9})

[comment]: # ({new-8c111a00})
#### Compatibility

[comment]: # ({/new-8c111a00})

[comment]: # ({faa12aec-61bf6279})
##### На Линуксу 2.4:

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

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

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

[comment]: # ({/faa12aec-61bf6279})

[comment]: # ({2e1edda6-2e1edda6})
##### На 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\]

[comment]: # ({/2e1edda6-2e1edda6})
