負荷値取得プラグイン Sledge-Plugin-SNMP 作りました。
「ワンランク上の負荷対策を Web アプリに実装するには・・・(Sledge編)」で、SNMP 経由でサーバの負荷を取得する Sledge / Catalyst プラグインが欲しいって書きましたが、急に作る必要がでたので Sledge 版を書きました。Net::SNMP 使ってます。
※CPAN に登録しようとしてドキュメントずーっと読んでいたのですが、全然わからなかったので取りあえず公開・・・|ι´Д`|っ
Sledge-Plugin-SNMP-0.01.tar.gz
ドキュメントを pod2html で作成したっぽく公開しておきます。初めてやる作業ばかりで、変なところで時間を食う・・・orz
NAME
SYNOPSIS
use Sledge::Plugin::SNMP;
sub dispatch_baz {
my $self = shift;
$self->snmp->laLoad1;
$self->snmp->addfunc( disk => '.1.3.6.1.4.1.2021.9.1.9.1' );
$self->snmp->disk;
}
DESCRIPTION
METHODS
ssCpuUser()
ssCpuSystem()
ssCpuIdle()
laLoad1()
laLoad2()
laLoad3()
memTotalSwap()
memAvailSwap()
memTotalReal()
memAvailReal()
memTotalFree()
memShared()
memBuffer()
memCached()
addfunc( method-name => MIS-value )
また、Config/_common.pm で Net::SNMP クラスのインスタンスを生成するための引数を以下のように定義しておく必要があります。引数の詳細は Net::SNMP を参照下さい。
$C{SNMP} = {
-hostname => 'localhost',
-community => 'public',
-port => 161
};
作った自分が言うのも何ですが、思った以上に便利! Page クラスに Ajax インタフェースを用意しておいて prototype.js 使って Call するってのを作りまして、いろんな管理画面に貼り付け開始中!prototype.js の Ajax.PeriodicalUpdater つかって 10 秒ごとにリフレッシュとかさせれば、かなりウマーな感じ。(ってか、mrtg のような車輪の再開発?)
※になるはずなのですが、何故か IE では旨くリフレッシュされず調査中・・・
コメントやシェアをお願いします!