2010年代にどのMTAを使うのがいいかよくわからないkazeburoです

qmailのキュー数をCloudForecastで監視するためのモジュールを書いてみました。

gistです

このリソース定義を使うには、メール配送サーバのsnmpd.confに

extend qmail /var/qmail/bin/qmail-qstat

を追加する必要があります。snmpdがroot以外で実行されている場合は、sudoとか使えばいいのかな。

snmpgetでextendで指定したコマンドの実行結果をとるには、

$ snmpget -c public -v 2c myserver 'nsExtendOutputFull."qmail"'
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."qmail" = STRING: messages in queue: xxxx
messages in queue but not yet preprocessed: 0

のような方法が使えます。しかし、perlのSNMP.pmモジュールでは「qmail」の指定をうまく行う事ができませんでした。

my $s=SNMP::Session->new(
    Community=>"public",
    Version=>"2c",
    DestHost=>"myserver"
);
print $s->get(["nsExtendOutputFull",q!"qmail"!]); #NOSUCHINSTANCE

そこで、一度extendの設定に関する情報が入るnsExtendConfigTableを取得し、qmailコマンドのoidを調べてからgetを行うようにしています。

print Dumper( $s->gettable('nsExtendConfigTable') );
=comment
$VAR1 = {
      '5.113.109.97.105.108' => {
                                  'nsExtendArgs' => '',
                                  'nsExtendToken' => 'qmail',
                                  'nsExtendCacheTime' => '5',
                                  'nsExtendInput' => '',
                                  'nsExtendStatus' => '1',
                                  'nsExtendExecType' => '1',
                                  'nsExtendRunType' => '1',
                                  'nsExtendCommand' => '/var/qmail/bin/qmail-qstat',
                                  'nsExtendStorage' => '4'
                                }
};
# 5.113.109.97.105.108がoid
=cut
$s->get(['nsExtendOutputFull', '5.113.109.97.105.108']);

この方法は汎用的に使えそう

このブログ記事について

このページは、Masahiro Naganoが2010年8月 5日 14:44に書いたブログ記事です。

ひとつ前のブログ記事は「Plackアプリケーションのリソースチューニングに必須。Plack::Middleware::ServerStatus::LIteをリリースしました」です。

次のブログ記事は「プラレール 九州新幹線800系 つばめフル編成セット買った」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja