sternって何?
Kubernetes上の複数のポッドとポッド内の複数のコンテナのログを出力してくれる便利ツールです。
ただ、デフォルトのコマンドのみだと目的のログに絞れないことが多いです。そのため今回は目的のログに絞るオプションをいくつか紹介したいと思います。
sternのinstall方法など基本的なことを知りたいという方は sternを使ったpodのログ出力 を参考にしてください。
便利なオプションの紹介
今回はよく使う3つの以下の方法を紹介します。
- 時間で絞る方法
- 要らないログを排除する方法
- 特定の要素が入ったログのみ表示する方法
時間で絞る方法
--since=1s
のオプションをつけると実行する1秒前のものから表示してくれます。
1s
の部分を1m
に変えると1分以内のもの、1h
に変えると1時間以内のものを表示してくれます。
--since
は-s
と省略することもできます。
stern sample-app --since=1s
要らないログを排除する方法
--exclude=INFO
のようなオプションをつけるとINFOという文字列を持ったログを排除して表示してくれます。
INFO
部分は排除したい文字列であれば好きに設定可能です。
--exclude
は-e
と省略することもできます。
stern sample-app --exclude=INFO
特定の要素が入ったログのみ表示する方法
--include=ERROR
のようなオプションをつけるとERRORという文字列を含んだログのみを表示してくれます。
ERROR
部分は限定したい文字列であれば好きに設定可能です。
例えば、userId=10000001
というuserのデータのみを表示したければ、
--include=10000001
のように設定すると10000001
という文字列を含んだログのみ出力してくれます。
--include
は-i
と省略することもできます。
stern sample-app --include=ERROR
複数オプションで目的のログをさらに絞る
上記で紹介したオプションを組み合わせることによって目的のログをさらに絞りやすくすることができます。
例えば、1分以内に発生したINFOログ以外で、特定のuserIdのものを表示したい場合以下のようなコマンドで探すことができます。
stern sample-app -s=1m -e=INFO -i=10000001
参考
他のオプションももっと知りたいという方はぜひ本家のGithubで紹介されていますので、見に行ってみてください。
https://github.com/wercker/stern