[comment]: # ({8402b962-52403269})
# 10 IPMI agent

[comment]: # ({/8402b962-52403269})

[comment]: # ({cf103984-2f30e610})
#### Visão geral

Você pode monitorar a integridade e a disponibilidade de dispositivos Intelligent Platform
Management Interface (IPMI) no Zabbix. Para executar verificações de IPMI,
o Zabbix server deve ser inicialmente
[configurado](/manual/installation/install#configure-the-sources) com
suporte a IPMI.

IPMI é uma interface padronizada para gerenciamento remoto "lights-out" ou
"out-of-band" de sistemas computacionais. Ela permite monitorar o status
do hardware diretamente das chamadas placas de gerenciamento "out-of-band",
independentemente do sistema operacional ou de a máquina estar
ligada.

O monitoramento IPMI do Zabbix funciona apenas para dispositivos com suporte a IPMI (HP
iLO, DELL DRAC, IBM RSA, Sun SSP etc.).

Um processo gerenciador de IPMI agenda as verificações de IPMI por pollers de IPMI. 
Um host é sempre consultado por apenas um poller de IPMI por vez, 
reduzindo o número de conexões abertas com os controladores
BMC. Assim, é seguro aumentar o número de pollers de IPMI
sem se preocupar com a sobrecarga dos controladores BMC. O processo gerenciador de IPMI
é iniciado automaticamente quando pelo menos um poller de IPMI
é iniciado.

Veja também os [problemas conhecidos](/manual/installation/known_issues#ipmi-checks)
para verificações de IPMI.

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

[comment]: # ({5d32b87c-5d32b87c})
#### Configuração

[comment]: # ({/5d32b87c-5d32b87c})

[comment]: # ({4f35db5e-4f35db5e})
##### Configuração do host

Um host deve ser configurado para processar verificações IPMI. Uma interface IPMI deve ser adicionada, com os respectivos números de IP e porta, e os parâmetros de autenticação IPMI devem ser definidos.

Consulte a [configuração de hosts](/manual/config/hosts/host) para obter mais detalhes.

[comment]: # ({/4f35db5e-4f35db5e})

[comment]: # ({f7bb9e76-f7bb9e76})
##### Configuração do servidor

Por padrão, o servidor Zabbix não está configurado para iniciar nenhum poller IPMI, portanto, quaisquer itens IPMI adicionados não funcionarão. Para alterar isso, abra o arquivo de configuração do servidor Zabbix ([zabbix\_server.conf](/manual/appendix/config/zabbix_server)) como root e procure a seguinte linha:

    # StartIPMIPollers=0

Descomente-a e defina a contagem de pollers para, por exemplo, 3, para que fique assim:

    StartIPMIPollers=3

Salve o arquivo e reinicie o zabbix\_server em seguida.

[comment]: # ({/f7bb9e76-f7bb9e76})

[comment]: # ({b0db4658-b0db4658})
##### Configuração de item

Ao [configurar um item](/manual/config/items/item) no nível do host:

-   Selecione 'IPMI agent' como o *Tipo*
-   Insira uma [chave](/manual/config/items/item/key) de item que seja única dentro do host (por exemplo, ipmi.fan.rpm)
-   Para *Interface do host*, selecione a interface IPMI relevante (IP e porta). Observe que uma interface IPMI deve existir no host.
-   Especifique o *Sensor IPMI* (por exemplo, 'FAN MOD 1A RPM' em um Dell Poweredge) de onde a métrica será obtida. Por padrão, o ID do sensor deve ser especificado. Também é possível usar prefixos antes do valor:
    -   `id:` - para especificar o ID do sensor;
    -   `name:` - para especificar o nome completo do sensor. Isso pode ser útil em situações em que os sensores só podem ser diferenciados especificando o nome completo.
-   Selecione o respectivo tipo de informação ('Numérico (float)' neste caso; para sensores discretos - 'Numérico (sem sinal)'), unidades (provavelmente 'rpm') e quaisquer outros atributos de item necessários

[comment]: # ({/b0db4658-b0db4658})

[comment]: # ({20080418-af2b187b})
##### Verificações suportadas

O agent IPMI suporta o item interno **ipmi.get**, que retorna informações relacionadas ao sensor IPMI e pode ser usado para a [descoberta de sensores IPMI](/manual/discovery/low_level_discovery/examples/ipmi_sensors#overview).<br>
Valor de retorno: *objeto JSON*

[comment]: # ({/20080418-af2b187b})

[comment]: # ({e085a816-1e03516a})
#### Tempo limite e término da sessão

Os tempos limite de mensagens IPMI e as contagens de tentativas são definidos na biblioteca OpenIPMI.
Devido ao design atual do OpenIPMI, não é possível tornar esses
valores configuráveis no Zabbix, nem no nível da interface nem no nível do item.

O tempo limite de inatividade da sessão IPMI para LAN é de 60 +/-3 segundos. Atualmente,
não é possível implementar o envio periódico do comando Activate Session
com o OpenIPMI. Se não houver verificações de item IPMI do Zabbix para um
BMC específico por mais tempo do que o tempo limite de sessão configurado no BMC, então
a próxima verificação IPMI após o tempo limite expirar irá expirar devido a
tempos limite de mensagens individuais, tentativas ou erro de recebimento. Após isso, uma nova
sessão é aberta e uma nova varredura completa do BMC é iniciada. Uma nova porta UDP
pode ser aberta para gerenciar a nova sessão. A inatividade é definida pela
ausência de solicitações de saída e respostas de entrada. Se você quiser
evitar varreduras desnecessárias do BMC, é aconselhável definir o intervalo de coleta do item IPMI
abaixo do tempo limite de inatividade da sessão IPMI configurado no BMC.

[comment]: # ({/e085a816-1e03516a})

[comment]: # ({e74a6a61-3ea36861})
#### Notas sobre sensores discretos IPMI

Para encontrar sensores em um host, inicie o Zabbix server com **DebugLevel=4**
habilitado. Aguarde alguns minutos e encontre registros de descoberta de sensores no arquivo de log do Zabbix server:

    $ grep 'Added sensor' zabbix_server.log
    8358:20130318:111122.170 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:7 id:'CATERR' reading_type:0x3 ('discrete_state') type:0x7 ('processor') full_name:'(r0.32.3.0).CATERR'
    8358:20130318:111122.170 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:15 id:'CPU Therm Trip' reading_type:0x3 ('discrete_state') type:0x1 ('temperature') full_name:'(7.1).CPU Therm Trip'
    8358:20130318:111122.171 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:17 id:'System Event Log' reading_type:0x6f ('sensor specific') type:0x10 ('event_logging_disabled') full_name:'(7.1).System Event Log'
    8358:20130318:111122.171 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:17 id:'PhysicalSecurity' reading_type:0x6f ('sensor specific') type:0x5 ('physical_security') full_name:'(23.1).PhysicalSecurity'
    8358:20130318:111122.171 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:14 id:'IPMI Watchdog' reading_type:0x6f ('sensor specific') type:0x23 ('watchdog_2') full_name:'(7.7).IPMI Watchdog'
    8358:20130318:111122.171 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:16 id:'Power Unit Stat' reading_type:0x6f ('sensor specific') type:0x9 ('power_unit') full_name:'(21.1).Power Unit Stat'
    8358:20130318:111122.171 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:16 id:'P1 Therm Ctrl %' reading_type:0x1 ('threshold') type:0x1 ('temperature') full_name:'(3.1).P1 Therm Ctrl %'
    8358:20130318:111122.172 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:16 id:'P1 Therm Margin' reading_type:0x1 ('threshold') type:0x1 ('temperature') full_name:'(3.2).P1 Therm Margin'
    8358:20130318:111122.172 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:13 id:'System Fan 2' reading_type:0x1 ('threshold') type:0x4 ('fan') full_name:'(29.1).System Fan 2'
    8358:20130318:111122.172 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:13 id:'System Fan 3' reading_type:0x1 ('threshold') type:0x4 ('fan') full_name:'(29.1).System Fan 3'
    8358:20130318:111122.172 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:14 id:'P1 Mem Margin' reading_type:0x1 ('threshold') type:0x1 ('temperature') full_name:'(7.6).P1 Mem Margin'
    8358:20130318:111122.172 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:17 id:'Front Panel Temp' reading_type:0x1 ('threshold') type:0x1 ('temperature') full_name:'(7.6).Front Panel Temp'
    8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:15 id:'Baseboard Temp' reading_type:0x1 ('threshold') type:0x1 ('temperature') full_name:'(7.6).Baseboard Temp'
    8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:9 id:'BB +5.0V' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +5.0V'
    8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:14 id:'BB +3.3V STBY' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +3.3V STBY'
    8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:9 id:'BB +3.3V' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +3.3V'
    8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:17 id:'BB +1.5V P1 DDR3' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +1.5V P1 DDR3'
    8358:20130318:111122.173 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:17 id:'BB +1.1V P1 Vccp' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +1.1V P1 Vccp'
    8358:20130318:111122.174 Added sensor: host:'192.168.1.12:623' id_type:0 id_sz:14 id:'BB +1.05V PCH' reading_type:0x1 ('threshold') type:0x2 ('voltage') full_name:'(7.1).BB +1.05V PCH'

Para decodificar tipos e estados de sensores IPMI, uma cópia das 
[especificações IPMI 2.0](https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmi-second-gen-interface-spec-v2-rev1-1.pdf)
 está disponível (observe que [não estão previstos novos updates](http://www.intel.com/content/www/us/en/servers/ipmi/ipmi-specifications.html)
 para a especificação IPMI).

O primeiro parâmetro a ser analisado é "reading\_type". Use a "Tabela 42-1,
Event/Reading Type Code Ranges" das especificações para decodificar o código "reading\_type". A maioria dos sensores em nosso exemplo tem
"reading\_type:0x1", o que significa sensor "threshold". A "Tabela 42-3, Sensor
Type Codes" mostra que "type:0x1" significa sensor de temperatura, "type:0x2" -
sensor de voltagem, "type:0x4" - Fan, etc. Sensores threshold às vezes são
chamados de sensores "analógicos", pois medem parâmetros contínuos como
temperatura, voltagem, rotações por minuto.

Outro exemplo - um sensor com "reading\_type:0x3". A "Tabela 42-1,
Event/Reading Type Code Ranges" diz que códigos de tipo de leitura 02h-0Ch
significam sensor "Generic Discrete". Sensores discretos têm até 15 possíveis
estados (em outras palavras - até 15 bits significativos). Por exemplo, para o
sensor 'CATERR' com "type:0x7", a "Tabela 42-3, Sensor Type Codes"
mostra que esse tipo significa "Processor" e o significado dos bits individuais é: 00h (o bit menos significativo) - IERR, 01h - Thermal Trip, etc.

Há alguns sensores com "reading\_type:0x6f" em nosso exemplo. Para
esses sensores, a "Tabela 42-1, Event/Reading Type Code Ranges" recomenda
usar a "Tabela 42-3, Sensor Type Codes" para decodificar o significado dos bits.
Por exemplo, o sensor 'Power Unit Stat' tem o tipo "type:0x9", que significa
"Power Unit". O offset 00h significa "PowerOff/Power Down". Em outras palavras, se
o bit menos significativo for 1, então o servidor está desligado. Para testar esse
bit, a função [``bitand``](/manual/appendix/functions/bitwise#bitand) com
máscara '1' pode ser usada. A expressão do trigger pode ser como

    bitand(last(/www.example.com/Power Unit Stat,#1),1)=1

para avisar sobre um desligamento do servidor.

[comment]: # ({/e74a6a61-3ea36861})

[comment]: # ({761eb9da-761eb9da})
##### Notas sobre nomes de sensores discretos no OpenIPMI-2.0.16, 2.0.17, 2.0.18 e 2.0.19

Os nomes dos sensores discretos no OpenIPMI-2.0.16, 2.0.17 e 2.0.18 frequentemente têm um "`0`" adicional (ou algum outro dígito ou letra) adicionado ao final. Por exemplo, enquanto o `ipmitool` e o OpenIPMI-2.0.19 exibem os nomes dos sensores como "`PhysicalSecurity`" ou "`CATERR`", no OpenIPMI-2.0.16, 2.0.17 e 2.0.18 os nomes são "`PhysicalSecurity0`" ou "`CATERR0`", respectivamente.

Ao configurar um item IPMI com o Zabbix server usando o OpenIPMI-2.0.16, 2.0.17 e 2.0.18, use esses nomes terminados com "0" no campo *IPMI sensor* dos itens do agente IPMI. Quando seu Zabbix server for atualizado para uma nova distribuição Linux, que utiliza o OpenIPMI-2.0.19 (ou posterior), os itens com esses sensores discretos IPMI se tornarão "NÃO SUPORTADOS". Você deve alterar os nomes dos *IPMI sensor* (remover o '0' no final) e aguardar algum tempo até que eles voltem a ficar "Habilitados".

[comment]: # ({/761eb9da-761eb9da})

[comment]: # ({01ffa3dc-2adee003})
##### Observações sobre a disponibilidade simultânea de sensores de limite e sensores discretos

Alguns agents IPMI fornecem tanto um sensor de limite quanto um sensor discreto
com o mesmo nome. A preferência é sempre dada ao sensor de limite.

[comment]: # ({/01ffa3dc-2adee003})

[comment]: # ({69164d8f-69164d8f})
##### Observações sobre a terminação da conexão

Se as verificações IPMI não forem realizadas (por qualquer motivo: todos os itens IPMI do host desativados/não suportados, host desativado/excluído, host em manutenção, etc.), a conexão IPMI será encerrada pelo Zabbix server ou proxy em 3 a 4 horas, dependendo do momento em que o Zabbix server/proxy foi iniciado.

[comment]: # ({/69164d8f-69164d8f})
