Perl 接続用の Monit::HTTP モジュールを知っているか、使用したことがある人はいますか? HTTP を介してデーモンを監視しますか?
Perl 用の Monit::HTTP モジュールを使用しようとしていますが、いくつかの問題があります。ステータス変数を取得できません。たとえば、システムで実行している一部のサービスでは、monit status コマンドで Status = Running が返されますが、Monit::HTTP では常に Status=0 が返されます。monit stop コマンドでサービスを停止しようとしましたが、プロセスが強制終了されたことはわかっていますが、Monit::HTTP は同じように Status = 0 を返します。その最後のケースでは、Status = 0 は「サービス停止」または「サービス実行中」を意味しますか?
monit デーモンによって監視されているシステムからパフォーマンス データを取得するコードの抜粋:
my @systems = $hd->get_services(TYPE_SYSTEM);
foreach my $system (@systems) {
print "system: $system\n";
my $hash_ref = $hd->service_status($system);
...
この最後のケースでは、monit から適切なデータを取得できません (Data::Dumper モジュールで取得された次の hash_ref ダンプで undef データを探します)。たとえば、Monit::HTTP の戻り値:
system: xpto
$VAR1 = {
'cpu' => {
'percent' => undef,
'percenttotal' => undef },
'status' => '0',
'name' => 'xpto',
'children'=> undef,
'monitor' => '1',
'host' => 'localhost',
'memory'=> {
'percent' => undef,
'kilobytetotal' => undef,
'kilobyte' => undef,
'percenttotal' => undef },
'group' => undef,
'pid' => undef;
'ppid' => undef;
'uptime' => undef;
'type'=> '5';
'load' => {
'avg05' => undef,
'avg01' => undef,
'avg15' => undef },
'pendingaction' => '0',
};
そして、ステータスコマンドのリターンを監視します:
System 'xpto'
status Running
monitoring status Monitored
load average [1.25] [1.16] [0.94]
cpu 8.7%us 7.4%sy
memory usage 3202164 kB [76.3%]
swap usage 1589248 kB [75.7%]
data collected Thu, 06 Dec 2012 11:50:55
monit デーモンによって監視されているプロセス (Apache プロセスなど) からパフォーマンス データを取得するコードの抜粋:
my @systems = $hd->get_services(TYPE_PROCESS);
foreach my $system (@systems) {
print "system: $system\n";
my $hash_ref = $hd->service_status($system);
...
ご支援いただきありがとうございます。