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.
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.
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:
Descomente-a e defina a contagem de pollers para, por exemplo, 3, para que fique assim:
Salve o arquivo e reinicie o zabbix_server em seguida.
Ao configurar um item no nível do host:
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.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
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.
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:
para alertar sobre um desligamento do servidor.
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.
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.
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.