2014年3月29日土曜日

supergrepでログをブラウジングする

「apacheやsystemのログをブラウジングしたい。」
こういう要望が増えたのってソーシャルゲームが流行り始めた頃だと思います。
KPIっていう言葉が聞こえてくるようになって、非エンジニアの方もログを見る必要が出てきた。
MapReduceでガッツリ解析もそうなのですが、今、nowなログが見たいんや!!(特に課金周りの)
なんていうのが月初に飛び交ったりするとか、しないとか。
自分で書いても、そんなに難しい話ではないのですが非エンジニアの方も見て、
尚且つ不要なログを簡単に省けるような仕組みというとちょっとめんどい。
更に言えば、この手の悩みって誰もが持つので、やってる人は世の中に沢山居るはず。
自分の記憶だと確かrailsのアプリでログをブラウジング出来るアプリケーションがあったと思うのですが、
思い出せずにgoogle先生にrubyの線で聞いてもまるで見つからず、、、途方に暮れてたら、
「supergrep」というnode.jsで使うとんでも素晴らしいアプリがあったので導入してみました。
インストールについては、node.jsとnpmが入ってればOKです。
私はgitで持ってきますが、宗教的理由などでgitを使えない方はzipで落とせば良いと思います。
https://github.com/etsy/supergrep
こんな感じで簡単にインストール→起動できます。
git clone https://github.com/etsy/supergrep.git ~/supergrep
cd supergrep/
npm install
./runlocal
で、「http://サーバIP:3000/」にブラウザでアクセスすればOK。
設定ファイルは「localConfig.js」です。nameとpathら辺を弄れば、どんなlogにも対応出来ると思います。
ちょっと見てみれば解りますのであえて説明しません。あしからず。
英語でガイドがあるんですが、とりま日本語でWebUIの紹介を。
1
Guideで英語のツアー的なのが見れます。英語読めない人は途中でやめられないので飛ばすの面倒です。
チェックボックスで設定ファイルのnameで指定しているログを切替が出来ます。この例ならWebです。
Max entriesで最大表示数を選択できます。
Max entriesで数を減らした後に数を増やしても、減らした分はリロードしないと再表示出来ないので注意。
2
Wrap linesで折り返しの表示になります。便利な機能ですが使うシーンは少ないかもですね。。
3Reverse sortで、ソートを逆にする(過去から順番にソートをする)事が出来ます。便利だ~。
4Filterでは文字列でフィルタリングが出来ます。デフォルトでは入力キーワード以外を表示になります。
入力キーワードのマッチング行のみを表示したい場合は、Invertにチェックを入れます。
例の場合は404で引っ掛かる文字列のみを表示しています。これが一番使う機能でしょうね~。
5Highlightではキーワード行を黄色く塗りつぶしてくれます。バグを見つけるのも早くなりそうです。
6Clear Logで、現在表示されているログをクリアできます。
もちろん、ブラウザをリロードすれば再表示されますのでご安心を。
とまぁ、いたれりつくせりなツールな訳ですが注意点が幾つか。
・セキュリティをしっかりと。
当たり前の話ですが、セキュリティはしっかり担保しましょうという話ですね。
FWが無い環境では、しっかりとiptables/ufwで守ってやるのが良いかと。
表示させるログについても必要最低限にするのが吉。
・表示行のチューニングを。
デフォルトでは表示行は500です。増やすのは構わないのですが、
ブラウザ、サーバ、共に表示させる労力を考えて環境に合わせてどうぞ。
supergrepを紹介しました。これで快適にロギングしてくだされ。
ここまで色々書きましたが、「log linux grep tail browser」で検索すると結構出てきますね。
ここは参考にさせてもらいましたー。あざっす!あざっす!
「ブラウザから tail -f log | grep keyword できるツール supergrep」 TAKUMI SAKAMOTO’S BLOG
http://blog.takus.me/2013/04/25/supergrep/

0 件のコメント:

コメントを投稿