仮想環境監視

RHEV

Red Hat Enterprise Virtualization (RHEV) は、RedHat を利用するデータセンター企業で使われている仮想化技術の一つです。Pandora FMS は、RHEV Monitoring Plugin というプラグインを通してRHEV を使った仮想アーキテクチャをモニタすることができます。これは、簡単に RHEV の仮想アーキテクチャに関連するすべての値を制御することができます。

監視するアーキテクチャ

  • データセンター.
  • ホストクラスタ.
  • ストレージドメイン.
  • ネットワーク.
  • ホスト.
  • 仮想マシン.

これを実現するために、Pandora では RHEV 仮想化システムによって公式に提供されている API を利用しています。

RHEV モニタリングプラグインでのモニタリング

仮想マシンにインストールされているオペレーティングシステムを監視するには、RHEV API の代わりに Pandora FMS エージェントを使用することをお勧めします。

RHEV 環境のモニタリングは、以下のコンポーネントに基づいています。

  1. 自動検出動作を行うエージェントプラグインとデータ収集タスク。このエージェントプラグインは、Pandora FMS へ情報を送信します。
  2. 検出したいくつかのパラメータを更新する自動検出スクリプト。このスクリプトは、「拡張」のために必要です。
  3. RHEV View および RHEV Manager 拡張。これらは、プラグインに機能追加し、Pandora FMS のコンソールからインフラのモニタリングおよび仮想マシンの管理 (電源ON/OFF) ができるようにした「拡張」です。

検出スクリプトを使用するには、自動検出サーバを有効化する必要があります。特定の API 変数が関連付けられた仮想マシンの実際の値を反映するようにするには、RHEV エージェントをインストールする必要があります。これに関する詳細は、RHEV のドキュメントを参照してください。

プラグイン動作の仕組

RHEV 監視プラグインは、RHEV 仮想環境の web API を通して情報を展開します。

監視情報のみが必要な場合は、このタスクを実行するエージェントプラグインを設定するだけで済みます。プラグインの設定では、監視する要素とそのモジュールの設定を選択できます。XML ファイルが作成されると、エージェントプラグインは、選択した転送方法に応じて、Tentacle を使用するか、ローカルディレクトリにコピーしてファイルを送信します。

RHEV Viewer および RHEV Manager 拡張機能も使用する場合は、検出スクリプトを使用する必要があります。検出スクリプトは、RHEV で設定された値に従って、Pandora FMS で検出された各エージェントの変数を更新する役割を担います。これらの変数は、RHEV Viewer 拡張機能でエンティティを正しく表示し、RHEV Manager 拡張機能で仮想マシンを適切に管理するために必要です。

インストール要件

エージェントプラグインは、次のソフトウエアが必要です。

Red Hat

RedHat システムでは、次のように依存ファイルをインストールします。

dnf install perl-XML-Simple curl

SLES

SUSE システムでは、次のように依存ファイルをインストールします。

zypper install perl-XML-Simple curl

Debian/Ubuntu

Debian/Ubuntu システムでは、次のように依存ファイルをインストールします。

apt-get install libxml-simple-perl curl

RHEV 証明書のダウンロード

プラグインを実行する前に、RHEV API に HTTPS で接続するための証明書をダウンロードする必要があります。証明書をダウンロードするには、次のコマンドを実行します。

curl -o rhevm.cer http://[RHEVM-HOST]:8080/ca.crt

ここで、[rhevm-host] は、RHEV API サーバのサーバ名です。

証明書がダウンロードされたら、以下のコマンドを使用して行コネクタ \API への接続が正しく行われていることを確認できます。

curl -X GET \
  -H "Accept: application/xml" \ 
  -u [USER:PASS] \ 
  --cacert [CERT] https://[RHEVM-HOST]:8443/api

以下の値を使用します。

  • USER: API へ接続する user@domain
  • PASS: API へ接続するためのユーザのパスワード
  • CERT: ダウンロードした証明書のパス
  • RHEVM-HOST: API ホストのアドレス

コマンドの実行が成功した場合、RHEV API に関する一般的な情報を含む出力が XML 形式で返されます。

RHEV 設定時に考慮すべき点

RHEV 仮想化環境では、複数のエンティティが同じ名前を持つ可能性があります。これは、Pandora FMS ではこれらのエンティティがエージェントに変換され、重複した名前が許可されないため問題となります。さらに、API から返される結果を XML 形式で解析する際にも問題が発生し、以下のようなエラーが表示されます。

Warning: 
<data_center> element has non-unique value in 'name' key attribute
Default at ./plugin-rhev.pl line 199

この問題を解決するには、RHEV 仮想化環境エンティティの命名規則に従い、名前が重複しないようにするだけで十分です。

エージェントへの RHEV プラグインインストール

エージェントプラグインをインストールするには、rhev-plugin.pl スクリプトと rhev-plugin.conf 設定ファイルを、プラグインを実行する Pandora FMS エージェントがインストールされているマシンのディレクトリにコピーするだけです。プラグインは、Pandora FMS サーバと同じマシンにインストールされているエージェントでも、別のマシンにインストールされているエージェントでも実行できます。

プラグインを実行するには、エージェント設定ファイル(デフォルトでは /etc/pandora/pandora_agent.conf)に次の行を追加する必要があります。

module_plugin /root/rhev-plugin.pl /root/rhev-plugin.conf

この行を追加することにより、エージェントの実行間隔でエージェントプラグインが実行されます。

RHEV 仮想アーキテクチャのモニタリング

プラグインの実行結果を見るには、操作(Operation)モニタリング(Monitoring)表示(Views)エージェント詳細(Agent Detail) をクリックします。エージェントの名前をクリックすると、プラグインによって作成された監視モジュールやその他の関連データを確認できます。

このプラグインは、RHEV アーキテクチャの検出で検出されたエンティティごとに Pandora FMS にエージェントを作成します。 エンティティのタイプごとに、一連の特定のモジュールが自動的に作成され、それぞれの重要な情報が監視されます。

選択したエージェントが仮想マシンではなくホストに対応する場合、監視モジュールは異なります。

RHEV プラグインは、仮想アーキテクチャ内で発生するイベントも監視します。 プラグインは、影響を受ける各エンティティ内の監視対象イベントごとにモジュールを作成します。 イベントから作成されたモジュールのデータは、イベントデータ (イベント時間、イベントの説明) です。

RHEV アーキテクチャ自体に関連するエージェントとモジュールに加えて、プラグインを実行するエージェント内に、デフォルトで RHEV Plugin と呼ばれるモジュールが生成されます。

RHEV アーキテクチャのためのエージェントモジュール

以下に、RHEV アーキテクチャのそれぞれの要素のためのモジュールの詳細について示します。

データセンター

  • Status: データセンターの状態

ストレージドメイン

  • Available Space: ストレージドメインの空き容量
  • Committed Space: ストレージドメインのコミット容量
  • Used Space: ストレージドメインの利用容量
  • Percent Free Space: ストレージドメインの空き容量率

ネットワーク

  • Status: 仮想ネットワークの状態
  • STP Status: スパニングツリープロトコルの状態

クラスタ

  • Overcommit Percent: クラスタのオーバーコミット率
  • Transparent HugePages: Transparent HugePage の状態
  • High threshold: ポリシープランニングのための上位閾値
  • Low threshold: ポリシープランニングのための下位閾値
  • Threshold duration: ポリシープランニングのための閾値期間

ホスト

  • Status: ホストの状態
  • Buffers size: バッファサイズ
  • Cache size: キャッシュサイズ
  • Cached swap: キャッシュスワップのためのメモリ量 (バイト単位)
  • Free memory: 空きメモリ量 (バイト単位)
  • Percent free memory: 空きメモリ率
  • Swap cached percent: キャッシュスワップメモリ率
  • Swap free: スワップの空き容量 (バイト単位)
  • Swap free percent: 空きスワップメモリ率
  • Total Memory: このホストのトータルメモリ容量 (バイト単位)
  • Total Swap: スワップメモリ容量 (バイト単位)
  • Used memory: 利用メモリ量 (バイト単位)
  • Used Swap: 利用スワップメモリ量 (バイト単位)
  • Nic [x] TX: nic x の送信速度 (バイト/秒) インタフェースごとにモジュールが生成されます。
  • Nic [x] RX: nic x の受信速度 (バイト/秒) インタフェースごとにモジュールが生成されます。
  • Nic [x] erros TX: nic x の送信エラー数。インタフェースごとにモジュールが生成されます。
  • Nic [x] erros RX: nic x の受信エラー数。インタフェースごとにモジュールが生成されます。
  • User CPU: user CPU 使用率
  • System CPU: system CPU 使用率
  • CPU Idle: idle CPU 使用率
  • CPU Load: 5分間のロードアベレージ
  • KSM CPU: KSM の CPU 使用率
  • Active VM: ホスト内の稼働中の仮想マシン数
  • Migrating VM: ホスト内でマイグレーション処理中の仮想マシン数
  • Total VM: このホストにおける全仮想マシン数
  • Fence Status: ホストフェンスの状態

仮想マシン

  • Status: 仮想マシンの状態
  • Disk [x] read: ディスク x の読み込み速度 (バイト/秒)。ディスクごとにモジュールが生成されます。
  • Disk [x] write: ディスク x の書き込み速度 (バイト/秒)。ディスクごとにモジュールが生成されます。
  • Disk [x] size: disk x のディスクサイズ。ディスクごとにモジュールが生成されます。
  • Disk [x] status: disk x の状態。ディスクごとにモジュールが生成されます。
  • Nic [x] TX: nic x の送信速度 (バイト/秒)。nic ごとにモジュールが生成されます。
  • Nic [x] RX: nic x の受信速度 (バイト/秒)。nic ごとにモジュールが生成されます。
  • Nic [x] erros TX: nic x の送信エラー数。nic ごとにモジュールが生成されます。
  • Nic [x] erros RX: nic x の受信エラー数。nic ごとにモジュールが生成されます。
  • Installed memory: 設定されたメモリ容量 (バイト単位)
  • Percent free memory: 空きメモリ率
  • Used memory: 利用メモリ量 (バイト単位)
  • Stateless: ステートレス機能の状態
  • HA Status: HA 機能の状態
  • Total CPU: この仮想マシン全体の CPU 使用率
  • Hypervisor CPU: 仮想マシンによって使われている、ハイパーバイザーの CPU 使用率
  • Guest CPU: 仮想マシンの CPU 使用率

イベント

  • Event [x]: システム内で発生したイベント x の説明。それぞれのエージェント内に、検出されたイベントごとにモジュールが作成されます。

RHEV アーキテクチャの管理と参照

自動検出タスクのインストール

自動検出サーバにより、カスタム検出タスクを作成することが可能です。

RHEV View および RHEV Manager 拡張のインストール

拡張のインストールは、extensions フォルダの中身をコピーするだけです。プラグインを展開したものを Pandora FMS コンソールの extensions フォルダへコピーします。実行コマンドは次の通りです。

cp -R extensions/* <pandora_console_dir>/enterprise/extensions/

これで、RHEV モニタリング拡張が使えるようになります。

RHEV View 拡張の利用

RHEV View 拡張機能を使用するには、モニタリング サブメニュー内の RHEV View オプションをクリックするだけです。

この拡張機能は、プラグインによって検出されたすべての RHEV アーキテクチャコンポーネントを示すマップを表示します。

RHEV Manager 拡張の利用

RHEV Manager 拡張機能は、RHEV 仮想化アーキテクチャ内の仮想マシンに対応する Pandora FMS エージェントの操作画面で利用できます。

この拡張機能は curl コマンドを使用するため、Pandora FMS ウェブコンソールをサポートするウェブサーバーに curl コマンドがインストールされ、アクセス可能である必要があります。

拡張機能にアクセスするには、他のエージェントタブと一緒に表示される Red Hat のロゴが付いたボタンをクリックしてください。

この拡張機能を使用すると、RHEV 管理コンソールを開かずに仮想マシンを管理(起動、停止、一時停止)できます。拡張機能は、仮想マシンの現在の状態をカラーコードで表示します。

  • 緑 = 実行中
  • オレンジ = 一時停止中
  • 灰 = 停止中

仮想マシンを移動できる利用可能なステータスの一覧が表示され、ステータス変更(Change status) ボタンをクリックして移動できます。

仮想マシンを停止するために 停止 ステータスを選択すると、拡張機能は RHEV API に接続してコマンドを送信します。その結果、仮想マシンのステータスとリストオプションが変更されます。

一部のステータス間の遷移は自動ではありません。たとえば、停止 ステータスから 開始 ステータスへの遷移などです。この場合、拡張機能は仮想化アーキテクチャ内で仮想マシンのステータスが変化する様子を表示します。

エージェントプラグイン設定

エージェントプラグイン設定は、デフォルトで rhev-plugin.conf という設定ファイル使って行います。

デフォルトでは、エージェントプラグインは全エンティティを選択し、名前と説明をデフォルトの値で全モジュールを作成します。これらのパラメータはすべて設定ファイルを通してカスタマイズできます。

RHEV プラグイン設定ファイル

設定ファイルは、全体の設定と個々の監視の設定の 2つの部分から成ります。

全体の設定の部分では、Configuration という記述から始まり、プラグイン設定に関する情報があります。この部分で設定可能なパラメータは次の通りです。

  • module_name: プラグインを実行するエージェントから報告されるモジュール名です。
  • server: RHEV API を実行するホスト名です。
  • user: API に接続するユーザです。user@domain という書式です。
  • pass: API へ接続するパスワードです。
  • cert: API 証明書のパスです。
  • temporal: テンポラリフォルダです。
  • logfile: ログファイル名です。
  • transfer_mode: 転送モードです。local または tentacle です。
  • tentacle_ip: 情報の送信先の tentacle サーバの IP です。一般的に Pandora サーバと同じマシンです。転送モードに tentacle を利用した場合に利用できます。
  • tentacle_port: tentacle サーバのポート番号です。転送モードに tentacle を利用した場合に利用できます。
  • tentacle_opts: tentacle サーバの拡張オプションです。転送モードに tentacle を利用した場合に利用できます。

監視設定部分には、いくつかのサブセクションがあります。一つ目は、Reject というトークンがあり、除外する仮想環境のエンティティの名前のリストを作成することができます。エンティティを除外するには、次のように名前のリストを記載する必要があります。

#Dismissed entities
Reject
mv1
mv_Windows10
mv_WebServer1
…

全ホスト、全仮想マシンなど、一つの種類のすべてのエンティティを除外することもできます。それぞれのエンティティのトークンは、all_dc (データセンタ)、all_host (ホスト)、all_network (ネットワーク)、all_storage (ストレージドメイン)、all_cluster (クラスタ)、all_vm (仮想マシン)です。これらのトークンの利用例を以下に示します。

#Dismissed entities
Reject
all_dc
all_host
all_network
all_storage
all_cluster
all_vm

2つ目のセクションは、Rename というトークンで定義され、エンティティの名前を変更できます。この機能は、Pandora FMS の同一エージェント内でエンドポイントと API 情報を結びつけるのにとても便利です。このセクションの設定は、古い名前、新しい名前の順にスペースを入れて次のように記述します。

#Rename entities
Rename
mv_WebServer1 WebServer1
mv_Windows10 Windows10 Test
…

次のサブセクションは、エンティティのモニタリング設定に関するものです。それぞれのエンティティには、それぞれ DataCenter, StorageDomain, Network, Cluster, Host および VM というトークンがあります。各エンティティで、モジュールの有効・無効、警告や障害状態となる最小値や最大値を定義することができます。例を以下に示します。

#VM Modules
VM
status disabled
errors_total_tx name = Errors TX Net [%s]; desc = Total network TX errors; limits = 60 70 71 100
memory_used name = Memory in use; desc = Memory used by the virtual machine; limits = 256 1024 1025 2048
…

それぞれの行はモニタリングモジュールに関連していて、次の 2つのオプションがあります。

  • <モジュール> disabled: モジュールは、作成されません
  • <モジュール> name = <名前>; desc = <説明>; limits = <警告の最小値> <警告の最大値> <障害の最小値> <障害の最大値» モジュールは、指定した名前と説明で作成されます。また、警告および障害の最大・最小の閾値を指定します。

設定ファイルの行構造 に注意し、特にモジュール名とモジュールの説明の近くの; 文字 に注意することがとても重要 です。これらの行は、同じではありません 。(; 文字の前のスペースを確認してください)

errors_total_tx name = Net TX Errors [%s]; desc = Total Network TX Errors; limits = 60 70 71 100 #Correct
errors_total_tx name = Net TX Errors [%s] ; desc = Total Network TX Errors ; limits = 60 70 71 100 #Incorrect

モジュールは、コマンドラインで入力しやすい短い名前で参照されます。フルネームと短い名前の関連付けした表を次の章に示します。

仮想マシンの設定例 (VM セクション) を見てみましょう。

仮想マシンをモニタするには、設定ファイルの VM セクションで、モジュールを有効化・無効化するかの一覧を定義します。status モジュールは無効化されており、errors_total_tx および memory_used モジュールはカスタム値を持っています。リストに無い残りのモジュールは、デフォルトの値で作成されます。この設定で、memory_used モジュールは次の値になります。

  • Name: Memory in use.
  • Description: Memory used by the virtual machine.
  • Min Warning: 256.
  • Max Warning: 1024.
  • Min Critical: 1025.
  • Max Critical: 2048.

ディスクやネットワークインタフェースに関連するモジュールは動的に生成されます。それぞれの要素ごとにモジュールが作成され、次のようにモジュール名は特別な書式になっています。

errors_total_tx name = Net TX Errors [%s]; desc = Total Network TX Errors; limits = 60 70 71 100

この場合、名前は動的に決まる部分があり、% マクロを利用することができます。これはプラグインによりモジュール名で動的に変わるものに置き換えられます。

例えば、errors_total_tx モジュールのデフォルトの名前は次の通りです。

Nic [nic1] errors TX

次のように名称変更されます。

Errors TX Net [nic1]

nic1 がモジュール名で動的に決まる部分です。

設定ファイルに関連するすべてのエラーは、設定ファイルで定義されたログに表示され、非同期モジュールとして Pandora FMS にも送信されます。このモジュールは、プラグインを実行しているエージェント内のモジュールとして反映されます。

それぞれの要素に関連したセクションに加え、設定ファイルにはイベント設定のための共通セクションがあります。このセクションは、EventCodes というトークンで定義され、モニタするすべてのイベントコード一覧を次のように定義します。

EventCodes
30
920
980
509
956

このセクションを定義しないと、イベントモニタリングは動作しません。

複数のエンドポイントでのモニタリング負荷の分散

設定ファイルを通して、RHEV 仮想環境のモニタリング負荷を分散することができます。

そのためには、モニタするエンティティをエージェント間で分割する必要があります。この例では、次のようなアーキテクチャを想定します。

 DC1
  |
  |- Cluster 1.1
        |- c1.1mv1
        |- c1.1mv2
        |- c1.1mv3

  |- Cluster 1.2
        |- c1.2mv1
        |- c1.2mv2
        |- c1.2mv3

 DC2
  |
  |- Cluster 2.1
        |- c2.1mv1
        |- c2.1mv2
        |- c2.1mv3

  |- Cluster 2.2
        |- c2.2mv1
        |- c2.2mv2
        |- c2.2mv3

負荷を分散する方法として、一つのデータセンタをそれぞれ違うエンドポイントに割り当てます。そのためには、エンティティを除外する機能 (Reject トークン) を利用します。

最初のエンドポイントはデータセンター DC1 のみをモニタし、DC2 のエンティティは除外します。

 Reject
 DC2
 Cluster 2.1
 Cluster 2.2
 c2.1mv1
 c2.1mv2
 c2.1mv3
 c2.2mv1
 c2.2mv2
 c2.2mv3

2つ目のエンドポイントは、データセンター DC2 をモニタし、DC1 は除外します。

 Reject
 DC1
 Cluster 1.1
 Cluster 1.2
 c1.1mv1
 c1.1mv2
 c1.1mv3
 c1.2mv1
 c1.2mv2
 c1.2mv3

また、クラスタをベースに負荷を分散することもできます。例えば、4つのソフトウエアエージェントがあり、それぞれ異なるクラスタをモニタします。

エンドポイント 1 ではクラスタ 1.1 をモニタし、他のエンティティを除外します。

 Reject
 DC1
 Cluster 1.2
 c1.2mv1
 c1.2mv2
 c1.2mv3
 DC2
 Cluster 2.1
 Cluster 2.2
 c2.1mv1
 c2.1mv2
 c2.1mv3
 c2.2mv1
 c2.2mv2
 c2.2mv3

エンドポイント 2 ではクラスタ 1.2 をモニタし、他のエンティティを除外します。

 Reject
 DC1
 Cluster 1.1
 c1.1mv1
 c1.1mv2
 c1.1mv3
 DC2
 Cluster 2.1
 Cluster 2.2
 c2.1mv1
 c2.1mv2
 c2.1mv3
 c2.2mv1
 c2.2mv2
 c2.2mv3

エンドポイント 3ではクラスタ 2.1 をモニタし、他のエンティティを除外します。

 Reject
 DC1
 Cluster 1.1
 Cluster 1.2
 c1.1mv1
 c1.1mv2
 c1.1mv3
 c1.2mv1
 c1.2mv2
 c1.2mv3
 DC2
 Cluster 2.2
 c2.2mv1
 c2.2mv2
 c2.2mv3

エンドポイント 4ではクラスタ 2.2 をモニタし、他のエンティティを除外します。

 Reject
 DC1
 Cluster 1.1
 Cluster 1.2
 c1.1mv1
 c1.1mv2
 c1.1mv3
 c1.2mv1
 c1.2mv2
 c1.2mv3
 DC2
 Cluster 2.1
 c2.1mv1
 c2.1mv2
 c2.1mv3

エンティティの除外設定はとても柔軟で、それぞれのエンドポイントで複数のエンティティのモニタリング負荷を分散させることができます。

設定ファイル例

全モジュール無効化の例

 #These lines are comments

 #Plugin configuration parameters
 Configuration
 server rhevm.server
 user user@testdomain
 pass 12345
 cert /home/user/rhevm.cer
 temporal /tmp
 logfile /tmp/plugin-rhev.log
 transfer_mode local
 tentacle_ip 127.0.0.1
 tentacle_port 41121
 tentacle_opts

 #Dismissed entities
 Reject

 #Data Center modules
 DataCenter
 status disabled

 #StorageDomain modules
 StorageDomain
 available disabled
 used disabled
 committed disabled
 free_percent disabled

 #Networks modules
 Network
 status disabled
 stp disabled

 #Clusters modules
 Cluster
 overcommit disabled
 hugepages disabled
 threshold_low disabled
 threshold_high disabled
 threshold_duration disabled

 #Host Modules
 Host
 status disabled
 vm_active disabled
 vm_migrating disabled
 vm_total disabled
 data_current_rx disabled
 data_current_tx disabled
 errors_total_rx disabled
 errors_total_tx disabled
 memory_cached disabled
 memory_total disabled
 swap_free_percent disabled
 swap_cached_percent disabled
 swap_free disabled
 cpu_current_idle disabled
 cpu_current_user disabled
 memory_used disabled
 ksm_cpu_current disabled
 memory_free_percent disabled
 swap_total disabled
 memory_buffers disabled
 cpu_current_system disabled
 cpu_load_avg_5m disabled
 swap_cached disabled
 swap_used disabled
 memory_free disabled
 fence_status disabled

 #VM Modules
 VM
 status disabled
 stateless disabled
 ha disabled
 cpu_current_guest disabled
 cpu_current_hypervisor disabled
 memory_free_percent disabled
 memory_installed disabled
 memory_used disabled
 cpu_current_total disabled
 data_current_read disabled
 data_current_write disabled
 size disabled
 disk_status disabled
 data_current_rx disabled
 data_current_tx disabled
 errors_total_rx disabled
 errors_total_tx disabled

Nutanix

プラグイン操作

Nutanix プラグインは、Perl で書かれたプログラムで、Nutanix PRISM の REST API へ接続します。以下の要素を監視するために必要なメトリックスを取得します。

  • Nutanix® クラスタ
  • ストレージデバイス
  • コンテナ
  • 仮想マシン
  • ホスト
  • レプリケーションプロセスの状態

プラグインの必要条件

REST API から情報を取得するためには、以下が必要です。

  • ポータルの IPアドレス/FQDN
  • API の読み出し権限を持った ユーザ
  • ユーザの パスワード

監視結果を Pandora FMS へ反映させるために、以下が必要です。

  • ローカルまたは Tentacle での 情報の転送
  • ローカルであれば、結果を含む XML ファイルを置くディレクトリが必要です。またディレクトリには書き込み権限が必要です。
  • Tentacle を利用する場合は、Pandora サーバの IPアドレスまたは FQDN に Tentacle のポートで接続できる必要があります。tentacle クライアントの場所やオプションの定義も必要です。

Nutanix プラグインのインストール

プラグインに必要なファイルをモジュールライブラリからダウンロードします。ダウンロードしたファイルを、Nutanix® インフラストラクチャの監視を実行するリモートコンピュータに転送し、プラグインファイルを解凍します。

tar xvzf pandora_nutanix.tar.gz

Nutanix プラグイン設定

次のフィールドがあります。

Nutanix API 設定

  • nx_fqdn: メインの Prism サーバのアドレス。
  • nx_port: REST API が公開されるポート (デフォルトは 9440)。
  • nx_user: REST API を介した読み取り権限を持つユーザ。
  • nx_pass: 当該ユーザのパスワード。
  • use_https: https を使用する (1) かしないか (0)
  • nx_rest_version: REST API バージョン (デフォルトは 'v1' )。

Nutanix エージェント設定

  • agent_interval: プラグインによって生成されるエージェントの間隔 (デフォルトは 300)。
  • agent_group: 生成されたエージェントが属するグループ (PandoraServer 設定で「autocreate_group」がコメントアウトされている場合)、デフォルトは Nutanix
  • module_interval: 生成されたエージェントのモジュールの間隔 (倍率、デフォルトは 1)。
  • module_tags: 生成されたエージェントの新しいモジュールに関連付けられるタグ。
  • module_group: 新しいモジュールが属するグループ。

Pandora FMS サーバとの通信設定

  • mode: データ転送モード。“local” または “tentacle”
  • tentacle_ip: Pandora FMS サーバの IP アドレス。Tentacle モードでのみ有効。
  • tentacle_port: Tentacle サービスが待ち受けているポート。
  • tentacle_opts: Tentacle サービスの追加設定オプション。
  • tentacle_client: tentacle クライアントのフルパス。
  • temp: 一時作業ディレクトリ。
  • local_folder: “local” データ転送モードの際のファイル転送パス。

フィルタ

  • cluster_monitoring: クラスタ監視の有効化(1)、無効化(0)。
  • storage_monitoring: ストレージデバイス監視の有効化(1)、無効化(0)。
  • container_monitoring: ストレージコンテナ監視の有効化(1)、無効化(0)。
  • vm_monitoring: 仮想マシン監視の有効化(1)、無効化(0)。
  • host_monitoring: 仮想サーバ (Nutanix ノード) 監視の有効化(1)、無効化(0)。
  • pd_monitoring: 保護ドメイン監視の有効化(1)、無効化(0)。

カスタマイズ

  • cluster_agent_header: クラスタデバイスエージェントの名前のヘッダ。
  • storage_agent_header: ストレージデバイスタイプのデバイスエージェントの名前のヘッダ。
  • host_agent_header: 仮想マシンサーバタイプのデバイスエージェント (Nutanix ノード) の名前のヘッダ。
  • container_agent_header: ストレージコンテナタイプのデバイスエージェントの名前のヘッダ。
  • vm_agent_header: 仮想マシンタイプデバイスエージェントの名前のヘッダ。
  • pd_agent_header: 保護ドメインタイプデバイスエージェントの名前のヘッダ。

モジュール生成ルール

  • vm_stat: 仮想マシンを監視するためのモジュールを追加するためのルール。デフォルトでは hypervisor_cpu_usage_ppm|hypervisor_memory_usage_ppm|.*avg.*。これは、メトリック名がこのフィールドに示された正規表現と一致する場合に生成される特別なモジュールを示します。 値 .* を設定すると、利用可能なすべてのメトリックを監視します。
  • host_stat: 仮想マシンサーバ (Nutanix ノード) を監視するためのモジュールを追加するためのルール。デフォルトでは hypervisor_cpu_usage_ppm|hypervisor_memory_usage_ppm|.*avg.*。これは、メトリクス名が次の正規表現に一致する場合に生成される特別なモジュールを示します。 値 .* を設定すると、利用可能なすべてのメトリックを監視します。
  • pd_stat: 保護ドメインを監視するためのモジュールを追加するためのルール。デフォルトでは replication_transmitted_bandwidth_kBps|replication_total_transmitted_bytes です。これは、メトリック名がこのフィールドに示されている正規表現と一致する場合に生成される特別なモジュールを示します。 値 .* を設定すると、利用可能なすべてのメトリックを監視します。

エンティティの名前変更

エンティティの名前変更

  • RENAME aaa TO bbb: エンティティの名前変更のルール。名前を変更する必要がある要素と同じ数のディレクティブを定義できます。

エンティティの実行

  • REJECT aaa: エンティティ監視を除外するためのルール。除外する必要がある要素と同じ数のポリシーを定義できます。

Nutanix プラグインの実行

プラグインを実行するサーバは、監視のために Pandora FMS サーバおよび Nutanix® インフラストラクチャの両方にアクセスできる必要があります。

手動実行:

./pandora_nutanix-linux-x64 pandora_nutanix.conf

/etc/crontab に以下の設定を追加することにより、cron でプラグインを自動実行できます。

/5 * * * * root /path/to/plugin/pandora_nutanix-linux-x64 /path/to/plugin/pandora_nutanix.conf

XenServer

XenServer 用の DISCO パッケージの使用方法については、PFMS 自動検出 を参照してください。

OpenNebula

OpenNebula プラグインの動作

OpenNebula 環境を監視するための Pandora FMS プラグインは Perl で書かれています。OpenNebula サーバのローカルで実行し、OpenNebula 自身の管理コマンドを使って必要な情報を取得します。

  • クラスタ
  • ホスト
  • 仮想マシン
  • ストレージリソース

OpenNebula プラグインに必要なもの

プラグインの実行には以下が必要です。

  • Perl のインストール
  • 以下のコマンドの実行権限
  1. onehost.
  2. onecluster.
  3. onedatastore.

プラグインの実行は OpenNebula システム 5.X.X でテストしています。

OpenNebula プラグインのインストール

OpenNebula 用の Pandora FMS プラグインを モジュールライブラリ からダウンロードしてください。ダウンロードしたファイルの内容を、Pandora FMS エージェントまたはシステムの cron を使用して実行できる、永続的なディレクトリに展開する必要があります。

unzip pandora_OpenNebula.zip

OpenNebula プラグインの設定

Pandora サーバとの通信設定

  • mode: データ転送モード。“local” または “tentacle” です。
  • tentacle_ip: Pandora サーバの IP アドレス。tentacle モードの場合のみ。
  • tentacle_port: Tentacle サーバのポート番号
  • tentacle_opts: Tentacle の追加オプション
  • tentacle_client: Tentacle クライアントのパス
  • temp: テンポラリディレクトリ
  • local_folder: データ転送モードが “local” の場合のパス

エージェント設定

  • agent_interval: エージェント間隔。デフォルトは 300。
  • agent_group: エージェントグループ。デフォルトは OpenNebula。

モジュールカスタマイズ

  • module_group: モジュールグループ。デフォルトは、OpenNebula。
  • module_interval: モジュール間隔(倍率)。デフォルトは 1
  • module_tags: モジュールのタグ

名前のカスタマイズ

  • cluster_agent_header: クラスタタイプデバイスエージェントのエージェント名ヘッダ
  • host_agent_header: 仮想マシンサーバタイプデバイスエージェントのエージェント名ヘッダ
  • storage_agent_header: ストレージデバイスタイプエージェントのエージェント名ヘッダ
  • vm_agent_header: 仮想マシンタイプデバイスエージェントのエージェント名ヘッダ

フィルタ

  • cluster_monitoring: クラスタ監視の有効化(1)または無効化(0)
  • host_monitoring: 仮想マシンサーバ監視の有効化(1)または無効化(0)
  • storage_monitoring: ストレージデバイス監視の有効化(1)または無効化(0)
  • vm_monitoring: 仮想マシン監視の有効化(1)または無効化(0)

エンティティのリネーム

RENAME aaa TO bbb: エンティティのリネームルールで、必要なだけ定義することができます。

エンティティの除外

REJECT aaa

監視対象外エンティティのルールで、必要なだけ定義することができます。

プラグインの実行

システム cron で設定するには、次の行を /etc/crontab へ追加します。

/5 * * * * root "<path>/pandora_opennebula" "<path>/pandora_opennebula.conf"> /dev/null 2>&1

プラグインを手動実行すると、出力は次のようになります。

 [root@valhalla ~]# ./pandora_opennebula pandora_opennebula.conf
 [root@valhalla ~]# echo $?
 0

IBM HMC

このプラグインは、HMC ハードウエア管理コンソールを通して IBM AIX 仮想環境を監視できます。 このプラグインは、HMC システムによって AIX 環境に作成されたすべての論理パーティションから情報を収集します。各管理サーバ、論理パーティション、仮想 IO サーバごとに一つのエージェントを作成します。

SSH で情報を収集するために、プラグインは以下の 3つのモードを使えます。

  1. スクリプト ssh_launcher.sh の利用をもとにしたもの
  2. Net::SSH::Perl ライブラリをもとにしたもの
  3. Net::SSH::Expect ライブラリをもとにしたもの

キャプチャされた情報を補完するために、REST API に対してもクエリが実行されます。デフォルトは以下の通りです。

https://fqdn:12443/rest/api/{root_element}

IBM HMC プラグイン必要条件

監視に必要なパラメータは次の通りです。

  • HMC システムの認証に必要なユーザ名(読み出し専用)
  • ユーザは REST API への接続権限および、HMC シェルへログインし(少なくとも)次のコマンドを実行する権限が必要です。
  1. lssyscfg.
  2. lshwres.
  • ユーザのパスワード
  • HMC の場所(FQDN/IP) (myhmc.mydomain など)
  • HMC REST API のベース URL、例:
https://myhmc.mydomain:12443

プラグインにより生成されるモジュール

プラグインによって監視されるパラメータは次の通りです。(エレメントタイプでグループ化されます)

  • Current logical partitions.
  • Max logical partitions.
  • Max memory available.
  • Max memory installed.
  • Proc pool DefaultPool current proc units.
  • Proc pool DefaultPool max proc units.
  • Proc pool DevelopmentPool current proc units.
  • Proc pool DevelopmentPool max proc units.
  • Proc pool ProductionPool current proc units.
  • Proc pool ProductionPool max proc units.
  • Proc pool TestPool current proc units.
  • Proc pool TestPool max proc units.
  • Proc pool VIOPool current proc units.
  • Proc pool VIOPool max proc units.
  • Processor pools configured.
  • Processor units available.
  • Processor units installed.
  • State.
  • UUID.
  • Virtual proc units max.

LPAR:

  • Auto start: 自動起動設定の論理パーティション
  • LPAR type: 論理パーティションタイプ
  • LPAR UUID: HMC API を照会するために使用されます
  • Max memory: 最大メモリ
  • Max memory: 空きメモリ
  • Processor units available: 未使用プロセッサユニット
  • Processor units current: 搭載プロセッサユニット
  • RMC IP address: RMC IP アドレス
  • RMC state: LPAR の RMC の状態
  • State: 論理パーティションの状態
  • Virtual proc units: この LPAR に割り当てられた仮想プロセッサユニット

Virtual IO:

  • Auto start: 自動起動設定の論理パーティション
  • LPAR type: 論理パーティションタイプ
  • LPAR UUID: HMC API を照会するために使用されます
  • Max memory: 最大メモリ
  • Max memory current: 未使用メモリ
  • Processor units available: 未使用プロセッサユニット
  • Processor units current: 搭載プロセッサユニット
  • RMC IP address: RMC IP アドレス
  • RMC state: LPAR の RMC の状態
  • State: 論理パーティションの状態
  • Virtual proc units: この LPAR へ割り当てられている仮想プロセッサユニット

IBM HMC プラグイン設定

Pandora FMS サーバとの通信設定

  • mode: データ転送モード。“local” または “tentacle”
  • tentacle_ip: Pandora サーバの IP アドレス。tentacle モードの場合のみ利用。
  • tentacle_port: Tentacle サーバのポート
  • tentacle_opts: Tentacle の追加パラメータ
  • tentacle_client: Tentacle クライアントのパス
  • temp: テンポラリディレクトリ
  • local_folder: データ転送モードが “local” の場合のパス

HMC へのアクセス設定

  • hmc_host: HMC の IP または FQDN
  • hmc_user: 読み出し権限のユーザ
  • hmc_pass: パスワード
  • as_agent_plugin: Pandora FMS エージェントで実行する場合(as_agent_plugin = 1)、プラグインの出力は XML フォーマットで返されます。システムの cron で実行するかまたは、サーバプラグインとして実行する場合(as_agent_plugin = 0)は、標準出力に状態が返されます。

HMC エージェント設定

  • agent_name: オプション。親エージェントの名前を設定します。デフォルトは 'hostname' です。
  • agent_interval: エージェントの間隔。デフォルトは 300。
  • agent_group: エージェントグループ。デフォルトは IBM。

IBM HMC モジュールのカスタマイズ

  • module_group: モジュールグループ。デフォルトは IBM。
  • module_interval: モジュールの間隔(倍率)。デフォルトは 1。
  • module_tags: モジュールのタグ

エンティティのリネーム

エンティティのリネームには、rename というブロックを使います。

rename
 MyLPAR_NAME TO my new name
 MyLPAR_NAME2 TO my second new name
 rename_end

IBM HMC プラグインの実行

IBM AIX システムを HMC を通して監視するための Pandora プラグインは次のように展開しますj。

as_agent_plugin パラメータを 1 に設定した場合(エージェントプラグインとしての実行):

module_plugin /usr/bin/perl pandora_hmc.pl pandora_hmc.conf

as_agent_plugin パラメータを 0 に設定した場合(サーバプラグインとしての実行):

# /etc/crontab
*/5 * * * * root /usr/bin/perl /root/hmc/pandora_hmc.pl /root/vmware/pandora_hmc.conf

HPVM

HPVM プラグインの動作

このプラグインは、HPVM 仮想化サーバを監視できます。エージェントプラグインとして起動し、監視対象システム内に起動している各仮想マシンごとに、エージェントを生成します。

情報を収集するためにローカルコマンドを利用します。

プラグインに必要なもの

  1. 監視対象のいコンピュータへの Pandora FMS エージェントのインストール
  2. プラグインの実行権限を持ったユーザ
  3. ユーザは、以下のように hpvvmstatus コマンドを実行する権限が必要です
    1. hpvmstatus
    2. hpvmstatus -X
    3. hpvmstatus -r -X

プラグインのインストール

Pandora FMS プラグインは、モジュールライブラリ からダウンロードします。コレクションとデプロイされた Pandora FMS エージェントを使用して実行をスケジュールしたり、ファイルの内容を不揮発性ディレクトリに抽出して、そこからシステムの cron を通じて実行したりできます。

unzip pandora_HPVM.zip

プラグイン設定

Pandora サーバとの通信設定

  • mode: データ転送モード。“local” または “tentacle”
  • tentacle_ip: Pandora サーバの IP アドレス。データ転送モードが tentacle の場合のみ。
  • tentacle_port: Tentacle サーバのポート
  • tentacle_opts: Tentacle の拡張オプション
  • tentacle_client: Tentacle クライアントのパス
  • temp: テンポラリディレクトリ
  • local_folder: データ転送モードが “local” の場合のパス

エージェント設定

  • agent_name: オプション。エージェント名を設定します。デフォルトは 'hostname' です。
  • agent_interval: エージェント間隔。デフォルトは 300。
  • agent_group: エージェントグループ。デフォルトは HPVM。

モジュールカスタマイズ

  • module_group: モジュールグループ。
  • module_interval: モジュールの間隔(倍率)。デフォルトは 1。
  • module_tags: モジュールのタグ

プラグインの実行

Pandora FMS エージェントからのプラグイン実行では、エージェント設定ファイルに次の設定をします。

module_plugin /usr/bin/perl pandora_hpvm.pl pandora_hpvm.conf

手動でテストをするには、プラグインを設定し次のように起動します。

perl pandora_hpvm.pl pandora_hpvm.conf

Pandora FMS ドキュメント一覧に戻る