Cada chip de sensor recebe seu próprio diretório na árvore sysfs /sys/devices. Para encontrar todos os chips de sensor, é mais fácil seguir os links simbólicos de dispositivo a partir de /sys/class/hwmon/hwmon*, onde * é um número real (0,1,2,...).
As leituras dos sensores estão localizadas no diretório /sys/class/hwmon/hwmon*/ para dispositivos virtuais, ou no diretório /sys/class/hwmon/hwmon*/device para dispositivos não virtuais. Um arquivo chamado name, localizado dentro dos diretórios hwmon* ou hwmon*/device, contém o nome do chip, que corresponde ao nome do driver do kernel usado pelo chip do sensor.
Há apenas um valor de leitura de sensor por arquivo. O esquema comum para nomear os arquivos que contêm leituras de sensores dentro de qualquer um dos diretórios mencionados acima é: <type><number>_<item>, onde
As informações sobre sensores disponíveis no host podem ser adquiridas usando as ferramentas sensor-detect e sensors (pacote lm-sensors: http://lm-sensors.org/). Sensors-detect ajuda a determinar quais módulos são necessários para os sensores disponíveis. Quando os módulos são carregados, o programa sensors pode ser usado para mostrar as leituras de todos os chips de sensor. A rotulagem das leituras dos sensores, usada por este programa, pode ser diferente do esquema comum de nomenclatura (<type><number>_<item> ):
Essa rotulagem permite ao usuário determinar que tipo de hardware está sendo usado. Se não houver arquivo <type><number>_label nem rótulo dentro do arquivo de configuração, o tipo de hardware pode ser determinado pelo atributo name (hwmon*/device/name). Os nomes reais dos sensores, que o zabbix_agent aceita, podem ser obtidos executando o programa sensors com o parâmetro -u (sensors -u).
No programa sensor, os sensores disponíveis são separados pelo tipo de barramento (adaptador ISA, adaptador PCI, adaptador SPI, dispositivo virtual, interface ACPI, adaptador HID).
(As leituras dos sensores são obtidas do diretório /proc/sys/dev/sensors)
Exemplo de chave: sensor[w83781d-i2c-0-2d,temp1]
(As leituras dos sensores são obtidas do diretório /sys/class/hwmon)
Exemplo de chave:
sensor[k8temp-pci-00c3,temp,max] ou sensor[0000:00:18.3,temp1]
sensor[smsc47b397-isa-0880,in,avg] ou sensor[smsc47b397.2176,in1]
Os rótulos dos sensores, conforme impressos pelo comando sensors, nem sempre podem ser usados diretamente porque a nomeação dos rótulos pode ser diferente para cada fornecedor de chip de sensor. Por exemplo, a saída do sensors pode conter as seguintes linhas:
$ 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)Desses, apenas um rótulo pode ser usado diretamente:
Tentar usar outros rótulos (como Vcore ou +12V) não funcionará.
Para descobrir o nome real do sensor, que pode ser usado pelo Zabbix para recuperar as leituras do sensor, execute sensors -u. Na saída, o seguinte pode ser observado:
$ 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
...Portanto, Vcore deve ser consultado como in1 e +12V deve ser consultado como in4. De acordo com a especificação, estas são tensões nos pinos do chip e, de modo geral, podem precisar de escala.
Não apenas a voltagem (in), mas também leituras de corrente (curr), temperatura (temp) e velocidade do ventilador (fan) podem ser recuperadas pelo Zabbix.