4 IPMIチェック

概要

Zabbix では、Intelligent Platform Management Interface(IPMI)デバイスの健全性と可用性を監視できます。IPMI チェックを実行するには、事前に Zabbix サーバーを IPMI サポート付きで設定しておく必要があります。

IPMI は、コンピューターシステムのリモート「lights-out」管理または「out-of-band」管理のための標準化されたインターフェースです。これにより、オペレーティングシステムやマシンの電源状態に関係なく、いわゆる「out-of-band」管理カードからハードウェアの状態を直接監視できます。

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

IPMI マネージャープロセスは、IPMI ポーラーによる IPMI チェックをスケジュールします。
1 台のホストは、常に同時に 1 つの IPMI ポーラーによってのみポーリングされるため、BMC コントローラーへのオープン接続数が削減されます。したがって、BMC コントローラーの過負荷を心配することなく、IPMI ポーラーの数を安全に増やすことができます。少なくとも 1 つの IPMI ポーラーが起動されると、IPMI マネージャープロセスは自動的に起動します。

IPMI チェックについては、既知の問題も参照してください。

設定

ホストの設定

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センサー関連の情報を返す組み込みアイテム ipmi.get をサポートしており、IPMIセンサーのディスカバリ に使用できます。
戻り値: JSON object

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

IPMIメッセージのタイムアウトおよび再試行回数は、OpenIPMIライブラリで定義されています。 OpenIPMIの現在の設計上、これらの値をZabbixで設定可能にすることはできず、 インターフェースレベルでもアイテムレベルでも設定できません。

LAN向けのIPMIセッション非アクティブタイムアウトは60 +/-3秒です。現在、 OpenIPMIではActivate Sessionコマンドを定期的に送信する仕組みを実装できません。 特定のBMCに対して、BMCで設定されたセッションタイムアウトより長い間、Zabbixからの IPMIアイテムチェックが行われなかった場合、タイムアウト経過後の次回のIPMIチェックは、 個々のメッセージタイムアウト、再試行、または受信エラーによりタイムアウトします。 その後、新しいセッションが開かれ、BMCの完全な再スキャンが開始されます。新しい セッションを管理するために、新しいUDPポートが開かれる場合があります。非アクティブ状態とは、 送信要求と受信応答の両方が存在しない状態として定義されます。BMCの不要な再スキャンを 避けたい場合は、IPMIアイテムのポーリング間隔を、BMCで設定されたIPMIセッション 非アクティブタイムアウトより短く設定することを推奨します。

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

ホスト上のセンサーを見つけるには、DebugLevel=4 を有効にして Zabbix サーバーを起動します。数分待ってから、Zabbix サーバーのログファイルでセンサー検出レコードを確認します。

$ 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 specifications のコピーを利用できます(IPMI 仕様については、今後これ以上の更新は予定されていない 点に注意してください)。

最初に確認すべきパラメータは "reading_type" です。仕様書の "Table 42-1, Event/Reading Type Code Ranges" を使用して "reading_type" コードをデコードします。今回の例にあるセンサーの多くは "reading_type:0x1" で、これは "threshold" センサーを意味します。"Table 42-3, Sensor Type Codes" では、"type:0x1" は温度センサー、"type:0x2" は電圧センサー、"type:0x4" はファンなどを意味することが示されています。しきい値センサーは、温度、電圧、毎分回転数のような連続的なパラメータを測定するため、"analog" センサーと呼ばれることもあります。

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

今回の例には "reading_type:0x6f" のセンサーもいくつかあります。これらのセンサーについては、"Table 42-1, Event/Reading Type Code Ranges" で、ビットの意味をデコードするために "Table 42-3, Sensor Type Codes" を使用するよう案内されています。たとえば、'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エージェントでは、同じ名前でしきい値センサーとディスクリートセンサーの両方が提供されます。
常にしきい値センサーが優先されます。

接続終了時の注意事項

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