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

4 Verificações IPMI

Visão geral

Você pode monitorar a integridade e disponibilidade de dispositivos IPMI (Intelligent Platform Management Interface) no Zabbix. Para realizar verificações IPMI, o Zabbix server deve ser inicialmente configurado 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 se a máquina está 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 IPMI agenda as verificações IPMI para os pollers IPMI. Um host é sempre consultado por apenas um poller IPMI por vez, reduzindo o número de conexões abertas aos controladores BMC. Assim, é seguro aumentar o número de pollers IPMI sem se preocupar com a sobrecarga do controlador BMC. O processo gerenciador IPMI é iniciado automaticamente quando pelo menos um poller IPMI é iniciado.

Veja também problemas conhecidos para verificações IPMI.

Configuração

Configuração de 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 para mais detalhes.

Configuração do server

Por padrão, o server Zabbix não está configurado para iniciar nenhum poller IPMI, portanto, quaisquer items IPMI adicionados não funcionarão. Para alterar isso, abra o arquivo de configuração do server Zabbix (zabbix_server.conf) 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.

Configuração de item

Ao configurar um item no nível do host:

  • Selecione 'IPMI agent' como o Tipo
  • Insira uma chave 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 distinguidos 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
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.
Valor de retorno: objeto JSON

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

Notas sobre sensores discretos IPMI

Para encontrar sensores em um host, inicie o Zabbix server com DebugLevel=4 habilitado. Aguarde alguns minutos e encontre os 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 está disponível (observe que não estão previstos mais updates para a especificação IPMI).

O primeiro parâmetro para começar é "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 de "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 de 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 os 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 com máscara '1' pode ser usada. A expressão do trigger pode ser assim:

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

para alertar sobre um desligamento do servidor.

Notas sobre nomes de sensores discretos no OpenIPMI-2.0.16, 2.0.17, 2.0.18 e 2.0.19

Nomes de 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 ipmitool e OpenIPMI-2.0.19 exibem nomes de 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 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 usa OpenIPMI-2.0.19 (ou posterior), os itens com esses sensores discretos IPMI se tornarão "NÃO SUPORTADO". Você deve alterar os nomes desses IPMI sensor (remover o '0' no final) e aguardar por algum tempo até que eles se tornem "Habilitados" novamente.

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

Notas sobre o término 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.