Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página inclui conteúdo traduzido automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

6 Sensor

Visão geral

Cada chip de sensor recebe seu próprio diretório na árvore sysfs /sys/devices. Para encontrar todos os chips de sensores, é mais fácil seguir os links simbólicos de dispositivo a partir de /sys/class/hwmon/hwmon*, onde * é um número real (0,1,2,...).

As leituras dos sensores estão localizadas no diretório /sys/class/hwmon/hwmon*/ para dispositivos virtuais, ou no diretório /sys/class/hwmon/hwmon*/device para dispositivos não virtuais. Um arquivo chamado name, localizado dentro dos diretórios hwmon* ou hwmon*/device, contém o nome do chip, que corresponde ao nome do driver do kernel usado pelo chip do sensor.

Há apenas um valor de leitura do sensor por arquivo. O esquema comum para nomear os arquivos que contêm leituras de sensores dentro de qualquer um dos diretórios mencionados acima é: <type><number>_<item>, onde

  • type - para chips de sensor é "in" (tensão), "temp" (temperatura), "fan" (ventilador), etc.
  • item - "input" (valor medido), "max" (limite superior), "min" (limite inferior), etc.
  • number - sempre usado para elementos que podem estar presentes mais de uma vez (geralmente começa em 1, exceto para tensões que começam em 0). Se os arquivos não se referem a um elemento específico, eles têm um nome simples sem número.

As informações sobre os sensores disponíveis no host podem ser adquiridas usando as ferramentas sensors-detect e sensors (pacote lm-sensors). Sensors-detect ajuda a determinar quais módulos são necessários para os sensores disponíveis. Quando os módulos são carregados, o programa sensors pode ser usado para mostrar as leituras de todos os chips de sensores. A rotulagem das leituras dos sensores, usada por este programa, pode ser diferente do esquema de nomenclatura comum (<type><number>_<item>):

  • se houver um arquivo chamado <type><number>_label, então o rótulo dentro deste arquivo será usado em vez do nome <type><number><item>;
  • se não houver arquivo <type><number>_label, então o programa procura dentro do /etc/sensors.conf (pode ser também /etc/sensors3.conf, ou diferente) pela substituição do nome.

Essa rotulagem permite ao usuário determinar que tipo de hardware está sendo usado. Se não houver arquivo <type><number>_label nem rótulo dentro do arquivo de configuração, o tipo de hardware pode ser determinado pelo atributo name (hwmon*/device/name). Os nomes reais dos sensores, que o zabbix_agent aceita, podem ser obtidos executando o programa sensors com o parâmetro -u (sensors -u).

No programa sensors, os sensores disponíveis são separados pelo tipo de barramento (adaptador ISA, adaptador PCI, adaptador SPI, dispositivo virtual, interface ACPI, adaptador HID).

Obtendo identificadores de sensores

Os rótulos dos sensores, conforme impressos pelo comando sensors, nem sempre podem ser usados diretamente porque a rotulagem varia entre os fornecedores de chips. Por exemplo, a saída do 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)

Desses, apenas um nome de exibição corresponde diretamente a um identificador interno:

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

Tentar usar outros rótulos de exibição (como Vcore ou +12V) não funcionará:

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

Para encontrar o identificador interno do sensor que o Zabbix aceita, execute sensors -u. Na saída, pode-se observar o seguinte:

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

Assim, o rótulo Vcore corresponde ao identificador in1 e +12V corresponde a in4. De acordo com a especificação do kernel hwmon sysfs, essas são tensões nos pinos do chip e, de modo geral, podem precisar de escala.

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

Não apenas a tensão (in), mas também leituras de corrente (curr), temperatura (temp) e velocidade do ventilador (fan) podem ser recuperadas pelo Zabbix.

Compatibilidade

Distribuições legadas

As leituras dos sensores são obtidas do diretório /proc/sys/dev/sensors:

  • device - nome do dispositivo (se <mode> for usado, é uma expressão regular)
  • sensor - nome do sensor (se <mode> for usado, é uma expressão regular)
  • mode - valores possíveis: avg, max, min (se este parâmetro for omitido, device e sensor são tratados literalmente)

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

Distribuições atuais

As leituras dos sensores são obtidas do diretório /sys/class/hwmon:

  • device - nome do dispositivo (não é uma expressão regular). O nome do dispositivo pode ser o nome real do dispositivo (por exemplo, 0000:00:18.3) ou o nome adquirido usando o programa de sensores (por exemplo, k8temp-pci-00c3). Cabe ao usuário escolher qual nome usar.
  • sensor - nome do sensor (não é uma expressão regular).
  • mode - valores possíveis: avg, max, min (se este parâmetro for omitido, o dispositivo e o sensor são tratados literalmente).

Exemplos de chaves:

sensor[k8temp-pci-00c3,temp,max] ou sensor[0000:00:18.3,temp1].

sensor[smsc47b397-isa-0880,in,avg] ou sensor[smsc47b397.2176,in1].