今のところ WiKicker 自体にはアクセスログ機能はなく、Apache のそれに頼っている(NaneyOrgWiki ではサーバ側で combined log を提供していないので別途自前で、似非 combined log を吐かせている)。
1日毎程度のアクセス統計チェックはこれでまぁある程度済むのだが、それとは別に瞬間的なアクセス状況を知りたい時がままある。 特にサーバの負荷が上がりつつある時は
などをチェックしたい。 ロボットのアクセスがひどい場合は早急にはじく必要があるし。 しかし、生アクセスログの目視チェック(+grep etc)では限界がある(wiki のURIはページ名がエスケープされているからパッと見どのページかわからないし)。
ということで、直近のログを簡単にチェックできるような機能を検討。 まずはログをどこに取るか。 複数のCGI プログラムのプロセスから、ガシガシ書ける必要有り。
あたりか。 直近の数百アクセスだけあれば良く、逆にそれ以上のログはばんばん破棄したいのだが何が一番いい実装かなぁ。
シンプルに普通のファイルに append するのが一番楽だが、ログが増えると tail を取るのが遅くなるだろうし、ログを切り詰めるのも面倒。 Perl の Tie::File を使うとファイルの各行を配列要素に見立てて push、 unshift、splice ができるのだが、やはり切り詰めに時間がかかりすぎる。
使えそうなモジュールがないかいろいろCPANを検索して、とりあえずどんどんビルドしてみる(サーバの Perl が 5.005_03 なので、目的にあっても使えないかもしれないし)
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
nDiki は1999年1月に始めたコンピュータ日誌を前身とする Naney の Web 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。
※内容は個人的見解であり所属組織とは関係ありません。