Blosxommerならお分かりの通り,過去のエントリ(有益なトラバやコメント付き)にスパムトラバやスパムコメントを喰らうと,recentwritebacks_treeプラグインで表示する最新のトラバやコメント一覧にそのエントリが表示され,しかもスパム削除後も最新一覧のトップにそのエントリが表示されたままになってしまいます.このように,トラバやコメントの順番が狂ってしまうのは,個人的にもの凄く嫌で,ずっと前からどうにかならないものかと無い頭を悩ませていました.しかしこの度,スパムブロッカーでもお世話になっているKANGAROO-OASISのcolor99さんが,WB_editorという超便利なものを開発してくださいました.これにより,前述の僕の悩みは解消されました.
WB_editorは,AHAH(Ajaxの一種だそうです)を用いてwbファイルをブラウザ上から編集できるようにしたツールです(prototype.jsが別途必要).スパム投稿の削除,2重投稿の削除,文字化けの修正はもちろんのこと,スパムログファイルやリファラスパムログファイルの編集も可能です(ログを取っている場合に限る).つまり,間違ってスパムとして弾いたトラバやスパムを,ブラウザ上からエントリへ反映させることができるのです.編集したファイルのタイムスタンプは,リファラスパムの編集以外は最新のトラバかコメントの日付に自動更新されます.よって,トップページに表示する最新のトラバ&コメント一覧の順番が狂うことはありません.なんと言うことでしょうか.素晴らしい!
僕はとりあえず,スパム投稿や2重投稿の削除と文字化け修正ができるようにしました(個別エントリページの最下部に設置.設置に要した時間は15分程度).現時点では最新のコメント一覧の順番が狂っていますが,この理由は過去にwbファイルを手動でいじり,FTPでサーバにあげたため,タイムスタンプが狂ってしまっているからだと思います(手動でいじったwbファイルでも,WB_editorでタイムスタンプを変更することができました.詳しくはコメント欄参照).手動更新していないwbファイルについては,こちらが意図した動作をすることを確認しました.長い間悩んでいたことが解消したので,今はもっとWB_editorを使ってみたい気持ちですが,そのことはスパムが大量発生することと同じ意味ですから,何とも複雑な思いを感じている次第です.
WB_editorは,現在はまだベータ版で,正式にはリリースされていません.詳しくは,以下に挙げるKANGAROO-OASISのWB_editor関連のエントリをご覧ください.Blosxommerは是非モニターになられることをオススメします.デバッグや機能向上に貢献できれば言うこと無しですが,何より本当に便利ですから.
・予告:WB_editor モニター募集 (2007/09/01)
・WB_editor機能拡張 (2007/09/03)
・WB_editor βリリース (2007/09/08)
Posted at 03:38 って、夜更かししちゃったんですね。
リリースは朝にした方が良かったかな?
>現時点では最新のコメント一覧の順番が狂っていますが,この理由は過去にwbファイルを手動でいじり,FTPでサーバにあげたため,タイムスタンプが狂ってしまっているからだと思います.手動更新していないwbファイルについては,こちらが意図した動作をすることを確認しました.
「過去にwbファイルを手動でいじり,FTPでサーバにあげたため,タイムスタンプが狂ってしまっている」物についても、WB_editorでいったん読み込み、編集せずに再度書き込みすれば、ファイルのタイムスタンプは直りますので、確認してみて下さい。
>長い間悩んでいたことが解消したので,今はもっとWB_editorを使ってみたい気持ちですが,そのことはスパムが大量発生することと同じ意味ですから,何とも複雑な思いを感じている次第です.
「WB_editorを使う事」=「スパムが大量発生する」という意味は、
「WB_editorを使う」=>「スパムが大量発生する」
「スパムが大量発生する」=>「WB_editorを使う」
の2通りで解釈される可能性がありますが、後者の意味ですよね?
あ、1箇所エントリ記述変えて下さい。
AHAR → AHAH
参考: http://labs.cybozu.co.jp/blog/akky/archives/2005/11/ajax_ahah.html
どこかで私も間違えた事書いたかしら?
ちょうど夜更かしできるときに連絡をいただいたので,ここぞとばかりに夜更かししちゃいましたw.
タイムスタンプについては,「過去にwbファイルを手動でいじり,FTPでサーバにあげたため,タイムスタンプが狂ってしまっている」物についてもWB_editorでいったん読み込み,編集せずに再度書き込みしてみたのですが,タイムスタンプは直りませんでした.この辺り,よく分からないのですが,こちらで何か変なことをやってしまったのだと思います.
「WB_editorを使う事」=「スパムが大量発生する」という意味は,もちろん後者の意味ですよ.スパムが無ければWB_editorを使う必要もないわけですからね.
AHARからAHAHへの修正はこれからすぐにやります.ちなみに,color99さんの9月1日のエントリでもAHARになっています(これをコピペさせていただきましたw).
>タイムスタンプについては,「過去にwbファイルを手動でいじり,FTPでサーバにあげたため,タイムスタンプが狂ってしまっている」物についても WB_editorでいったん読み込み,編集せずに再度書き込みしてみたのですが,タイムスタンプは直りませんでした.この辺り,よく分からないのですが,こちらで何か変なことをやってしまったのだと思います.
recentwritebacks_treeプラグインで表示する最新のトラバやコメントで表示される最後の投稿の日付と、ファイルのタイムスタンプが一致していますか?
一致していないとすると、WB_editorが機能していない可能性が有ります。
一致しているとすると、.wbファイルを手動で直す時に、記事の中で保存している日時を変えてしまった可能性が有ります。
正しい日時が分かれば、あるいは大体の日時でよければ、その日時となる様に、WB_editorで日時を変えて保存しなおせばいいです。
>ちなみに,color99さんの9月1日のエントリでもAHARになっています(これをコピペさせていただきましたw).
多分、どこかで間違って書いたのだろうと思いましたが、やっぱりそうでしたか。上記エントリ直しておきました。
>タイムスタンプについては,「過去にwbファイルを手動でいじり,FTPでサーバにあげたため,タイムスタンプが狂ってしまっている」物についても WB_editorでいったん読み込み,編集せずに再度書き込みしてみたのですが,タイムスタンプは直りませんでした.この辺り,よく分からないのですが,こちらで何か変なことをやってしまったのだと思います.
もう一つ可能性が有ります。
http://color99.hp.infoseek.co.jp/cgi-bin/blosxom2/entries/doc/makeweb.cgi?running.txt#id12
に似た事がそちらで起きているのかもしれません。
FTPでアップされた.wbファイルの所有者又はパーミッションが、CGIで作成された物と異なってませんか?
ひょっとして、FTPでアップした.wbファイルはCGIから書込み不可の状況になっていませんか?
もし、そうならblosxomのコメントページからもコメント投稿出来ない可能性が有ります。
タイムスタンプの件ですが,結論から書くと「WB_editorでいったん読み込み、編集せずに再度書き込みすれば、ファイルのタイムスタンプは直ります」というアドバイスを何度か繰り返す内に,タイムスタンプが直りました.昨夜やっても直らなかったんですけどねぇ.ん~・・・.というわけで,現在はrecentwritebacks_treeプラグインで表示している最新のコメント一覧は,正しい時系列になっています.お手数をおかけいたしました.
ふむ、だとするとdynamic_cashが何らかの理由で更新されていないか、CGIが何らかの理由で動いていないのでは?
以前から時々出る(今も結構出る)
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
というサーバー側の動作不良が原因の可能性も有りますね。
サーバの動作不良が原因という推察は納得できますね.ちょうどタイミングが悪く,cgiが正しく動作しなかったのかもしれません.
503エラーは僕も参っているんですが,アクセスが集中するとどうしようもないんです.だいたい1時間に100PVを超えるような場合に503エラーが発生します.ちなみに,今日はエアギター関連のアクセスで200PV/hourを超えていました.dynamic_cashを使って半静的にしたり,試行錯誤はしているんですが,やっぱりダメですね.かといって,今(XREA)より多くのお金を払って格上のサーバに乗り換えるのも嫌なので,もう諦めています.
>1時間に100PVを超えるような場合に503エラーが発生
これはXREAはどういう見解なのでしょうか?
サーバー側の処理能力?
1時間に100PVで処理能力をオーバーするのもちょっと貧弱な気がしますね。
私も前のサイトはXREA(無料)ですが、変なエラーが頻繁に出ていたので、XREAは何か問題を抱えているような気がします。
もし、本当にサーバー負荷で503エラーでてるとすると、もう少しサーバー負荷が大きくなると、強制的にページアクセスを止められる可能性有りますので、諦めているとまずいような気がします。
あと、このページの最下段に設置してあるWB_editorを見て思ったんですが、(自分のページで設置している時には何も思わなかったのですが…)「管理用」とか何かコメントを書いておかないと、投稿者が迷いそうな気がしますね。
503エラーは頻発するのですが,xreaが提示するサーバ負荷量や転送量の上限は大きく下回っています.でも逆に,xreaが提示する数値を下回っているのに503エラーが出るのはよく分からない点です.良い機会なので,先ほどxreaのサポートへ問い合わせの連絡をしてみました.そのうち回答が返ってくると思います.
(ちなみに,ダイナミックキャッシュプラグインを導入する前は完全な動的生成だったので,xreaが提示する数値を大きく上回ってしまい,注意を受けたことがありました)
WB_editorの件については,「管理者用」を追記しました.ご指摘ありがとうございました!
xreaから回答がありました(超早い!!)
現在は,負荷が高いというよりは,プロセス数が非常に多い状態にあると言われました.「cgiスクリプトを改良し,起動するプロセス数を減らしてください」と・・・.
言われたことは何となく理解できますが,それを実行するとなると,はっきり言って僕には無理です.例えばflickrを外すとか,そういった対処はできますが,それがプロセス数を減らすことに繋がるのかということも分かりません・・・.
私もプロセスについて問題になった事無いので、いいかげんなコメントになりますが、XREAのコメントを私なりに解釈すると、
「ブログの設置に問題が有る」
という事だと思います。
例えば、ブログのCGIを起動してそのCGIのどこかで無限ループ(又はそれに近い状態)が形成されプロセスがどんどん生成されるが、サーバー側のプロセスを止めるタイムアウトとの兼ね合いで、破綻しない状態になっていたとすると、このような状態になりそうに思います。
使用しているプラグインのどれかに問題が有るのではないでしょうか?
私が使っていないプラグインである、dyanamic_cashかrecent_entriesプラグインあたりが怪しい気もしますが、その他bsk同梱以外の物は全て疑う必要有りです。
spam_blockerもひょっとしたら影響が有るかもしれません。
もし、私だったら、同じサーバー上にブログをコピーして動かして、同じ症状が起きるかを確認します。
もし、起きるので有れば、プラグインを一旦bskレベルまで外してみます。
おそらく、外したプラグインの間のどれかが悪いのでしょうから、一つづつ追加していって、どれが悪いか調べます。
すぐには難しいでしょうから、時間の取れる範囲で少しづつやるしかないんでしょうね。
ん~なるほど・・・.面倒くさいですが,しらみつぶしにやっていくしかないんでしょうねぇ.とりあえずは,使っていないプラグインを外す,無くてもいいプラグインは外す,自動更新機能があるものは更新頻度を低くする,などといった対策をとりたいと思います.
いろいろとコメントをいただきまして,ありがとうございました!
ちょっとrecententriesプラグインを覗いてみました。
ざっと眺めただけなので、間違っているかもしれませんが、次の様な処理の様に見えます。
1 sub filterを使っており全部の記事のタイムスタンプを取得している。
2 タイムスタンプ順に並べたファイルリストを作成
3 そのリストに従い、順にファイルを開いてタイトルを取り出す
(表示する記事の数だけ)
4 それを表示形式に合わせて整形してグローバル変数に保存
どの程度の処理単位で1プロセスとなるのか分かっていないのですが、例えば、タイムスタンプを取得するのが1プロセスとなるとすると、これが1000エントリあれば1の処理で1000プロセス発生します。また、ファイルを開いて記事を読み出すのが1プロセスとすると、例えば100表示させる指定ならば、3の処理で100ヶのプロセスが発生します。
2197エントリも有ると、1の部分が問題な気がします。
まずはこのプラグインをはずして様子みたらどうでしょうか?
的外れでしたらすみません。
トップページを見るとcategories/archivesプラグインも使ってますが、これらもsub filterを使っていますので、ここが問題だとするとこれらも外す必要が有るでしょう。
blosxomでは多くのエントリをハンドリングする様には作られていないので、2000を超えるエントリを持つ場合、データベース型のブログツールに変えるか、複数のblosxomに小分けした方が良いと思います。
blosxomの場合、適切なエントリ数がいくつかはっきりしませんが、一つのcgiで管理するエントリは1000程度以内に抑えた方が良いかな?と思っております。
私の場合は、500程度をこれまで一つの目安にしてきていました。
おっと、私の所も500超えていますね。
そろそろ、新CGIに移るかな?
うちはrecent_entriesプラグインは使っておらず,代わりにheadlinesプラグインを使っています.しかしこれもsub filterを使っているので,やっていることは同じなのかもしれません.
個人的なこだわりで,トップページには「最新のエントリ」「カテゴリ一覧」「年別アーカイブ」は表示したいのです.しかし個別ページについてはその限りでないので,個別ページの「最新のエントリ一覧」は削除しました.また,トップページについても,表示件数を50件から30件に減らしてみました.これでしばらく様子を見たいと思います.
ブログを複数のblosxomに分割するというのは・・・ん~できればやりたくないですね.でもいつかそんな日が来るのかなぁ(もう来てる!?w).
えーっと、この推測が正しければ、フレーバーを変えて表示を消しただけでは駄目です。
処理が終わった後の表示の為の読出しが無くなるだけなので、sub filterを使っているプラグインを全て削除するか、分割しない限り全く効果は無いと思います。
が、blosxomの構造については私も全て把握している訳ではないので、blosxom.cgiをざっと見なおしてみた印象では、sub filterの前で既に全エントリにアクセスしている様に見えます。
だとすると、プラグインの問題ではなく、blosxom.cgiとサーバーの許容するプロセス数との関係で決まる話になります。
プロセス数を減らす(エントリを減らす)か、より多くのプロセスを許容するサーバーへ移転する必要が有りそう。
ちょっといくつかのblosxommerのブログを見てみましたが、多くが500未満で、kyoさんでも1000強だと思いますので、やはり1000以下程度に分割すべきでは?
headlines-v2i1も覗いてみましたが、こちらではsub filterで、キャッシュを使った独自のエントリ管理をする為と思いますが、キャッシュが切れると全エントリを読み込んでます。
blosxom.cgiでは全エントリのタイムスタンプ情報を取得していますが、これはプロセスが発生しても非常に短時間で処理終了し、プロセスがすぐに消滅すると思います。
これに対してheadlinesプラグインでは全エントリのファイルを一旦開いて読み込んで処理を行っています。これは同じ様にプロセスが発生しますが、上記と比べて非常に長い処理となり、なかなかプロセスが終了しない事が想像されます。
よって、headlinesプラグインが原因の可能性が高いと推測します。
このプラグインのみを一旦外して様子みたらどうでしょうか?
ちなみに、categories/archivesプラグインでは、ファイルを開いて読み込む処理はしていないみたいですし、recententriesプラグインでは表示数分のファイルだけを読み込むだけなので、全エントリに比べれば影響は少ないし、表示数を減らせば更に負担を軽減出来ます。
headlinesプラグインが問題ならば、recententriesプラグインに変更してみたらどうでしょうか?
いろいろ調べていただき,ありがとうございます!とりあえずheadlinesプラグインを外してみました.これで数日様子を見たいと思います.最新のエントリ一覧は,kyoさんもおっしゃっていますが,必要ないとは僕もちょっと思ったりしているんです.ですから,今後無くす方向で考えるかもしれません.でも今は表示できるのであれば表示したい考えです.
残念ながらハズレですね。状況が改善してはいないです。
自分のサイトではほとんど何も処理しないが、他のサイトでの処理待ちが有ると、消滅するまでの時間の長いプロセスで負荷が軽いという事になってXREAからの指摘のような症状になりそうに思いますが、そのような処理はありませんか?
今朝から503エラーが頻発していますね.かなり異常な頻発具合です.これほど連続で503エラーが出たことって,いままで無かったと思います・・・.
>自分のサイトではほとんど何も処理しないが、他のサイトでの処理待ちが有ると・・・
これは,ちょっと意味が分からないんですが,つまりxreaのサーバは共用だから,自分が気をつけても誰かが負荷の高いことをすれば,そのサーバは高負荷となり,503エラーが出てしまう,ということですか?
また,
>長いプロセスで負荷が軽い
これは「負荷が重い」の間違いですか?
追記(2007/09/10, 18:12):
今朝は503エラーが出まくっていましたが,今はアクセス数の割には503エラーの出現頻度が低い気がします.やはりheadlinesプラグインを外した意味はあるのかなぁ・・・.
WB_editorは,コメントの追記も簡単にできて便利ですね.
:: 今朝から503エラーが頻発していますね.かなり異常な頻発具合です.これほど連続で503エラーが出たことって,いままで無かったと思います・・・.
いえ、ここにコメント書き込む時からほとんど変わっていません。
凄く異常な量の出方です。
いまも同じです。
出し方も大体分かってきました。
ブラウザを5回位連続してリロードするとエラー出ます。
::>自分のサイトではほとんど何も処理しないが、他のサイトでの処理待ちが有ると・・・
::これは,ちょっと意味が分からないんですが,つまりxreaのサーバは共用だから,自分が気をつけても誰かが負荷の高いことをすれば,そのサーバは高負荷となり,503エラーが出てしまう,ということですか?
朝出勤前に書いたのでちょっと分かり難い表現だったですね。
ご理解された内容とは異なります。
まず、何かは分からないが、今回のエラーを起こす要因の処理が有るとします。
それはblosxom.cgiを呼ばれた時に、それをトリガーとして発生する処理のはずです。
で、この問題の処理は、自分のサーバーでは処理をせず、処理を外部に丸投げするするような処理です。だから外部から結果を受け取るまでは何もせずにただ待っているだけのプロセスです。
だから、自分のサーバーの負荷は軽いのですが、外部から結果を受け取るまでに時間がかかるから、プロセスがなかなか終了しません。で、次々とblosxom.cgiを呼ばれると、プロセスが新たに発生するので、どこかでプロセス数オーバーになるというケースです。
::>長いプロセスで負荷が軽い
::これは「負荷が重い」の間違いですか?
いえ、上記説明を参照下さい。
普通に考えたらblosxom.cgiかそのプラグインくらいしか考えられないですが、その他に何かありませんか?という事です。
他にこころあたりが無いなら、blosxom.cgiかそのプラグインを疑うしかありませんが、500とか1000エントリ程度まではblosxomでも実績有るので、たかだか2倍とか4倍でここまで悪くなるのも考え難いから、blosxom.cgiかそのプラグインという事なら、やはりプラグインを疑うべきだと思います。
ちなみに、どのようなプラグインが入っているでしょうか?
公開出来ないプラグインは、自分でこっそり外して影響ないか調べていただくとして、公開できるプラグインなら一応ざっと中身見てみることは可能です。
::追記(2007/09/10, 18:12):
::今朝は503エラーが出まくっていましたが,今はアクセス数の割には503エラーの出現頻度が低い気がします.やはりheadlinesプラグインを外した意味はあるのかなぁ・・・.
どうでしょうか?
あまり差が無いように思います。
::WB_editorは,コメントの追記も簡単にできて便利ですね.
ちょっと変更すればエントリの編集も同様に出来たりします。
あーやはり503出ますね・・・.
>まず、何かは分からないが、今回のエラーを起こす要因の処理が有るとします。・・・(以下)
なるほど.よく分かりました.自分のサーバの負荷率や転送量は低いので,color99さんがおっしゃるようなことが起きている可能性は大いに考えられますね.xreaはプロセス数の大小を見ることはできないのですが,xreaのサポートが言うんだから間違いないでしょう.
悪さをしているかもしれないプラグインがあるのかないのか.ざっとでも見ていただけるというのであれば,ぜひお願いしたいです.その際,プラグインの数値の設定状況なども関係するかもしれませんから,現在使用中のプラグインをzipにまとめ,メールで送らせていただきたく思います.それでも良いでしょうか?(お返事は,ここに書き込んでいただくか,もしくはメールを送っていただければ幸いです)
う、全部っすか?
ちょっと時間かかるかもしれないですけど、それで良ければどうぞ。
怪しいのが無いかざっと眺める程度しか出来ないので、あまり期待はしないで下さい。
プラグインを送る場合、パスワードだったり、メールアドレスだったり、個人情報で秘匿しておきたい部分は *** とか変更しておき、その旨コメント下さい。
例えば、amazonとかflickerとかいうプラグインが有ったりすると、先のコメントに書いたような事が有りそうですが、そのようなプラグインだったり、別CGIだったり有りませんか?っていうような事を知りたかったんですけどね。
あ,いえいえw.全部じゃなくていいんですけどね.いま数えたら26個もプラグイン使ってました.これをすべて見ていただくのは,いくら何でも申し訳ないですから.
プラグインには,amazonとかflickrというのは使っていません.唯一怪しいのは,google site mapのためのgsitemapプラグインくらいです(うちはgoogleに嫌われているから,gsitemapは外してもいいように思います.外してみようかな・・・).cgi類は,blosxom,config,google(サイト内検索用),WB_edit,の計4つです.
プラグインは,0spam_blocker,1ban_norefer_tb(リンクのないトラバを弾く),2titles_index,archives,back_and_forth,bookmarks(story.***にある「はてな」などのブックマーク数を表示するプラグイン),categories,css,date_title,dynamic_cache,entries_kache,entry_title,google,gsitemap,interpolate_fancy,list_title_at_month,list_title_at_year,meta,notfound,paging,recentwritebacks_tree,rss10,same_category,wikieditish,writeback,x_double_posting_blocker,です.
config.cgiはCGIという拡張子がついてますが、単なるデータです。
blosxom以外のCGIは今回の件には影響しません。
私が使った事の無いプラグインは、以下となります。
1ban_norefer_tb(リンクのないトラバを弾く),
2titles_index,
bookmarks(story.***にある「はてな」などのブックマーク数を表示するプラグイン),
dynamic_cache,
entries_kache,
gsitemap,
interpolate_fancy,
list_title_at_month,
list_title_at_year,
meta,
notfound,
same_category
この内、今回の件に関係しそうなプラグインは、
1ban_norefer_tb,
bookmarks,
gsitemap,
same_category
あたりでしょうか。
これらに限らず外して問題無いプラグインは一旦外して症状確認してみて下さい。
その上で、問題残っていれば、私が使った事の無いプラグインを確認してみるというステップでどうでしょうか?
了解です.
あったら便利だけど無くても致命的には困らない,というプラグインは,1つずつ外していき,原因を追及してみます.結果は後日,メールで報告させてください.
writeback message: Ready to post a comment.