OSアップデートの後遺症

7月にメインサーバーのOSをアップデートしてから、MRTG関連に次々と不具合が発生。
OSアップデートとともに、Perl を 5.8.8 から 5.14.2 にアップデートした。
それが原因で、Perl のスクリプトを使った自作ツールが動かなくなっていた。
Perl のアップデートの方法が悪かったような・・・
対策として、pkgdb -F で、Perl 5.8.8 に依存しているモジュールを探し出し、Perl 5.14.2 のモジュールへ依存関係を修正。
これで問題は修正できたと思うが・・・

MRTGでpopアスセス数と受信通数の表示(その3)

popアスセス数と受信通数をMRTGでとりあえず表示できるようになりました。
スクリプトあまりにもいいかげんに作ったので非掲載とします。
MRTGの表示状態は以下のようなものです。
日中は出勤しているので、トラフィックはありません。
帰宅して、メーラーを起動したら、一度に日中溜まっていたメールを受信してます。
緑で塗りつぶしてあるグラフはアクセス数。
青のグラフが受信数になります。

MRTGでpopアスセス数と受信通数の表示(その2)

前回、我が家のメインサーバーにあるメールサーバーに対して、メーラーでどの程度アクセスし、何通のメールを受信しているかをMRTGで表示させるツールを作ろうとおもったが、汎用的なツールを作るには、かなり労力が要りそうなので、前提条件を絞った本当にローカルなツールを作ってみた。

まず前提条件として、メーラーの設定で、サーバーにはメールを残さないよう設定すること。

こうすることで、

Jul 29 20:51:32 royalblue popper[28072]: Stats: user 1 26182 47 531608

の様に出力されるqpopperのログの中の、「user」の後に続く、削除した通数をカウントすることで、受信した通数に置き換えることができる(と思う)。

そうすることで、以下の様なperlスクリプトでアクセス数と受信通数とを取得できる。

$access = 0;
$receive= 0;
open(FILE,"/var/log/POP.log");
while () {
    if(/Stats/){
        $access++;
        @w1 = split(':',$_);
        @w2 = split(' ',$w1[4]);
        $receive += $w2[1];
    }
}
close(FILE);

qpopperのログを順次読み込み、ステータスが「Stats」の行なら正常にアクセスできたログだと判断し、「:」で行を分解。

必要なのは、ユーザ名から始まる文字列の2つ目の数字なので、「:」で区切った5番目の文字列を、更に空白で分割し、2番目の文字列、すなわち、削除した通数を取り出すことにした。

結果として、$accessにはメーラーがメールを取りに行った回数が、$receiveには読み取ったメール通数得られた事になる。

このロジックを使って、実際にMRTGで表示可能なスクリプトの作成を行ってみる。

結果は後日・・・・

これって熱射病?

暑い日が続きますね。
本州では、連日、35度超のニュースが流れているが、札幌も最近は暑い日が続いてます。
今日は、札幌・西区では、朝方は風もあり、しのぎやすい日かと思いました。
毎月1度の通院のため、中央区の病院へ地下鉄で出かけました。
検診が終わって外に出ても、それ程暑くは感じられなかったので、JR札幌駅経由で歩いて自宅へ帰ることにしました。
大通りを東へ向かって歩き、地下鉄4丁目駅からは地下へ降り、JR札幌駅迄は地下遊歩道を歩きました。
JR札幌駅から地上に出て、JR函館線沿いに歩き出すと、ほどなく、じりじりとした日差しが・・・
JR桑園駅付近まで歩くと、汗が顔から身体中から噴出し、歩きを断念してJRで帰ろうとしました。
しかし、JR桑園駅から、電車遅延のアナウンスが聞こえてきました。
人身事故があったらしくて、運転を見合わせているとのアナウンスです。
しかた無いので、そのまま歩きを続行。
JR桑園駅から次の琴似駅までは、競馬場付近を通るのだが、その付近は陽を遮る建物がなく、容赦なく陽射しが照り付けます。
おまけに、風も途絶えて、歩道の照り返しもあり、ますます汗がしたたり落ちて・・・
ようやく家にたどり着いた時には、雨にでもあったように上半身は汗だくです。
シャワーを浴び、冷たい麦茶を飲んで、ほっとしたとたにん、全身がけだるく、頭はぼんやりとしてくるし、動悸はするし、おまけに吐き気まで・・・
冷たいタオルや保冷剤で身体を冷やすが、横になるとくらくらと目が回るような症状に襲われました。
これって、熱射病?
結局、その日は、そのまま夜7時頃迄眠ってしまいましたが、はじめての経験でした。

MRTGでpopアスセス数と受信通数の表示

先日来からメインサーバーのMRTGの修正等を行ってきたが、このメインサーバーのMRTGでは、

(1)ロードアベレージ
(2)メモリ使用量
(3)ディスク消費量
(4)ネットワークトラフィック
(5)STMP送受信数
(6)POPアクセス数

(1)から(4)については、雑誌等を参考にして自宅サーバー用にローカライズして作ったものを運用してきた。

(5)と(6)は、昔、某ISPに出稼ぎに行かされていた時に、そのISPで使っていたスクリプトを借用して自宅用に改造したものを運用している。

POPのアクセス数だが、数千のユーザがアクセスするISPでは、正常にアクセスできているか、エラー発生状況はどうか。と言った状況把握のためのツールのため、自分しかアクセスしないサーバーでは、あまり意味が無い。

今になって、ふとそんな事に気がつき、最近、広告メールも多くなってきたことだし、普段、何通ほどのメールを取り込んでいるかを表示できないか、考えて巻いた。

qpopperが出力するログ

Jul 27 22:31:32 royalblue popper[28072]: Stats: user 1 26182 47 531608

ログの内容は、アクセス日時、サーバ名、プロセス、ステータス、ユーザー名、削除したメッセージ数、削除したバイト数、サーバに残っているメッセージ数、サーバーに残っているバイト数が記録されている。

現在は、ステータスの内容、Stats or ERRの回数を表示させているが、これを Statsの回数をアクセス数、削除通数を受信通数としてカウントし、改造すればいいと思う・・・

Perlスクリプトでプログラミングしてあるのでそれ程難しくはないと思うが、しばらくプログラミングしていないので、土日にでも改造してみよう。