Cada chip sensor recebe o seu próprio diretório na árvore sysfs /sys/devices. Para encontrar todos os chips sensores, é mais fácil seguir os links simbólicos de dispositivo de /sys/class/hwmon/hwmon*, onde * é um número real (0,1,2, ...).
As leituras dos sensores estão localizados no diretório /sys/class/hwmon/hwmon* para dispositivos virtuais, ou em /sys/class/hwmon/hwmon* para dispositivos não-virtuais. Um arquivo, chamada name, localizado dentro de hwmon* ou diretórios hwmon*/dispositivo contém o nome do chip, o que corresponde ao nome do driver de kernel utilizado pelo chip sensor.
Há apenas um valor de leitura do sensor por arquivo. O regime comum para nomear os arquivos que contêm as leituras dos sensores dentro de qualquer um dos diretórios mencionados acima é: <tipo> <numero> _ <item>, onde
* ** Tipo ** - para chips sensores é "in" (tensão), "temp" (temperatura), "fan" (ventilador), etc.,
* ** Artigo ** - "input" (valor medido), "max" (alto limiar), "min" (baixo limiar), etc.,
* ** Número ** - sempre usado para elementos que podem estar presentes mais de uma vez (em geral começa a partir de 1, exceto para as tensões que se iniciam a partir de 0). Se os arquivos não se referem a um elemento específico eles têm um nome simples, sem número.
A informação sobre sensores disponíveis no host pode ser obtida 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 sensores disponíveis. Quando os módulos são carregados o programa sensors pode ser usado para mostrar todas as leituras de chips sensores. A rotulagem de leituras dos sensores, usado por este programa, pode ser diferente do esquema de nomenclatura comum (<tipo><numero>_<item>):
* Se houver um arquivo chamado <tipo><numero>_rotulo, então o rótulo dentro deste arquivo será usado ao invés do nome <tipo><numero><item>;
* Se não houver um arquivo <tipo><número>_rotilo, então o programa procurará dentro de /etc/sensors.conf (pode ser também /etc/sensors3.conf, ou diferente) para a substituiçao de nome.
Esta rotulagem permite ao usuário determinar que tipo de hardware é usado. Se não há nem um arquivo <tipo><número>_rótulo nem rótulo dentro do arquivo de configuração, o tipo de hardware pode ser determinado pelo atributo nome (hwmon*/dispositivo/name). Os nomes reais dos sensores, aceitos pelo agente Zabbix, 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 a partir do diretório /proc/sys/dev/sensors)
* ** ** Dispositivo - o nome do dispositivo (se <mode> é usado, ele é uma expressão regular);
* ** ** Sensor - nome sensor (se <mode> é usado, ele é uma expressão regular);
* ** Modo ** - Valores possíveis: avg, max, min (se este parâmetro for omitido, o dispositivo eo sensor são tratados verbatim).
Chave Exemplo: Sensor [w83781d-i2c-0-2d, temp1]
Antes do Zabbix 1.8.4, o formato sensor[temp1] era utilizado.
(As leituras dos sensores são obtidas a partir do diretório /sys/class/hwmon)
* **device** - nome do dispositivo (expressão não regular). O nome do dispositivo pode ser o nome real do dispositivo (por exemplo, 0000:00:18.3) ou o nome adquirido através do programa sensors (eg k8temp-pci-00c3). Cabe ao usuário escolher qual nome a ser usado;
* **sensor** - nome sensor (expressão não regular);
* **mode** - Valores possíveis: avg, max, min (se este parâmetro for omitido, o dispositivo e o sensor são tratados verbatim).
Chave Exemplo:
sensor[k8temp-pci-00c3,temp,max] ou sensor[0000: 00: 18.3,temp1]
sensor[smsc47b397-isa-0880,in,avg] ou sensor[smsc47b397.2176,in1]
Rótulos de sensores, como impressos pelo comando // sensors //, nem sempre pode pode ser utilizado diretamente porque a nomenclatura de etiquetas pode ser diferente para cada fornecedor de chip sensor. Por exemplo, a saída de // 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)
Destes, apenas um rótulo pode ser usado diretamente:
A tentativa de usar outros rótulos (como // Vcore // ou // + 12V //) não vai funcionar.
Para descobrir o nome real do sensor, que pode ser usado pelo Zabbix para recuperar as leituras dos sensores, execute // sensores -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
...
Então // Vcore // deve ser consultado como // in1 // e // + 12V // deve ser consultado como // in4 //.
Não só tensão (em), mas também as leituras de corrente (curr), temperatura (temp) e velocidade do ventilador (fan) podem ser recuperadas pelo Zabbix.