Áú»¢¶Ä²©

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 os nomes de sensores

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:

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

A tentativa de usar os outros r¨®tulos (como Vcore ou +12V) n?o funcionar?o.

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

Para descobrir o nome atual de cada sensor, que poder¨¢ ser utilizado pelo Áú»¢¶Ä²© 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

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

N?o apenas a voltagem (in), mas tamb¨¦m a corrente (curr), temperatura (temp) e velocidade do ventilador (fan) podem ser obtidas pelo Áú»¢¶Ä²©.


  1. conforme a estes s?o as voltagens nos pinos do chip.??