Cada sensor do chip recebe seu próprio diretório na árvore 'sysfs' (/sys/devices). Para localizar todos so chips sensores, a forma mais fácil é seguir os links simbólicos de dispositivo de /sys/class/hwmon/hwmon*, onde * é um número real (0,1,2,...).
A leitura dos sensores de dispositivos virtuais está localizada /sys/class/hwmon/hwmon*/, enquanto para dispositivos reais se localiza e /sys/class/hwmon/hwmon*/device. Um arquivo, Um arquivo localizado de hwmon* ou hwmon*/device irá conter o nome do chip, que corresponderá ao nome do driver de kernel utilizado com ele.
Em cada arquivo ocorre a leitura de valor de um sensor. O padrão de nomenclatura dos arquivos em ambas as localizações é: <type><number>_<item>, onde
A informação sobre os sensores disponíveis no host pode ser obtida usando ferramentas de sensor-detect e sensors (pacote lm-sensors: http://lm-sensors.org/). Sensors-detect ajuda a determinar qual são os módulos necessários para os sensores disponíveis. Quando os módulos são carregados o programa sensors pode ser utilizado para ler todos os chips. O padrão de nomenclatura utilizado pode ser diferente do padrão (<type><number>_<item> ):
Esta nomenclatura permite que o usuário determine qual o tipo de hardware está sendo utilizado. Se não for encontrado o arquivo <type><number>_label ou nenhum rótulo dentro do arquivo de configuração o tipo do hardware poderá ser determinado pelo atributo do nome (hwmon*/device/name). Os nomes atuais dos sensores, que o zabbix_agent aceita, podem ser obtidos através do programa sensors com o parâmetro '-u' (sensors -u).
Com o programa sensor os sensores disponíveis estarão separados pelo tipo "via" (bus) (adaptador ISA, PCI, SPI, dispositivo virtual, interface ACPI, adaptador HID).
(A leitura dos sensores pode ser obtida a partir do diretório /proc/sys/dev/sensors)
Exemplo de chave: sensor[w83781d-i2c-0-2d,temp1]
Antes do Zabbix 1.8.4, o formato sensor[temp1]
era utilizado.
(A leitura dos sensores pode ser obtida a partir do diretório /sys/class/hwmon )
Exemplos 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, assim como o apresentado pelo comando sensors, não pode ser utilizado diretamente pois o padrão de nomenclatura de cada fabricante pode ser diferente. Observe o exemplo de saída do comando sensors apresentado:
$ 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)
Neste exemplo, somente um rótulo pode ser utilizado diretamente:
A tentativa de usar os outros rótulos (como Vcore ou +12V) não funcionarão.
Para descobrir o nome atual de cada sensor, que poderá ser utilizado pelo Zabbix para ler as informações, execute o comando sensors -u. A saída deverá ser algo similar ao exemplo a seguir:
$ 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
...
Logo, Vcore pode ser consultado como in1, e +12V pode ser consultado como in4.1
Não apenas a voltagem (in), mas também a corrente (curr), temperatura (temp) e velocidade do ventilador (fan) podem ser obtidas pelo Zabbix.
conforme a especificação estes são as voltagens nos pinos do chip.↩︎