Web エンジニアであれば, Apache のアクセスログを tail -f で流しながら確認することは多いのでは無いでしょうか.
通常は白黒で非常に見づらいと思いますが, 以下の記事を参考に, カラフルにしてみました.

RubyでANSIカラーシーケンスを学ぼう! (hp12)

今回用意したコードはこちら.

shebang を合わせてもたった 4 行です.
こちらはログフォーマットに依存するので, ご注意ください.
combinedvhost_combined といったログフォーマットを前提としています.

以下のようにして使用します.

$ tail -f /var/log/apache/path_to_access_log | ./colorize.rb

実際の使用例は, 右の画像の通りです.
(このブログのアクセスログです. IP 等は枠外にはみ出させました.)
tail -f なので, このようなログがずっと流れてきます.

私の場合は, リクエストメソッド, リクエストパス, ステータスコードに色付けしています.

上記の記事では HighLineTermColor といった gem を利用していますが, 私の場合はこのワンライナーの正規表現で十分だったので, それで済ませてしまいました.
それぞれの用途によっては, さらなるカスタマイズや, より一般化されたツール化なども考えられると思いますが, とりあえず一例として.

あとはこれを, 以下のような less の使い方に対応させる方法があればいいのですが, 私がやった限りはわかりませんでした…

less の tail -f モード的な何か (YoshioriのBlog)

どなたか, いい方法があれば是非教えてください…
それでは今日はここまで.

これまでは XREA の有料ホスティングを利用していましたが、さくら VPS に移行しました。

この移転にあたって、大体以下のような作業を行っています。

  • さくら VPS 契約
  • OS は Ubuntu 10.04 (32bit) をインストール
  • ログインを公開鍵方式に限定して sshd を起動
  • ufw でファイアウォールの構築
  • aptitude や tasksel などで LAMP 環境の構築
  • WordPress 最新版をインストールし、テスト環境に
  • Git をインストール
  • テスト環境を Git リポジトリにチェックイン
  • RVM をインストール
  • WordPress 用とは別に Redmine 用ユーザーを作成し
  • Redmine 用ユーザーに RVM で Ruby 1.8.7 をインストール
  • Redmine 用ユーザーに Redmine をインストール
  • Redmine にブログ用のプロジェクトを作成
  • Redmine に、ブログ移転のために必要なタスクをチケットとして登録
  • Git リポジトリを Redmine と連携
  • Postfix をインストール
  • Redmine の更新が、Postfix を通じてメール通知されるように変更
  • 必要そうな WordPress プラグインをインストール
  • Apache を mod_proxy でリバースプロキシ化
  • munin をインストール
  • Mysql にスロークエリログが出力されるよう設定
  • 旧サーバーから WordPress の記事をエクスポート
  • 新サーバーに WordPress の記事をインポート
  • 本番環境用の VirtualHost を作成
  • テスト環境から git pull し、本番環境の構築
  • /etc/hosts を書き換え、擬似本番テスト
  • DNS の A レコードをさくら VPS のものに切り替え

大体こんな感じです。順番は必ずしもこの通りではありませんが。

さくら VPS では root 権限がもらえるので、いろいろインストールできるし、 Apache や MySQL についても細かく設定・監視ができるので楽しいです。 XREA のときにはできなかったような、より実践的なサーバー運用を学んで、このブログにも残していければと思います。

$ ruby -ne 'puts $_.downcase.scan(%r|<([a-z0-9]+)[^>]*>|i)' ./index.html | sort | uniq
a
body
br
dd
div
dl
dt
h1
h2
h3
h4
head
html
img
input
li
link
meta
p
script
title
ul

ね、簡単でしょ?