docker ログが取得できない問題の解決方法

docker ログが取得できない問題の解決方法

毎日サービスをチェックしているときに、portainer からコンテナ ログを確認しようとしたところ、右上隅に「コンテナ ログを取得できません」という赤い感嘆符が表示されました。

この問題はこれまで発生したことがなかったので、まずはサーバーにアクセスし、コマンド docker logs -f containerID を使用してログを確認しました。ログは移動できず、特定の時間で停止したままになっていることがわかりました。

しばらく考えた後、サービスログの印刷の問題ではないはずだと考えました。まずは Google で検索してみましたが、私の問題に一致する結果は見つかりませんでした。ログは収集して表示できる場合もありますが、一部のログは収集して表示できないため、Docker によって設定されたログ エンジンに問題があると考えられます。

当初はEFK一式をインストールしたかったのですが、ログの量が足りないと感じたので、dockerログエンジンは変更せず、デフォルトのjournaldを使い続けました。

[root@ad-official xiaoxiao]# docker info|grep ログ
 警告: デフォルトの seccomp プロファイルを使用していません
ログドライバー: journald

journald の公式ドキュメントには次のような説明があります。

man journald.conf ... RateLimitInterval=、RateLimitBurst= システムで生成されるすべてのメッセージに適用されるレート制限を設定します。 RateLimitInterval= で定義された時間間隔で、サービスによって RateLimitBurst= で指定された数よりも多くのメッセージがログに記録された場合、その間隔が終了するまで、その間隔内のそれ以降のすべてのメッセージはドロップされます。ドロップされたメッセージの数に関するメッセージが生成されます。 このレート制限はサービスごとに適用されるため、ログに記録する 2 つのサービスが互いの制限に干渉することはありません。 デフォルトは 30 秒で 1000 件のメッセージです。 RateLimitInterval= の時間指定は、次の単位で指定できます: "s"、"min"、"h"、"ms"、"us"。 あらゆる種類のレート制限をオフにするには、いずれかの値を 0 に設定します。...

ここには、デフォルトでは30秒間に1,000件のログしか受信できないと書いてあります。ここからも分かるように、少し前にDockerで1日のログファイルサイズが3G近くになるサービスをリリースしたところ、他のサービスのログに影響が出てしまいました。journaldによって大量のログが破棄されたので、設定を変えれば問題はなくなるでしょう。

/etc/systemd/journald.conf ファイルを開き、現在のログ出力に応じて RateLimitBurst をデフォルトの 1000 から 5000 に変更します。

[root@ad-official ログ]# cat /etc/systemd/journald.conf
# このファイルは systemd の一部です。
#
# systemdはフリーソフトウェアです。再配布や改変が可能です。
# GNU Lesser General Public Licenseの条件に基づき、
# フリーソフトウェア財団; ライセンスのバージョン2.1、または
# (オプション) それ以降のバージョン。
#
# このファイル内のエントリはコンパイル時のデフォルトを示します。
# このファイルを編集することで設定を変更できます。
# このファイルを削除するだけでデフォルトを復元できます。
#
# 詳細についてはjournald.conf(5)を参照してください。

[ジャーナル]
#ストレージ=自動
#圧縮=はい
#シール=はい
#分割モード=uid
#同期間隔秒=5分
#レート制限間隔=30秒
レート制限バースト=5000
#システム最大使用=
#システムキープフリー=
#システム最大ファイルサイズ=
#ランタイム最大使用=
#ランタイムキープフリー=
#ランタイム最大ファイルサイズ=
#最大保持秒数=
#MaxFileSec=1か月
Syslogに転送=いいえ
#KMsg に転送 = いいえ
#コンソールに転送=いいえ
壁へ前進=いいえ
#TTYPath=/dev/コンソール
#MaxLevelStore=デバッグ
#MaxLevelSyslog=デバッグ
#MaxLevelKMsg=通知
#MaxLevelConsole=情報
#MaxLevelWall=緊急
#ライン最大=48K

ちなみに、ForwardToSyslog と ForwardToWall を no に設定してください。デフォルトは yes ですが、そうするとジャーナル ログ ファイルはクリーンアップされますが、Syslog ログ ファイルはクリアされず、ディスクが徐々にいっぱいになります。

その後、journaldを再起動して通常の使用を再開します: systemctl restart systemd-journald.service

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Docker での環境変数の使用とよくある問題の解決策
  • Dockerはターミナルで中国語を入力できない問題を解決します
  • Docker がポート 2375 を公開し、サーバー攻撃を引き起こす問題と解決策
  • DockerでJenkinsをインストールし、初期プラグインのインストール失敗の問題を解決する
  • Dockerコンテナが外部ネットワークにpingできない問題を解決する
  • Docker環境でJenkinsを設定すると、タスクをビルドするときにコンソールログに文字化けした中国語の文字が表示されます
  • Ubuntu 19でdockerソースをインストールできない問題を共有する
  • Dockerに関するよくある質問

<<:  mysql 8.0.16 winx64 および Linux でルート ユーザーのパスワードを変更する方法

>>:  Vue2.0でデータの双方向バインディング機能をjsを使って実装する

推薦する

CSS transform-originプロパティを理解する

序文最近、花火アニメーションを作成しました。花火が散るアニメーションです。アニメーションの実装中、花...

ウェブデザイナー職の面接でよくある質問と回答

1. ASP.NET Web アプリケーションのテンプレートとは何ですか? それらの違いは何ですか?...

Avue でカスタム検索バーを実装し、検索イベントをクリアする実践

目次1. 検索バーの内容をカスタマイズする2. 検索ボタンをカスタマイズする検索バーをカスタマイズし...

Windows プラットフォームでの MySQL のインストールと設定方法と注意事項

2.1、msiインストールパッケージ2.1.1、インストール特に重要なのは、インストール前に、元の ...

Linux での MySql centos7 のバイナリコンパイルとインストールに関するチュートリアル

// これをインストールするのに丸一日かかったので、記録するためにメモを書きました。 //何か問題が...

Docker コンテナ ソース コードのデプロイ httpd ストレージ ボリュームを使用して Web サイトをデプロイする (推奨)

目次Dockerコンテナのソースコードを使用してhttpdをデプロイし、ストレージボリュームを使用し...

WeChatアプレットは固定ヘッダーとリストテーブルコンポーネントを実装します

目次必要:機能ポイントレンダリング実装のアイデア具体的なコード(react\taro3.0)特定のコ...

ウェブページを白黒に変換します(Google、Firefox、IE、その他のブラウザと互換性があります)

CSSファイルに書き込むコードをコピーコードは次のとおりです。 01.html {グレイスケール(1...

nginx を使用してブルーグリーン デプロイメントをシミュレートする方法

この記事では、ブルーグリーン デプロイメントと、nginx を使用してブルーグリーン デプロイメント...

MySQLクライアント認証後の接続失敗の問題に対する完璧なソリューション

MySQL 環境をローカル (192.168.1.152) にデプロイし、リモート クライアント 1...

テーブルを作成するための MySQL SQL ステートメントの詳細な概要

mysql テーブル作成 SQL ステートメントMySQL テーブルを作成するための一般的な SQL...

Mysql を 5.7 にアップグレードした後のグループ クエリの問題を解決する

問題を見つける最近MySQLをMySQL 5.7にアップグレードした後、次のようなクエリでグループ化...

MySQLデータベース設計:Pythonを使ったスキーマ操作方法の詳しい解説

矢が放たれる前に、弓は矢にささやきました。「お前の自由は私のものだ。」スキーマは矢のようなもので、弓...

CocosCreator スケルトンアニメーション ドラゴンボーン

CocosCreator バージョン 2.3.4ドラゴンボーンアニメーションキールアニメーションを ...

Linux で NFS のワンクリック展開を実装する方法

サーバー情報管理サーバー: m01 172.16.1.61サーバー: nfs01 172.16.1....