Áú»¢¶Ä²©

7 Sensores

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

  • type - para chips sensores ¨¦ "in" (voltagem), "temp" (temperatura), "fan" (fan), etc.,
  • item - "input" (valor medido), "max" (limite m¨¢ximo), "min" (limite m¨ªnimo), etc.,
  • number - ¨¦ sempre utilizado para elementos que podem aparecer mais de uma vez (normalmente come?am com '1', exceto para voltagens que come?am com '0'). Se os arquivos n?o se referem a um elemento espec¨ªfico ent?o eles ter?o o nome sem o n¨²mero.

A informa??o sobre os sensores dispon¨ªveis no host pode ser obtida usando ferramentas de sensor-detect e sensors (pacote lm-sensors: ). 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> ):

  • se n?o tiver um arquivo chamado <type><number>_label, ent?o o r¨®tulo dentro do arquivo ser¨¢ utilizado ao inv¨¦s de <type><number><item> ;
  • se n?o existir o arquivo <type><number>_label, ent?o o programa ir¨¢ procurar dentro de '/etc/sensors.conf' (tamb¨¦m pode ser em /etc/sensors3.conf, ou outro) pelo substituto do nome.

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).

No Linux 2.4:

(A leitura dos sensores pode ser obtida a partir do diret¨®rio /proc/sys/dev/sensors)

  • device - nome do dispositivo (se o <mode> for utilizado, ser¨¢ uma express?o regular);
  • sensor - nome do sensor (se o <mode> for utilizado, ser¨¢ uma express?o regular);
  • mode - valores poss¨ªveis: avg, max, min (se este par?metro for omitido o dispositivo e o sensor ser?o tratados de forma textual).

Exemplo de chave: sensor[w83781d-i2c-0-2d,temp1]

Antes do Áú»¢¶Ä²© 1.8.4, o formato sensor[temp1] era utilizado.

No Linux 2.6+:

(A leitura dos sensores pode ser obtida 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 atual do dispositivo (ex. 0000:00:18.3) ou o nome obtido usando os programas de sensor (ex.. k8temp-pci-00c3). Cabe ao usu¨¢rio escolher qual nome utilizar;
  • sensor - nome do sensor (express?o n?o regular);
  • mode - valores poss¨ªveis: avg, max, min (se este par?metro for omitido o dispositivo e o sensor ser?o tratados de forma textual).

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]

Obtendo nomes de sensores

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:

$ zabbix_get -s 127.0.0.1 -k sensor[lm85-i2c-0-2e,in0]
       2,240000

Tentar usar outros r¨®tulos (como Vcore ou +12V) n?o funcionar¨¢.

$ zabbix_get -s 127.0.0.1 -k sensor[lm85-i2c-0-2e,Vcore]
       ZBX_NOTSUPPORTED

Para descobrir o nome real do sensor, que pode ser usado pelo Áú»¢¶Ä²© 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

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

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 Áú»¢¶Ä²©.


  1. De acordo com estas s?o voltagens nos pinos do chip e, de um modo geral, podem precisar dimensionamento.??