0

Googleログビューアに標準出力のログが表示されない、またはkubectl logs <pod>を使用している。クラスタではクラウドロギングが有効になっており、フルノードコンテナが各ノードで実行されています。Google Container Engineの標準出力ログが表示されない

例Pythonコード:

logger = logging.getLogger() 
logger.setLevel(logging.INFO) 
handler = logging.StreamHandler(sys.stdout) 
handler.setLevel(logging.INFO) 
logger.addHandler(handler) 
logger.info("test log") 

their docsから「反ポッド」の例では、私のクラスタ上で作業を行うので、fluentdコンテナは、標準出力を拾うとログビューアに送信されます。

私は試してみるべきことについて何か提案しますか?前もって感謝します。

答えて

3

ログは明らかに標準出力になります。kubectl logs <pod_name>を実行するとログが表示されません。 Googleログビューアにも表示されません。

これは、stdoutに送信されるログは、Dockerコンテナのエントリポイントであるプロセスから取得された場合にのみ取得されるためです。シェルやcronジョブで行われることは表示されません。

私の場合、私はスクリプトを呼び出すcronジョブを持っていました。コンテナのエントリポイントとしてスクリプトを実行すると、ログが正常に表示されました。

0

kubectl logs podを実行したときにログが表示されない場合は、アプリケーションのログがstdoutまたはstderrにならないことがほぼ確実です。

ローカルでアプリケーションをdocker runにするとどうなりますか? docker logsは、期待するログを表示しますか?少なくとも、それを修正するためのさまざまなアプローチで遊ぶのがより速い反復サイクルになるはずです。

+0

私はそれを理解しました。ログはstdoutに送られていましたが、 'kubectl logs'を実行しても表示されませんでした。答えは以下の通りです。 – user326502

関連する問題