square.gif オープンソースリファレンス

homeicon.gif Print Page Send Comments

GroundWork オープンソースプロジェクト

Windows Management Instrumentation (WMI)

Windows Management Instrumentation(WMI)はエンタープライズ環境における監視情報のアクセスと、管理タスクの自動化のための標準管理技術です。二つの主なシステム管理アーキテクチャがあります。
ひとつは、管理されたシステム上に独自のソフトウェアのエージェントが読み込まれているエージェントベースと、もうひとつは、管理システムに組み込まれた管理機能に依存するエージェントレス型です。WMI の詳細については Microsoft Developer Network (MSDN) を参照してください。

GroundWork WMIエージェントレスプラグイン

このプロジェクトは、リモートホスト上のエージェントなしで Windows のリモートホストから性能データを収集するために、Microsoft .Net Framework とWMI を使用する監視スクリプト群(例:.vbs)で構成されています。最初に約 20 のスクリプトがありますが、他のスクリプトとっては重要な事柄ではありません。Nagios Exchange の GroundWork WMI Agent-less Plugins Project参照してください。

典型的な監視

典型的な監視は以下のように機能します:

cscript //nologo check_cpu.vbs -h hostname -w -c -user username -pass password

このスクリプトは OK - CPU Utilization 67%" or "WARNING - CPU Utilization 89%" or "CRITICAL - CPU Utilization 98%. というような事を表示するためにストリングを返します。ワーニング(警告)と、クリティカル(異常)のしきい値はコマンドラインの引数として渡されます。(パーセント表示)

それに加えて、スクリプトはこのような出力を返します:

0 = OK 1 = Warning 2 = Critical 3 = Error

全てのスクリプトはシンタックスを返し、--help のコマンドでサポートをします。全てのスクリプトは Nagios Plugin Developer's Guidelinesに基づいてフォーマットされた性能データを返します。

nrpe_ntと.vbs監視のZipアーカイブ

これらはWindow 向けのエージェントレスタイプの WMI 監視の統合を監視します。

  1. Windows プロキシサーバのルートディレクトリ(例: C:\nrpe_ntにこのディレクトリをインストールします。

  2. このディレクトリに変更します。(cd)

  3. プロキシサーバ上のサービスとしてnrpe_ntエージェントをインストールするためにnrpe_nt –i と入力します。

  4. ディレクトリ内のnrpe.cfgファイルを編集し、allowed hosts の IP を Nagios サーバの IP アドレスに変更する必要があります。

  5. Nagios の最後で、check_commands.cfgファイルにいくつかのコマンド定義が必要です。

  6. nrpe_ntをアップし、起動させコマンドの定義をチェックしたら、サービステンプレートとサービスの設定が可能です。

  7. それぞれのプラグインは使用方法を示す --help をコマンドラインから実行が可能です。始めにプロキシサーバのコマンドプロンプトから起動し、
    Nagios サーバに移動して、そこのコマンドラインから以下のシンタックスを使用して起動します。

注意

コンフィグファイルで、nrpe.cfg で定義されているコマンド定義と実際のコマンドは正確には並んでいないかもしれません。それらは別の箇所から来ています。

それぞれの監視について2パターンの nrpe.cfg ファイルを持っていることに留意します。ひとつは、プロキシサーバが監視されるサーバとして同じ管理パスワードを持っていることを仮定した認証の際に使用し、その場合認証ストリングはパスされます。上述の checkcommand 定義は全て認証を使用します。したがって、スクリプト名の最後の部分、”r;_auth” はプロキシサーバーの名前が求められます。以下の定義にてパスされた最後のコマンドライン $ARGx$ の引数は、username です。(通常サービステンプレートで提供されます)最後の引数 $USER9$ がパスワードとして定義されている nagios のresources.cfg ファイルにあるパスワードです。ファイルを(パスワード、コミュニティストリング、その他などをセキュアなサブディレクトリへ)保管します。

実際のコマンドラインにはキャリッジリターンは入りません(IP アドレスはプロキシサーバのものになります):

# nagios-WMI-cpu check command definition

define command {

command_name check_WMI_cpu

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_cpu_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

# nagios-WMI-disk check command definition

define command {

command_name check_WMI_disk

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_disk_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $USER9$

}

 

# nagios-WMI-disks check command definition

define command {

command_name check_WMI_disks

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_disk_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# nagios-WMI-mem check command definition

define command {

command_name check_WMI_mem command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_mem_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# commands check_WMI_printque

define command {

command_name check_WMI_printque

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_printque_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# nagios-WMI-proc check command definition

define command {

command_name check_WMI_procs

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_process_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $USER9$

}

# commands check_WMI_swap

define command {

command_name check_WMI_swap

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_swap_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# nagios-WMI-exchange-mailbox-receiveq check command definition

define command {

command_name check_WMI_exchange_mailbox_receiveq

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_exc_mbx_rcvq_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# nagios-WMI-exchange-mailbox-sendq check command definition

define command {

command_name check_WMI_exchange_mailbox_sendq

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_exc_mbx_sendq_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# commands check_WMI_exchange_mta_workq

define command {

command_name check_WMI_exchange_mta_workq

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_exc_mta_workq_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# commands check_WMI_exchange_public_recieveq

define command {

command_name check_WMI_exchange_public_receiveq

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_exc_pub_rcvq_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# commands check_WMI_exchange_public_sendq

define command {

command_name check_WMI_exchange_public_sendq

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_exc_pub_sendq_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# nagios-WMI-mssql-buffer-cache-hit check command definition

define command {

command_name check_WMI_mssql_buff_cache_hit

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_mssql_buf_cache_hit_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# nagios-WMI-mssql-latch-waits check command definition

define command {

command_name check_WMI_mssql_latch_waits

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_mssql_latch_waits_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# nagios-WMI-mssql-lock-wait-time check command definition

define command {

command_name check_WMI_mssql_lock_wait_time

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_mssql_lock_wait_time_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $USER9$

}

 

# nagios-WMI-mssql-log-growth check command definition

define command {

command_name check_WMI_mssql_log_growth

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_mssql_log_growth_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $USER9$

}

 

# nagios-WMI-mssql-log-used check command definition

define command {

command_name check_WMI_mssql_log_used

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_mssql_log_used_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $USER9$

}

 

# nagios-WMI-mssql-transactions check command definition

define command { command_name check_WMI_mssql_transactions

command_line $USER1$/check_nrpe -H 192.168.1.243 -c check_mssql_transactions_auth -a

$HOSTADDRESS$ $ARG1$ $ARG2$ $ARG3$ $ARG4$ $USER9$

}