MyRSS.jpサーバー移転作業が完了しました
MyRSS.jp のサーバー移転作業が一通り完了しました。
クローラーの再開が予定より大分遅くなってしまい、土曜日の夕方まで新着ニュースが配信されなかった方もでてしまいました。。
…申し訳ありません。
現在のところ、そこそこ快適に動作しているようですので、クローラーも最短の1時間間隔で走らせています。
サービスを利用されていて、不可解な動作など発見されましたら、ご連絡ください。
なお、クッキー情報は新しくなりましたので、ログイン情報は一旦破棄されています。
ご注意ください(再度ログインが必要です)。
ところで、せっかくですので記録しておいた今回の作業メモを公開しておきます。
なにかと気合に頼って運営していますが、これからも MyRSS.jp をよろしくお願いします。
----------------------------------------------------------------
【新サーバーでの環境設定&テストは一通り完了している状態からスタートです】。
さて、6/11 AM 2:30。これからサーバー移転作業。
今回は apache 1.3 ⇒ apache 2 (prefork)、RedHat ⇒ Fedra Core 3 に変更しているので、試験完了しているとはいえ、若干不安を抱きつつ…
2:40 まずは blog.myrss.jp から。データを新サーバーに転送。
2:46 新サーバーでデータ展開&確認。OK。
2:50 blog.myrss.jpのアクセスログを新サーバーに転送開始
2:51 myrss.jpデータの一次rsync作業開始(本rsyncを短時間で終了させるため)
3:00 blog.myrss.jp新サーバーでログ解析cronセット完了(webalizer)
3:01 blog.myrss.jpネームサーバー切り替え。ログ増加確認【これで blog.myrss.jp は完了】
3:04 myrss.jp新規クローラー、メール配送エンジンストップ【ここからメール配送遅延】
3:06 myrss.jp のアクセスログを新サーバーに転送開始
3:09 myrss.jpクローラーすべて停止【自動の新着ニュース配信が一旦停止】
3:17 myrss.jp新サーバーでログ解析cronセット完了(webalizer)
3:48 myrss.jpデータの一次rsync完了(almost 1hour)
3:49 myrss.jp旧サーバー httpd 停止【ここでmyrss.jpへのアクセス不可に】
3:50 myrss.jpデータの2次rsync開始
3:54 myrss.jpデータの2次rsync終了。最終データ流し込み、チェック。
3:55 myrss.jpのDNSを新サーバーに書き換え【新サーバーでmyrss.jpサービス再開:ダウン時間6分】
3:56 myrss.jp新サーバーでクローラー、メール配送エージェントサービス開始【サービス完全再開】
4:15 一通りの試験。どうも file-max に達しやすいことが判明。調査(※1)
5:30 rotatelogsの設定ミスと判明。対応して安定稼動を確認(※2)
6:15 エラーログなどを精査。まだ未解決問題がある(※3)が、クリティカルでないためアラートを仕掛けて就寝(※4)
9:00 起床。ケータイにアラートは飛ばず、安定性は確認。
9:30 クローラーが途中で停止する状態になっていることを発見。調査。
15:10 クローラーが停止するトラブルの原因が判明。対応完了。
16:30 安定稼動確認。作業終了。
(※1)file-max の件
apache の エラーログに次のようなものが突然出る症状でした。
[Sat Jun 11 03:26:15 2005] [error] [client 61.202.**.***] (24)Too many open files: file permissions deny server access: /var/www/***/***.html
myrss.jpサイトにアクセスしても、同様のエラーがでます。file-max の設定かと思ったのが調査を長引かせました。
(※2)rotatelogsの設定
apache の ログローテートは、rotatelogs を使っています(以前は cronolog を使っていました)。
この引数を一つ書き間違えたために、大量のエラーメッセージがエラーログに出力されており、これがシステムの同時オープンファイル数を食いつぶしていたようです(そんなことがあるんだ…)。
apache のエラーログは、きちんと調べて稼動させないとダメですね。基本を怠っていました。
(※3)未解決問題
一つ、いまだに未解決の問題があります。
次のようなエラーメッセージが apache のエラーログに出力されます。
[client 127.0.0.1] PHP Warning: Cannot modify header information - headers already sent in Unknown on line 0
旧サーバーではこのような問題はなかったので、実に不可解です。
普通に考えると空行とかを入れてしまった「よくあるバグ」なのですが、同じ処理をしても「たまに」出力されるという再現性の低いエラーなので対応しかねています。(5000アクセスに一回くらい出力される)
mb_output_handlerのバグなのではないかと思うのですが、未だに分かりません。。。
(そもそも、Unknown on line 0 って…)
(※4)アラート
適当なスクリプトですが、curl でアクセスして、フッタの「All Rights Reserved」部分が出力されなければケータイにメールを送って httpd 再起動、というちょっと強引なものです。
実際にお世話になることがなくて良かったです;;
#!/bin/csh
set count=`curl -s http://myrss.jp/ | grep Reserved | wc -l`
if ( $count != 1 ) then
echo alert | mail -s alert ケータイのメールアドレス
/etc/rc.d/init.d/httpd restart
endif
以上、サーバー移転作業、お疲れ様でした(と、自分をねぎらってみる・・・^^;)
Posted by Gombei at June 11, 2005 10:20 PM
| TrackBack
お疲れ様です。いつも有り難く使わせてもらっております。
…なんだか微妙に問題も残っているようですが(笑)
今後のレスポンスの向上とか新機能の実装とか、期待しています。
Posted by: n-yoshi at June 12, 2005 01:09 AM