[comment]: # translation:outdated

[comment]: # ({05069cfc-05069cfc})
# 8 Sensor

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

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

Existe apenas um valor de leitura do sensor por arquivo. O esquema comum de
nomear os arquivos que contêm leituras do sensor dentro de qualquer um dos
diretórios mencionados acima é:
<tipo><número>\_<item>, onde

- **tipo** - para chips de sensor é "in" (tensão), "temp" (temperatura),
    "fan" (ventilador), etc.,
- **item** - "input" (valor medido), "max" (limite alto), "min"
    (limite baixo), etc.,
- **número** - 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 simples
    nome sem número.

As informações sobre os sensores disponíveis no host podem ser adquiridas
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 os sensores disponíveis. Quando os módulos são carregados, o
**sensores** programa pode ser usado para mostrar as leituras de todos os sensores
salgadinhos. A rotulagem das leituras dos sensores, utilizada por este programa, pode ser
diferente do esquema de nomenclatura comum
(<tipo><número>\_<item>):

- se houver um arquivo chamado <type><number>\_label, então
    o rótulo dentro deste arquivo será usado em vez de
    <tipo><número><item> nome;
- 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) para a substituição do nome.

Esta rotulagem permite ao usuário determinar que tipo de hardware é usado. Se
não há arquivo <type><number>\_label nem rótulo dentro
no arquivo de configuração o tipo de hardware pode ser determinado pelo
atributo name (hwmon\*/device/name). Os nomes reais dos sensores, que
zabbix\_agent aceita, pode ser obtido executando o programa **sensors**
com o parâmetro -u (**sensores -u**).

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

[comment]: # ({/05069cfc-05069cfc})

[comment]: # ({61bf6279-61bf6279})
##### 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 Zabbix 1.8.4, o formato `sensor[temp1]` era utilizado.

[comment]: # ({/61bf6279-61bf6279})

[comment]: # ({2e1edda6-2e1edda6})
##### 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\]

[comment]: # ({/2e1edda6-2e1edda6})

[comment]: # ({0cb28aa9-0cb28aa9})
#### 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 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]

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

[^1]: De acordo com
    [especificação](https://www.kernel.org/doc/Documentation/hwmon/sysfs-interface)
    estas são voltagens nos pinos do chip e, de um modo geral, podem precisar
    dimensionamento.

[comment]: # ({/0cb28aa9-0cb28aa9})
