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]
As etiquetas dos sensores, conforme impressas pelo comando sensors, nem sempre podem ser usado diretamente porque a nomenclatura dos rótulos pode ser diferente para cada fornecedor do chip sensor. Por exemplo, a saída de sensores pode conter o seguintes linhas:
$ sensores
in0: +2,24 V (min = +0,00 V, máx = +3,32 V)
Vcore: +1,15 V (mín. = +0,00 V, máx. = +2,99 V)
+3,3 V: +3,30 V (mín. = +2,97 V, máx. = +3,63 V)
+12 V: +13,00 V (mín. = +0,00 V, máx. = +15,94 V)
M/B Temp: +30,0°C (baixo = -127,0°C, alto = +127,0°C)
Destes, 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 recupere as leituras do sensor, execute sensors -u. Na saída, o podem ser observados:
$ sensores -u
...
Vcore:
entrada1_entrada: 1,15
in1_min: 0,00
in1_max: 2,99
in1_alarme: 0,00
...
+12V:
entrada4_entrada: 13,00
em 4_min: 0,00
in4_max: 15,94
in4_alarme: 0,00
...
Portanto, Vcore deve ser consultado como in1 e +12V deve ser consultado como em4.1
Não apenas tensão (in), mas também corrente (curr), temperatura (temp) e as leituras de velocidade do ventilador (ventilador) podem ser recuperadas pelo Zabbix.
De acordo com especificação estas são voltagens nos pinos do chip e, de um modo geral, podem precisar dimensionamento.↩︎