This is a translation of the original English documentation page. Help us make it better.

4 IPMIチェック

概要

ZabbixでIPMI(Intelligent Platform Management Interface)デバイスの健全性と可用性を監視することができます。
PMIチェックを行うにはZabbix server の 初期configuredでIPMIをサポートしている必要があります。

IPMIはリモートで "lights-out"(電源断) または "out-of-band" 管理を行うための標準化されたインタフェースです。
いわゆる"out-of-band" 管理カードから直接ハードウェアの状態を監視することができます。
OSやマシンの電源の有無に関係なく、いわゆる"out-of-band" 管理カードから直接ハードウェアの状態を監視することができます。

Zabbix IPMI監視は、IPMIをサポートするデバイス(HP iLO、DELL DRAC、IBM RSA、Sun SSPなど)にのみ対応しています。

Zabbix 3.4以降、IPMIポーラーによるIPMIチェックをスケジュールするための新しいIPMIマネージャプロセスが追加されました。
これにより、ホストは常に一度に1つのIPMIポーラーによってポーリングされ、BMCコントローラへのオープン接続数を減らすことができます。
IPMIポーラーの数を増やしても、BMCコントローラーの過負荷を心配する必要はありません。
IPMIマネージャープロセスは、少なくとも1つのIPMIポーラーが起動すると自動的に開始されます。

IPMI チェックについては、known issues も参照してください。

設定

ホストの設定

IPMI チェックを処理するために、ホストを設定する必要があります。
IPMI インターフェイスをを追加し、それぞれの IPアドレス およびポート番号を指定し、IPMI 認証パラメーターを定義する必要があります。

詳細は、configuration of hosts を参照してください。

Server の設定

デフォルトでは、ZabbixサーバはIPMIポーラーを起動するように設定されていないため、IPMIアイテムを追加しても動作しません。
これを変更するには、Zabbixサーバ設定ファイル(zabbix_server.conf) を root ユーザで開き、
次の行を探します。

# StartIPMIPollers=0

この行をアンコメントし、ポーラー数を 3 に設定すると、次のようになります。

StartIPMIPollers=3

ファイルを保存し、その後 zabbix_server を再起動します。

item の設定

ホストレベルでconfiguring an itemを行う場合:

  • Typeとして 'IPMIエージェント' を選択します。
  • ホスト内で一意である item key (例えば、ipmi.fan.rpm)を入力します。
  • Host interface には、関連するIPMIインターフェース(IPアドレスおよびポート番号)を選択します。 IPMIインターフェースはホスト上に存在する必要があることに注意してください。
  • IPMI センサー* (Dell Poweredge の 'FAN MOD 1A RPM' など) からメトリックを取得するように指定します。 デフォルトでは、センサー IDを指定する必要があります。接頭辞を使用することも可能です。
    • id: - センサーの ID を指定します。
    • name: - センサーのフルネームを指定します。 これは、フルネームを指定することによってのみセンサを区別できる場合に役立ちます。
  • それぞれの情報の種類を選択します(この場合は、'Numeric (float)' ディスクリートセンサーの場合は'Numeric (unsigned)')、単位(多くの場合'rpm')、およびその他の必要な項目属性を選択します。
対応チェック

次の表では、IPMIエージェントチェックでサポートされる組み込みアイテムについて説明します。

アイテムキー
説明 戻り値 コメント
ipmi.get
IPMI-sensor関連の情報。 JSONオブジェクト このアイテムはIPMIセンサーの検出に使用できます。
Zabbix 5.0.0からサポートしています。

タイムアウトとセッションの終了

PMIメッセージのタイムアウトとリトライ回数は、OpenIPMIライブラリで定義されています。
現在のOpenIPMIの設計上、Zabbixでこれらの値をインターフェイスや item レベルで設定することはできません。

LANのIPMIセッションの非アクティブ時のタイムアウトは60±3秒です。
現在のところ、OpenIPMIで定期的な Activate Session コマンドの定期的な送信を実装することはできません。
BMCで設定されたセッションタイムアウト時間以上、Zabbixから特定のBMCへのIPMI item のチェックがない場合
タイムアウト後の次のIPMIチェックは、個々のメッセージのタイムアウト、再試行、または受信エラーによりタイムアウトします。
その後、新しいセッションが開かれ、BMC の完全な再スキャンが開始されます。
もし、BMC の不要な再スキャンを回避するには、IPMI itemポーリング間隔をBMC で設定された
IPMI セッション非活動時限よりも短く設定することをお勧めします。

IPMIディスクリートセンサに関する注意事項

ホスト上のセンサーを見つけるには、DebugLevel=4を有効にして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'

IPMIセンサーの種類と状態を解読するには、IPMI 2.0の仕様書を入手してください。
http://www.intel.com/content/www/us/en/servers/ipmi/ipmi-specifications.html
(執筆時点では最新のドキュメントは
http://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/second-gen-interface-spec-v2.pdf)

最初に始めるパラメータは "reading_type "です。
仕様書の "表42-1,Event/Reading Type Code Ranges"を使用し、"reading_type "コードをデコードします。
この例では、ほとんどのセンサーが"reading_type:0x1" で、"threshold" センサーを意味します。
"表 42-3, Sensor Type Codes "によると、"type:0x1" は温度センサー、"type:0x2" は電圧センサー、"type:0x3" は温度センサー、
"type:0x4"はファンなどです。閾値センサは、温度、電圧、回転数などの連続的なパラメータを測定するため、
"アナログ" センサーと呼ばれることもあります。

別の例として、"reading_type:0x3 "のセンサー
"表42-1,Event/Reading Type Code Ranges "によると、読み取りタイプコード02h-0Chは、
"Generic Discrete "センサーを意味します。ディスクリート・センサは、最大15個の状態
(言い換えれば、最大15個の意味のあるビット)があります。例えばセンサー'CATERR'の場合、
"type:0x7 "は "表 42-3 , Sensor Type Codes"に示されています。このタイプは "プロセッサ "を意味し、
ビットの意味は次のとおりです。00h(最下位ビット) - IERR、01h - サーマルトリップなど。

この例では、"reading_type:0x6f "を持つセンサーはほとんどありません。
これらのセンサーの場合、"表42-1,Event/Reading Type Code Ranges"は、
ビットの意味を解読するために、"表42-3、センサータイプコード" を使用するように助言しています。
例えば、センサー "Power Unit Stat" のタイプは "type:0x9" であり、"Power Unit"を意味します。
オフセット00hは "PowerOff/Power Down" を意味します。つまり、最下位ビットが1であれば
サーバーの電源がオフになっていることを意味します。このビットをテストするには
マスクが'1'のbitand 関数を使用することができます。
トリガ式は次のようになります。

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

これはサーバの電源オフを警告します。

OpenIPMI-2.0.16, 2.0.17, 2.0.18, 2.0.19 のディスクリートセンサーの名前に関する注意事項

OpenIPMI-2.0.16, 2.0.17, 2.0.18 のディスクリートセンサーの名前には"0" (または他の数字や文字) を
末尾に付加していることがよくあります。
例えば、ipmitool と OpenIPMI-2.0.19 では、センサーの名前は "PhysicalSecurity" や "CATERR" のように表示されます。
OpenIPMI-2.0.16, 2.0.17, 2.0.18 では "PhysicalSecurity0" または "CATERR0" と表示されます。

OpenIPMI-2.0.16、2.0.17、2.0.18を使用してZabbixサーバでIPMI item を設定する場合、
IPMIエージェントアイテムのIPMI sensorフィールドにこれらの名前を0として使用してください。
ZabbixサーバをOpenIPMI-2.0.19(またはそれ以降)を使用する新しいLinuxディストリビューションにアップグレードした場合、
これらのIPMIセンサーのアイテムは「NOT SUPPORTED」になります。そのため
IPMIセンサー名を変更し(末尾の'0'を削除)、再び "Enabled "になる前に、しばらく待つ必要があります。

閾値とディスクリートセンサーの同時使用に関する注意事項

いくつかのIPMIエージェントは、閾値センサーとディスクリートセンサーを同じ名前で提供しているものがあります。
2.2.8および2.4.3より前のバージョンのZabbixでは、最初に提供されたセンサーが選択されます。
バージョン2.2.8と2.4.3以降では、常に閾値センサーが優先されます。

接続終了時の注意事項

IPMIチェックが行われなかった場合(何らかの理由: ホストのIPMI項目が全て無効/サポートされていない、
ホストが無効/削除された、ホストがメンテナンス中であるなど)
Zabbix server / proxy を起動した時間に応じて3~4時間後にZabbix server / proxy からIPMI接続が切断されます。