Glide Note

glidenote's blog

Node.jsで書かれてwebベースのlog streamer「Supergrep」を試してみた

EtsyからNode.jsで書かれた、ブラウザから利用するlogs streamerのSupergrepが リリースされたので早速試してみました。

ツールとしては任意のログが、任意の不要なログを除いた形式で出力され、 そこからさらにブラウザ上で自分でフィルタをかけるようなツールです。

公式の説明としても、

1
tail -f {log filename} | grep -v {stuff you'd expect to see in log lines}

という感じの説明をしていて、解析に必要無いログは排除する設定が任意で出来て、表示されています。

導入環境はSL6.2です。

Node.jsの導入

SupergrepはNode.jsで書かれているので、Node.jsとnpmを導入。 2012年6月29日現在の最新版v0.8.0を導入

1
2
3
4
5
6
7
8
mkdir ~/src
cd ~/src
wget http://nodejs.org/dist/v0.8.0/node-v0.8.0.tar.gz
tar zxvf node-v0.8.0.tar.gz
cd node-v0.8.0
./configure
make
sudo make install

npmの導入

1
2
3
sudo -s
curl http://npmjs.org/install.sh | sh
exit

Supergrepの導入と起動

とりあえずデフォルトのまま起動。

1
2
3
4
5
6
mkdir ~/repos
cd ~/repos
git clone git://github.com/etsy/supergrep.git
cd supergrep
npm install
./runlocal

http://hostname:3000にアクセスしてみると下記のような感じのガイドが表示される

と説明が続く。

Supergrepの設定

Supergrepの設定は同梱されているlocalConfig.jsに記載。 私は下記のように修正。当然ですが、apache以外のlogにも使えます。

Supergrepがlogを読み取れないといけないので、権限を修正

1
sudo chmod 755 /var/log/httpd/

Supergrepを動作

設定が済んだら、再度Supergrepを起動してみる。

1
./runlocal

apache_log403でハイライトした感じ

ログサイズがでかい場合は、どのくらいの負荷になるのかなど検証しないといけないですが、

  • サポートの人とかサーバに入らずブラウザからログを閲覧
  • デプロイ直後のログ確認

とかに向いてるかなという印象。 不要なログが排除されててログの見通しがよく、ターミナル上で見るより見やすい。

でも今だとfluentd+mongodbとかで、そういう環境を整えるのが良いかなーと思ったりも。

Etsyはサイトの見た目とは対照的に、SolrのIndexレプリケーションにBitTorrentを使っていたり、 技術的に尖ったことをやっていて面白い会社ですね。

Comments