web-dev-qa-db-ja.com

ローカルファイルへのOpenShiftでPODのログを取得する方法

私はDocker Imageを使用して構築されたコンテナとしてOpenShiftをオンにしているスプリングブートアプリケーションを持っています。アプリケーションのログインを有効にして、すべてのログを印刷しました。これで、私の要求が失敗しているため、PODのログファイルを検討してエラーを確認します。コマンドラインオプションoc logs -f <podname>をCMDプロンプトに印刷するだけでなく、ログ全体をサーバーからローカルファイルにコピーする必要があります。特定の行やエラーがあることがわかります。も可能ですか?

5
Lucia

rsync コマンドを使用して、ポッド内外のファイルをコピーできます。

または、logsコマンドを使用して、ファイルにリダイレクトするだけで、ローカルで編集できるようにしてください。

oc logs  <podname> &> /path/to/file
 _
1
Mike

oc rsync

上記のようにoc rsyncを試してみてください。

oc rsync <pod>:/path/to/file localfilename

しかし私の場合私は得た:

WARNING: cannot use rsync: rsync not available in container <pod>

oC CP

だから私はoc cpを試してみました、そしてそれはうまくいった:

oc cp <namespace>/<pod>:/path/to/file local_filename

名前空間を指定せずにCOPYコマンドは機能しません(エラーメッセージなし)、PODがどのプロジェクトに属していました。

ポッドのプロジェクト/名前空間を識別します

  • <pod>はポッド名です
  • <namespace>は実際には<pod>が属するプロジェクトです。
  • oc projectを使用して現在のプロジェクトを一覧表示する
  • oc projectsすべてのプロジェクトをリストします
  • またはすべてのプロジェクトでPOD名を検索oc get pods --all-namespaces | egrep <pod>

重要な注意点

 # !!!Important Note!!!
 # Requires that the 'tar' binary is present in your container
 # image.  If 'tar' is not present, 'kubectl cp' will fail.
 # about my environment
 # oc version
 # oc 3.6, openshift 3.7, kubernetes 1.7

ドキュメント:

OpenShift 4.3 OpyICIOMのドキュメント - ファイルのコピー

1
ionescu77

oCログpod_name -n project_name> filename.log

これは私にとって機能します

0
Lucia
  1. Oc loginコマンドを抽出してください。
  2. CLIクライアントのログインコマンドを使用してOCにログインします。
  3. PODがホストされているネームスペースに移動 - > OCプロジェクトプロジェクト名
  4. 入力in - > OCログpodname> pods_logs.txt

ログファイルは現在のディレクトリに生成されます。

0
GeekWoman

oC CLIツールからログインしてから、プロジェクトに切り替え、実行:

oc logs <podname> >> <podname>.log
 _
0
Megadotnet

ログをCMDプロンプトに印刷するだけでなく、ログ全体をサーバーからローカルファイルにコピーする必要があります。特定の行やエラーがあることがわかります。も可能ですか?

PODが実行されているノードで_/var/log/containers_の確認はどうですか?シンボリックリンクであるすべてのコンテナログが_<pod name>_<namespace>_<container name>-<hash>_形式です。基本的に、_oc logs_はそこに同じコンテナログも参照します。

例えば。>

_node ~# ls -1 /var/log/containers
alertmanager-main-0_openshift-monitoring_alertmanager-123...789.log
alertmanager-main-0_openshift-monitoring_alertmanager-456...123.log
alertmanager-main-0_openshift-monitoring_alertmanager-proxy-789...456.log
...
_
0
Daein Park

OC CLIツールから実行します。

oc logs pod_name -n project_name > filename.log
 _
0
icaromagnago

ファブリックポッドからローカルマシンにファイルをダウンロードするには

  • OCログインコマンドでファブリックインスタンスに接続する[。]。

    oCログインURL - トークン=&lttoken >>

  • 端末を使用してPODを接続することを確認してください[.____]。

    oC rsh&ltpodname>

    それがポッドに接続しているかどうかを確認し、いくつかのls -lhを実行します(応答を与えるはずです)

  • ファイルをリモートポッドからローカルにコピーするには:[。____]。

    oC RSYNC&LTPODNAME&GT:&LTPATH> /logs.txt localFileName

0