Nagios

  

Windowsサーバ関連のパフォーマンスモニタを使用して、WindowsサーバーのCPU使用率を監視、SNMPは、道をお勧めしますが、設定があまりにも面倒です。 NSCLIENT ++プラグインの使用がより便利になる場合は、特定のサーバー上のプラグインをインストールする必要が監視することを条件とします。ケースでは、アプリケーションサーバ自体があまりにも良いではない影響を与えます。だから、私はWindowsサーバのSNMPを監視するために探していました。

1、増加のスクリプトを次のように

猫/usr/lib/nagios/plugins/check_snmp_win_cpuload.pl#!/usr/bin/perl##構文:check_win_snmp_cpuload.pl HOSTコミュニティはCRITをWARNすべてのCPU間で#

は、厳格な使用平均負荷%を返す##、ネットを使っ:: SNMPを、

私の$ホスト=シフト;私の$コミュニティ=シフト;私の$は=シフトを警告し、私の$のCRIT =シフト;

ない限り($ CRIT){errorExit("構文:check_win_snmp_cpu.pl HOSTコミュニティCRIT"に警告;);}

私たち%のERRORS =(OK => 0 、WARNING => 1、CRITICAL => 2、UNKNOWN => 3、DEPENDENT => 4);」。1.3.6.1.2.1.25.3.3.1.2'

私の$ oidCpuTable =;

#SNMPセッションobjectmy($のSNMP、$ errを)=ネット:: SNMP->を取得し、セッション(-hostname => $ホスト、-community => $コミュニティ、-port => 161、-version => 1); errorExit($のERR)ない限り、(定義された($のSNMP));

#CPU負荷tablemyの$応答を取得= $ SNMP->(-baseoid => get_table。 $ oidCpuTable); errorExit("エラー取得CPUテーブル")$応答しない限り、私の%値=%{$応答}; $ SNMP->近い();

私の$ CNT = 0;私$合計= 0;私の$ PCT = INT($和/$のCNT);私の$負荷(値の%値){; $和+ = $負荷; $のCNT + = 1} foreachの

私の$ ERR = ?($のPCT> $のCRIT):? 'CRITICAL'($のPCT> $警告) '警告': 'OK';プリント" $エラー:CPU負荷$ PCT%\\"; N $ ERRORS {$を終了ERR};

サブerrorExit {$ MSG =私のシフト、プリント" UNKNOWN:$ MSG \\ n";出口の$ ERRORS {UNKNOWNを};}

2対応する実行を定義します:

cat mysnmp.cfgdefineコマンド{command_name snmp_win_cpucommand_line /usr/lib/nagios/plugins/check_snmp_win_cpuload.pl '$ HOSTADDRESS $' public 80 90}

3、新しいサービスプロファイル:< Br>

cat service.cfgdefineサービス{host_name jw-insideservice_description CPUcheck_command snmp_win_cpuuse generic-service}

4、新しいホストファイルを作成します。ホスト{host_name jw-insidealias jw-insideaddressの定義ベンダー/windowsxp.pngicon_image_alt JW-インサイドservervrml_imageベンダー/windowsxp.pngstatusmap_imageベンダー/windowsxp.png}

Copyright © Windowsの知識 All Rights Reserved