Windows Management Instrumentation(WMI)はエンタープライズ環境における監視情報のアクセスと、管理タスクの自動化のための標準管理技術です。二つの主なシステム管理アーキテクチャがあります。
ひとつは、管理されたシステム上に独自のソフトウェアのエージェントが読み込まれているエージェントベースと、もうひとつは、管理システムに組み込まれた管理機能に依存するエージェントレス型です。WMI の詳細については Microsoft Developer Network (MSDN) を参照してください。
このプロジェクトは、リモートホスト上のエージェントなしで 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に基づいてフォーマットされた性能データを返します。
これらはWindow 向けのエージェントレスタイプの WMI 監視の統合を監視します。
Windows プロキシサーバのルートディレクトリ(例: C:\nrpe_nt)にこのディレクトリをインストールします。
このディレクトリに変更します。(cd)
プロキシサーバ上のサービスとして、nrpe_ntエージェントをインストールするためにnrpe_nt –i と入力します。
ディレクトリ内のnrpe.cfgファイルを編集し、allowed hosts の IP を Nagios サーバの IP アドレスに変更する必要があります。
Nagios の最後で、check_commands.cfgファイルにいくつかのコマンド定義が必要です。
nrpe_ntをアップし、起動させコマンドの定義をチェックしたら、サービステンプレートとサービスの設定が可能です。
それぞれのプラグインは使用方法を示す --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$
}