
|
[バックナンバーのトップへ] [Linux システム管理のトップへ] いますぐ実践! Linux システム管理 / Vol.069 / 読者数:867名こんばんは、うすだです。 おそらく 99% くらいの読者の方はお気づきだと思いますが、記事を書くときは、 先週の記事をコピーして、使い回しています。 ですから、次の週をおやすみすることがあって、最後のあいさつを、 それでは、来々週に、お会いしましょう!
と書き換えたら、次回には、元に戻さなければいけません。 それでは、来々週に、お会いしましょう! のまま、毎週発行してしまったりするわけですね。 …ええ、まあ、実は、Vol.065 から今まで、そうなっていました。 仕事の文書でも、日付を古いままで出してしまったりなど、 たまにやってしまうことがありますが、仕事でもそうでなくても、 最後まで目を通してから出す、ということを、今後は徹底しようと思います。 懺悔がおわりましたので、それでは今週も、はりきってまいりましょう! 今週のお題 - WWW サーバを監視する前回、Apache のエラーログをメールする方法を、ご紹介しました。
Vol.068 - Apache のエラーログをメールする
これで、エラーログを、すばやく知ることができるようになりました。 それでは…と、ping コマンドを定期的に実行して、サーバの生存確認を行う方法を、 刹那的に思いつく貴兄がたくさんいらっしゃるのではないかと思います。 % ping -c 1 www.usupi.org > /dev/null 2>&1 \ || (echo "www.usupi.org is down" | /usr/bin/Mail -s Alert root)
しかし、ping では、
そのマシンのカーネルとネットワークの生存確認にはなりますが、
WWW というサービスの生存確認にはなりません。 というわけで、今週は、WWW サーバを監視する方法を、ご紹介します。
つまり、きちんと HTTP でアクセスして、
動作することを確認すればいいってことですね。
今回、HTTP のアクセスには、wget コマンドを用いようと思います。
% wget -O /dev/null http://www.usupi.org/sysad/
--01:27:43-- http://www.usupi.org/sysad/
=> `/dev/null'
www.usupi.org をDNSに問いあわせています... 59.106.23.151
www.usupi.org[59.106.23.151]:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 28,165 [text/html]
100%[====================================>] 28,165 --.--K/s
01:27:43 (227.18 KB/s) - `/dev/null' を保存しました [28165/28165]
ここでは、http://www.usupi.org/sysad/ にアクセスして、
www.usupi.org の WWW サーバが動作していることを、確認しています。 ただ、このままではメッセージが冗長ですので、-q オプションで抑制し、 wget コマンドの終了ステータスで判断するようにしてみましょう。 % wget -q -O /dev/null http://www.usupi.org/sysad/ || echo NG
終了ステータスが 0 以外だと、NG と出力されるはずですが、
今は正常に動作していますので、何も出力されません。 % wget -q -O /dev/null http://a.b.c/ || echo NG NG あとは、NG の出力を、メールによる通知に差し替えれば、完成です。 % wget -q -O /dev/null http://www.usupi.org/sysad/ || \ (echo httpd is down. | /usr/bin/Mail -s '[httpd] Alert' root)
上記を実行して、wget コマンドで正常にアクセスできないときに、
メールが root に送られるようになります。 あ、cron の設定方法は、以下などをご参照ください。
Vol.002 - 簡易バックアップ リローデッド
というわけで今週は…といいたいところですが、
これでは wget コマンドが実行されるたびに、
アクセスログに記録されてしまいます。 ですので、監視のためだけのファイルを用意して、 アクセスをログに記録しないように設定してみましょう。
まずは、どこからもリンクされていない、監視用のファイルを置きます。 % cd /home/httpd/html % touch keepalive.txt
そして、httpd.conf の設定を変更します。 CustomLog /var/log/httpd/access_log combined これを、mod_setenvif を使って、以下のように変更します。
<IfModule mod_setenvif.c>
SetEnvIf Request_URI "^/keepalive\.txt$" keepalive
</IfModule>
CustomLog /var/log/httpd/access_log combined env=!keepalive
要求されたファイルが /keepalive.txt のときに、
keepalive という環境変数を設定します。 あとは、いつものように設定を反映して、確認するだけです。 # /etc/init.d/httpd configtest (必須ではありません) # /etc/init.d/httpd reload 以上、WWW サーバを監視する方法について、ご紹介しました。
先週のと併用すれば、たいていの異常には、すぐに気づけると思います。 また、余力のあるかたは、 wget コマンドのエラーメッセージもあわせてメールするなど、 いろいろカスタマイズしてみてください。 宿題の答え先週の宿題は、 Apache のエラーログをメールする際に、ある程度集約させて、メール の数を減らしてください。 でした。 というわけで、alarm を使うことで、Perl でも実現できました。
#!/usr/bin/perl
$addr = $ARGV[0] ? shift:"root";
$tout = $ARGV[0] ? shift:5;
$msgs = "";
$|=1;
$SIG{ALRM} = \&timedout;
while(<>) {
alarm($tout);
$msgs .= $_ unless /File does not exist:/;
print $_;
}
sub timedout {
if($msgs &&
open(MAIL, "|/usr/bin/Mail -s \'[httpd] Error Log\' $addr")) {
print MAIL $msgs;
close MAIL;
}
$msgs = "";
alarm($tout);
}
まず最初に、送信先のメールアドレス($addr)と、 タイムアウト($tout)を決定しています。 いずれも、引数で指定されたらその値を使用し、 そうでなければデフォルト値(それぞれ root, 5)を使用します。 次に、ログを貯めておく変数 $msgs の初期化と、 即座に標準出力へ出力するための呪文($|=1)を唱えています。 そして、アラーム(SIGALRM シグナル)の発生時に timedout サブルーチンが呼び出されるようにしています。
あとは、無限ループで、標準入力からひたすらエラーログを取得して、
例の "File does not exist:" でない場合に $msgs に追加するとともに、
標準出力に同内容を出力しています。 timedout サブルーチンでは、$msgs に何かが入っていれば、メールを送信します。 そして、$msgs を空にし、alarm の再設定を行います。
以上、それだけです。 ErrorLog "| /usr/local/sbin/errorlogmail.pl >> /var/log/httpd/error_log"
エラーログファイルのパスは、お使いの環境に合わせてください。 宛先のメールアドレスや、タイムアウト値を変更したければ、 ErrorLog の指定のところに引数を追加してください。 上記の意味がさっぱりわからなければ、まず先週の記事をご覧ください。
Vol.068 - Apache のエラーログをメールする 今週の宿題今週の宿題は、 Anonymous FTP サーバを監視してください。 です。
wget コマンドは、FTP にも対応していますので、簡単にできますよね。 あとがき最近、サランラップ(正確には「食品包装用ラップフィルム」でしょうか) を切らしていたのですが、いろいろイベント続きだったり買い忘れたりとしていたため、 1週間くらい、ラップなしの生活をしていました。
やってみればわかると思いますが、これが、結構不便なんですよ。
しかしながら、にんげんは学ぶことのできる生きものです。 というわけで、今でもラップなしの生活を…というわけではなく、 さすがに今日買ってきました。あー、やっぱりラップがあると便利ですね。
とまあ、結局なにが言いたいかといいますと、
すべてが満たされた生活を過ごすよりも、なにか足りないほうが、
にんげんは賢くなれるのではないか、ということです。 …ラップごときで、こんなことをちょっと思ってしまいました。
今週も、ここまで読んでいただき、ありがとうございました。
「いますぐ実践! Linux システム管理」の解除は、以下からできます。
バックナンバーは、こちらにほぼ全部そろっています。
「栗日記」−盆も正月も関係なく、毎日描きます。 |
▼ トップ ▼ プロフィール ▼ リンク
▼ 作ってみました
▼ せんでん
▼ 最近読んだ本
[X]
「賢者の書」 喜多川 泰「セキュリティウォリア」 Cyrus Peikari, Anton Chuvakin 「CORE MEMORY」 John Alderman, Mark Richards 「新訳 星の王子さま」 サン=テグジュベリ / 倉橋 由美子 「センネン画報」 今日 マチ子 「粟津潔 デザインする言葉」 粟津潔 「Binary Hacks」 高林 哲,鵜飼 文敏,佐藤 祐介,浜地 慎一郎,首藤 一幸 「Make: Volume01」 オライリー・ジャパン 「セーラが町にやってきた」 清野 由実 「手紙屋」 喜多川 泰 「Linuxカーネル2.6解読室」 高橋 浩和,小田 逸郎,山幡 為佐久 「人蕩し術」 無能 唱元 「子育てハッピーアドバイス2」 明橋 大二, 太田 知子 「ラッセル幸福論」 B. Russell 「それでも人生にイエスと言う」 Viktor Emil Frankl 「子育てハッピーアドバイス」 明橋 大二, 太田 知子 「考具」 加藤 昌治 「北欧デザイン<3>」 渡部 千春 「北斎の謎を解く」 諏訪 春雄 「体感美術館」 平野 暁臣 「チベット永遠の書」 Theodore Illion 「リナックスの革命」 Pekka Himanen 「人月の神話」 Frederick Phillips,Jr. Brooks 「ヤバい経済学」 Steven D. Levitt, Stephen J. Dubner 「小布施ッション<2001-2002>」 セーラ・マリ カミングス 「アンパンマン伝説」 やなせ たかし 「夢をかなえるゾウ」 水野 敬也 「ゲーム開発者のためのAI入門」 David M. Bourg, Glenn Seemann 「北欧デザイン<2>」 渡部 千春 「北欧デザイン<1>」 渡部 千春 「ヒューマン2.0」 渡辺 千賀 「中国・ロシア同盟がアメリカを滅ぼす日」 北野 幸伯 「超ロング・セラー 絶滅寸前商品」 湯浅 豊彦 「The BUG(ザ・バグ)」 すずき ひろのぶ,かとう みつあき 「デザインのデザイン」 原 研哉 「マキアヴェッリ語録」 塩野 七生 「ハンバーガーを待つ3分間の値段」 斎藤 由多加 「星の旅人-スペイン「奥の細道」-」 黛 まどか 「食品の裏側」 安部 司 「On Lisp」 Paul Graham 「ぼくが医者をやめた理由 つづき」 永井 明 「あなたならどうする?」 Jack Nikolaschka 「セキュアプログラミング−失敗から学ぶ設計・実装・運用・管理」 Mark G. Graff, Kenneth R. van Wyk 「「左利き」は天才?−利き手をめぐる脳と進化の謎」 David Wolman 「自分の中に毒を持て」 岡本 太郎 「アトピーの薬を減らす本」 田中 貴子 「岡本太郎「明日の神話」修復960日間の記録」 吉村 絵美留 「X51.ORG THE ODYSSEY」 佐藤 健寿 「アレルギーっ子の暮らし応援BOOK」 佐藤 のり子 「沖縄文化論」 岡本 太郎 「「伝説の社員」になれ!」 土井 英司 「コンピュータの構成と設計(上)」 Patterson & Hennessy 「カラスのジョンソン」 明川 哲也 「ドリルを売るには穴を売れ」 佐藤 義典 「頭がよくなる照明術」 結城 未来 「クロフォードのインタラクティブデザイン論」 Chris Crawford 「いじめの根を絶ち子どもを守るガイド」 Barbara Coloroso 「非常識のすすめ―逆発想の仏教論」 ひろさちや 「Linuxアドバンストネットワーク構築ガイド - HAサーバ構築編」 デージーネット 「イノベーションの達人!」 Tom Kelly, Jonathan Littman 「クリエーター50人が語る創造の原点」 小原 啓渡 「欺術 - 史上最強のハッカーが明かす禁断の技法」 Kevin Mitnick 「楽しい気象観察図鑑」 武田 康男 「入門 Ajax」 高橋 登史朗 「リリカルな自画像」 岡本 太郎 「やぎの目ゴールデンベスト」 林 雄司 「初めてのPython 第2版」 Mark Lutz,David Ascher 「鼻兎」 小林 賢太郎 「なぜ、これがアートなの?」 Amelia Arenas 「芸術起業論」 村上 隆 「まほう色の瞳」 Enrique Barrios 「ラーメンズつくるひとデコ」 ラーメンズ 「R25 つきぬけた男たち」 R25編集部 「美の呪力」 岡本 太郎 「しろのあお」 上大岡 トメ 「ザ・ゴール」 Eliyahu M. Goldratt 「ハッカーと画家」 Paul Graham 「岡本太郎に乾杯」 岡本 敏子 「Fedore Core Expert」 Software Design 「誰も知らない男」 ブルース・バートン 「子どもが育つ魔法の言葉」 ドロシー・ロー・ノルト 「国家の罠」 佐藤 優 「夜回り先生」 水谷 修 「やぎの目絵日記」 林 雄司 「7つの習慣」 スティーブン・R. コヴィー 「まろ、ん?−大掴源氏物語」 小泉 吉宏 「ザ・サーチ グーグルが世界を変えた」 ジョン・バッテル 「ポストモダン・マーケティング」 スティーブン ブラウン 「機動戦士ガンダムさん」 大和田 秀樹 「小エロのひみつ - Webやぎの目研究発表」 林 雄司 「これ、誰がデザインしたの?」 渡部千春 「60分間・企業ダントツ化プロジェクト」 神田 昌典 「ガルシアへの手紙」 エルバート ハバード 「人生は素晴らしいものだ」 オグ・マンディーノ 「ザ・マインドマップ」 トニー・ブザン,バリー・ブザン 「ワインバーグのシステム思考法」 G.M.ワインバーグ 「渋谷ではたらく社長の告白」 藤田 晋 「渋井真帆の日経新聞読みこなし隊」 渋井 真帆 「コラム息切れ」 小野 法師丸 「早朝起業」 松山 真之介 「変な人が書いた驚くほどツイてる話」 斎藤 一人 「35歳から仕事で大切にしたいこと」 村井 勉 「金融広告を読め」 吉本 佳生 「発想する会社!」 トム・ケリー,ジョナサン・リットマン 「エハイク」 吉田 戦車 「人生の旋律」 神田 昌典 「仕事の思想」 田坂 広志 「CPUの創りかた」 渡波 郁 「非常識な成功法則」 神田 昌典 …これ以前は記録してません…
▼ 気に入ってる本
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||