昨日の午前6時頃から午後17時頃まで自宅サーバへの接続が
できないようになっていましたが、何とか復旧しました。
いろんな要因が重なって、いろいろと起きていたようです。
とりあえず、簡単にまとめてみました。
・DDNSが更新されなかった。
・Apacheが自動的に起動しなかった。
・一部のメールアカウントで受信ができなかった。
・ネットワークへの接続が突然切れた。
調べてみたら、それぞれ理由があったのですが、
一気にこれだけの問題が起きると困る。。。
それぞれについて話しておくと、
・DDNSが更新されなかった。
ネットワークは復旧しているのに、何故かDDNSが自動更新されなかった。
原因としては、DDNS自動更新用のスクリプトを1ヶ月前に編集したときに、
間違ったことを書いていたらしく、正常に動いていなかった。
本来なら、DDNSの自動更新用スクリプトが正常に動作しないと、
サーバのIPアドレスがわからず、そこでお仕舞いになってしまいます。
ですが、こんなことは想定の範囲内ですので、他の方法をちゃんと用意してあります。
自宅サーバから別サーバへ10分ごとに接続するようなスクリプトが別にあって、
別サーバの方では、その時の接続IPアドレスを記録するようにしてあります。
それによって、DDNSが自動更新されていなくても、IPアドレスは知ることができるので
手動で更新することができるわけです。
ちなみに、そのサーバはここ。
xreaのフリースペース上で管理しています。
IPアドレスの変更タイミングもログとして残っている。
・Apacheが自動的に起動しなかった。
最終的には、はっきりとした理由はわからなかった。
ただ、ログを見ると以下のログが残っていた。
[Wed Dec 17 15:41:44 2008] [notice] modpython: Creating 8 session mutexes based on 256 max processes and 0 max threads.
[Wed Dec 17 15:41:44 2008] [notice] modpython: using mutexdirectory /tmp
[Wed Dec 17 15:41:44 2008] errorFile exists: modpython: Failed to create global mutex 0 of 8 (/tmp/mpmtx7120).
Configuration Failed
何からの理由によって、Mutexを生成するのに失敗した模様。
ただ、これの理由がいまいちわからない。とりあえず、様子を見ることにする。
・一部のメールアカウントで受信ができなかった。
一部のメールアカウントでメールが受信できないようになっていた。
エラーとしては、以下のログが残っていた。
Dec 18 09:08:17 yasuharu qpopper[31656]: mobilemailys at 133.51.82.172 (133.51.82.172): -ERR [SYS/PERM] Unable to process From lines (envelopes), change recognition modes or check for corrupted mail drop.
これだけだと原因がわからなかったが、メールボックスのファイルの中身を見てみたら、先頭に空白が大量に入っていた。
どうやら、ファイルの一部が欠損したらしい。。。
手動で、ファイルを再構成して、メールを受信したら直った。
幸いにも、メールのデータは飛んでいなかった(仮に飛んでいても、
このアカウントはPHSのメールを転送しているだけなので、特に困らない)。
何でこうなったのか、ということを調べてみると、以下のログに突き当たった。
Dec 17 15:19:36 yasuharu qpopper[836]: (v4.0.9) TLSv1/SSLv3 handshake with client at ntibrk112219.ibrk.nt.ftth.ppp.infoweb.ne.jp (121.94.82.219); new session-id; cipher: RC4-MD5 (RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 ), 128 bits
Dec 17 15:19:41 yasuharu qpopper[836]: Stats: mobilemailys 6 38709 51 212786 ntibrk112219.ibrk.nt.ftth.ppp.infoweb.ne.jp 121.94.82.219
Dec 17 15:21:48 yasuharu syslogd: kernel boot file is /boot/kernel/kernel
Dec 17 15:21:48 yasuharu kernel: Copyright (c) 1992-2008 The FreeBSD Project.
Dec 17 15:21:48 yasuharu kernel: Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
Dec 17 15:21:48 yasuharu kernel: The Regents of the University of California. All rights reserved.
Dec 17 15:21:48 yasuharu kernel: FreeBSD is a registered trademark of The FreeBSD Foundation.
Dec 17 15:21:48 yasuharu kernel: FreeBSD 7.0-RELEASE-p6 #0: Mon Nov 24 06:43:33 UTC 2008
(以下略)
そりゃね、一番最後に開いていたメールボックスというのなら、
何となく予想がつきますよ。。。
・ネットワークへの接続が突然切れた。
今回のサーバのトラブルの発端は、実家のブレーカが落ちたことのようです。
電源自体が復旧した時間は、午前6時6分頃。
ただし、マシンは自動的に回復したものの、ネットワークが何故か繋がっていなかった。
さらに、13時頃に実家に電話して、ネットワーク機器を再起動してもらったら、
5分ぐらいだけネットワークの接続が確立して、その後、何らかの理由で切れた。
この理由に関しては、よくわからない。
実際に実家に帰ったときに試すしかなくて、現状ではどうしよもない。
おそらく、考えられる話としては、一部、無線の区間が入っている
(サーバに対してそんなもの使うな、って話だが)ので、そこのコネクションがおかしいか、
IO-DATAのハブ(そろそろ、8年くらい経つ)の調子がおかしいかのどちらかだろう。
実家に帰ったときに実験することにしよう。
大まかに、今回のサーバの障害についてはこんな感じでした。
uptimeは、110日で、その内の数時間だけ止まったと考えれば、
そんなに信頼性が低いわけではないと思っています。