storm logviewer コマンド調査
storm コマンドにはlogviewerというstormの出力するログファイルを任意のポート(logviewer.port
で指定。デフォルト8000。)経由でHTTP公開するという機能がある。
利用方法はとても単純で以下のようにstormクラスタ側のホストで実行するだけ。
(もちろん、stormコマンドは実運用と同じ設定を参照するようになっている前提。 )
$ sudo storm logviewer
storm logviewer
コマンドを実行しているホストに対して、ブラウザ等で以下のようなURLでアクセスするとログファイルが見える。
http://<storm_logviewer_host>:<logviewer.port>/log?file=<file名>&tail=<数字>&grep=<文字列>
file,tail,grepのqueryオプションで制御が可能。
-
fileにて探索するファイルを指定。fileの探索ディレクトリは
logback/cluster.xml
中の任意のappenderのfileのディレクトリを指定することができる。(logviewer.appender.name
で指定。デフォルトはA1)- A1のデフォルトディレクトリは
${storm.home}/logs/
。
- A1のデフォルトディレクトリは
tailで表示するファイル末尾のbyte数を指定できる。行数ではなく純粋なファイル末尾からのバイト数として解釈される。
grepに文字列を指定するとmatchした行だけ表示される。Javaの
String#contains()
メソッドで評価されるだけ。tailで指定された範囲にのみ適用される。
tailとgrepは省略可能。
結論
まあ、ansibleとか使うので別になくてもなんとかなるな、という印象。
セキュリティ的な面など問題ないかちゃんと調査したわけではないので自己責任で..。