7 Sensor

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

As leituras dos sensores estão localizados no diretório /sys/class/hwmon/hwmon* para dispositivos virtuais, ou em /sys/class/hwmon/hwmon* para dispositivos não-virtuais. Um arquivo, chamada name, localizado dentro de hwmon* ou diretórios hwmon*/dispositivo contém o nome do chip, o que corresponde ao nome do driver de kernel utilizado pelo chip sensor.

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

 * ** Tipo ** - para chips sensores é "in" (tensão), "temp" (temperatura), "fan" (ventilador), etc.,
        * ** Artigo ** - "input" (valor medido), "max" (alto limiar), "min" (baixo limiar), etc.,
        * ** Número ** - sempre usado para elementos que podem estar presentes mais de uma vez (em geral começa a partir de 1, exceto para as tensões que se iniciam a partir de 0). Se os arquivos não se referem a um elemento específico eles têm um nome simples, sem número.

A informação sobre sensores disponíveis no host pode ser obtida usando as ferramentas sensor-detect e sensors (pacote lm-sensors: http://lm-sensors.org/). Sensors-detect ajuda a determinar quais módulos são necessários para sensores disponíveis. Quando os módulos são carregados o programa sensors pode ser usado para mostrar todas as leituras de chips sensores. A rotulagem de leituras dos sensores, usado por este programa, pode ser diferente do esquema de nomenclatura comum (<tipo><numero>_<item>):

 * Se houver um arquivo chamado <tipo><numero>_rotulo, então o rótulo dentro deste arquivo será usado ao invés do nome <tipo><numero><item>;
        * Se não houver um arquivo <tipo><número>_rotilo, então o programa procurará dentro de /etc/sensors.conf (pode ser também /etc/sensors3.conf, ou diferente) para a substituiçao de nome.

Esta rotulagem permite ao usuário determinar que tipo de hardware é usado. Se não há nem um arquivo <tipo><número>_rótulo nem rótulo dentro do arquivo de configuração, o tipo de hardware pode ser determinado pelo atributo nome (hwmon*/dispositivo/name). Os nomes reais dos sensores, aceitos pelo agente Zabbix, podem ser obtidos executando o programa sensors com o parâmetro -u (sensors -u).

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

No Linux 2.4:

(As leituras dos sensores são obtidas a partir do diretório /proc/sys/dev/sensors)

 * ** ** Dispositivo - o nome do dispositivo (se <mode> é usado, ele é uma expressão regular);
        * ** ** Sensor - nome sensor (se <mode> é usado, ele é uma expressão regular);
        * ** Modo ** - Valores possíveis: avg, max, min (se este parâmetro for omitido, o dispositivo eo sensor são tratados verbatim).

Chave Exemplo: Sensor [w83781d-i2c-0-2d, temp1]

Antes do Zabbix 1.8.4, o formato sensor[temp1] era utilizado.

No Linux 2.6 +:

(As leituras dos sensores são obtidas 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 real do dispositivo (por exemplo, 0000:00:18.3) ou o nome adquirido através do programa sensors (eg k8temp-pci-00c3). Cabe ao usuário escolher qual nome a ser usado;
        * **sensor** - nome sensor (expressão não regular);
        * **mode** - Valores possíveis: avg, max, min (se este parâmetro for omitido, o dispositivo e o sensor são tratados verbatim).

Chave Exemplo:

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 dos sensores

Rótulos de sensores, como impressos pelo comando // sensors //, nem sempre pode pode ser utilizado diretamente porque a nomenclatura de etiquetas pode ser diferente para cada fornecedor de chip sensor. Por exemplo, a saída de // 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)

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

A tentativa de usar outros rótulos (como // Vcore // ou // + 12V //) não vai 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 Zabbix para recuperar as leituras dos sensores, execute // sensores -u// . Na saída, o seguinte pode ser observado:

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

Então // Vcore // deve ser consultado como // in1 // e // + 12V // deve ser consultado como // in4 //.

 $ zabbix_get -s 127.0.0.1 -k Sensor [LM85-i2c-0-2e, in1]
        1.301000

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