ログファイルの取得

オンプレミス・サーバーで発生したエラーを調査させていただく際、Dockerコンテナのログファイルの共有をお願いすることがあります。そこで、このノートでは共有をお願いすることの多い、サーバーあるいは、スケジューラーのDockerコンテナのログファイルの取得方法を紹介します。

オンプレミス・サーバーのログファイルの取得

まずサーバーのDocker コンテナIDを取得する必要があるため、docker psを実行します。

すると以下のような結果が出力されます。

出力結果から、IMAGE名が「exploratory」で始まり、COMMAND名が「./start.sh」の行を探します。

該当する行が見つかったら、その行のCONTAINER IDを確認してください。上記の例では、014cbe0146fcがサーバーのDockerコンテナのIDとなります。

サーバーのログファイルは以下の場所にありますので、<サーバーのコンテナID>をご利用のサーバーのコンテナIDに置き換えて、サーバーのログファイルを取得してください。

/var/lib/docker/containers/<サーバーのコンテナID>/<サーバーのコンテナID>-json.log

上記の例では、サーバーのログファイルは以下の場所に保存されていることになります。

/var/lib/docker/containers/014cbe0146fc/014cbe0146fc-json.log

スケジューラーのログファイルの取得

スケジュールを実行した際のログファイルはサーバーのログファイルとは別で管理されています。

スケジューラーのログファイルを取得するには、スケジューラーのDocker コンテナIDを取得する必要があるため、docker psを実行します。

すると以下のような結果が出力されます。

出力結果から、IMAGE名が「scheduler」で始まり、COMMAND名が「./start.sh」の行を探します。このとき、COMMAND名が「./start_agendash.sh」というCOMMAND名と混同しないようにご注意ください。

該当する行が見つかったら、その行のCONTAINER IDを確認してください。上記の例では、b8891cd93acfがスケジューラーのDockerコンテナのIDとなります。

サーバーのログファイルは以下の場所にありますので、<スケジューラーのコンテナID>をご利用のスケジューラーのコンテナIDに置き換えて、スケジューラーのログファイルを取得してください。

/var/lib/docker/containers/<スケジューラーのコンテナID>/<スケジューラーのコンテナID>-json.log

上記の例では、サーバーのログファイルは以下の場所に保存されていることになります。

/var/lib/docker/containers/b8891cd93acf/b8891cd93acf-json.log

Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio