Docker で nginx のログレベルを調整する方法

Docker で nginx のログレベルを調整する方法

はじめに

最近、アプリケーションの 1 つが大量のログを生成し、そのほとんどが nginx の access_log であることがわかりました。デフォルトでは、アプリケーション ログを分析するために標準出力を es に収集しますが、その多くは access_log であり、実際のエラー ログを覆い隠してしまう可能性があります。そのため、これらの access_log を出力したくない場合があります。例は次のとおりです。

Nginx Dockerファイル

Github で Nginx の Dockerfile、docker-nginx/Dockerfile at master · nginxinc/docker-nginx (github.com) を調べました。

nginxはデフォルトでaccess_logとerror_logを標準出力にリンクしていることがわかります。そのため、dockerログやkubectlログでaccess_logを確認できます。

コンテナ内でcat /etc/nginx/nginx.confを実行すると、デフォルトのnginx設定が表示されます。

デフォルトの nginx 設定

上記から、error_log レベルが notice であることがわかります。必要に応じて、warn/error に設定することもできます。具体的なログ設定については、公式ドキュメントを参照してください。設定可能なログ レベルは、debug、info、notice、warn、error、crit、alert、emerg です。

access_log は、off を使用するか別のパスを使用して直接無効にすることができます。これにより、標準出力に直接出力されなくなり、ログの数もそれほど多くなくなります。

新しい会議

構成を変更する方法を知っておくと便利です。デフォルトの構成を新しい構成に置き換えるだけです。新しい構成は次のとおりです。

ユーザー nginx;
ワーカープロセスは自動です。

error_log /var/log/nginx/error.log エラー;
pid /var/run/nginx.pid;

イベント {
    ワーカー接続 1024;
}

http {
    /etc/nginx/mime.types を含めます。
    デフォルトタイプ アプリケーション/オクテットストリーム;

    access_log オフ;

    ファイル送信オン;
    #tcp_nopush オン;

    キープアライブタイムアウト65;

    #gzip オン;

    /etc/nginx/conf.d/*.conf を含めます。
}

次に、Dockerfile で、デフォルトの構成を新しい構成で上書きします。

# カスタム nginx 設定をコピーする
/conf/nginx.conf を /etc/nginx/nginx.conf にコピーします。

もっと

access_log を記録したいが直接記録したくない場合は、access_log を別のファイル名に設定することができます。設定済みの対応するファイルに書き込まれますが、標準出力に直接出力されないため、収集されたログの多くは access_log ではなくなります。

ログを記録したくない場合は、off 設定を直接使用して access_log を無効にすることができます。2xx/3xx を記録しないなど、選択的にログを記録したい場合は、他の状況も記録できます。nginx のドキュメントでも紹介されています。必要に応じて選択できます。

$status $loggable をマップします。
    ~^[23] 0;
    デフォルト 1;
}
access_log /path/to/access.log と組み合わせると、if=$loggable;

参考文献

  • https://notestack.io/public/configure-nginx-logging-in-a-docker-container/874f1253-cf1a-4c62-9d2d-467ab23c258d を参照してください。
  • https://docs.nginx.com/nginx/admin-guide/monitoring/logging/
  • https://github.com/nginxinc/docker-nginx/blob/master/stable/alpine/Dockerfile

Docker における nginx のログレベルを調整する方法についてはこれで終わりです。Docker における nginx のログレベルについての詳細は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerでnginxログをローリングするアイデアの詳細な説明

<<:  Reactベースのコンポーネントのカプセル化の実装手順

>>:  HTML のオートコンプリートを無効にして履歴を表示しないようにする

推薦する

ウェブフォーム送信方法の詳細な概要

まず、フォームを送信するいくつかの方法を見てみましょう。 1. <!--一般的な送信ボタン--...

一般的な Linux の問題に対する解決策の概要

1. VMwareでCentos7を接続し、固定IPを設定する1) まず、仮想イメージ名を右クリック...

JavaScript マクロタスクとマイクロタスク

マクロタスクとマイクロタスクJavaScript はシングルスレッド言語です (マルチスレッドの場合...

Nginx ロケーション ディレクティブ URI マッチング ルールの詳細な概要

1. はじめにロケーション命令は、http モジュールのコア構成です。事前に定義された URL マッ...

CentOS7 64ビットインストールmysqlグラフィックチュートリアル

MySQL をインストールするための前提条件: CentOS 7 64 ビットをインストールし、Ce...

KVM 仮想マシンのオンライン ホット マイグレーションを実装する方法 (画像とテキスト)

1. KVM仮想マシンの移行方法と注意すべき点KVM 仮想マシンを移行する方法は 2 つあります。...

JavaScript におけるブラウザ互換性の問題について簡単に説明します

ブラウザの互換性は、実際の開発では見落とされがちな最も重要な部分です。古いバージョンのブラウザの互換...

Vue の get リクエストと post リクエストの違いのまとめ

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...

CSSスクロールバーのスタイルをカスタマイズする方法の詳細な説明

この記事では、CSS スクロールバー セレクターを紹介し、Webkit ブラウザーと IE ブラウザ...

Linux環境でのDockerインストールチュートリアル

1. 設置環境Dockerは次のCentOSバージョンをサポートしていますCentOS 6.5 (6...

CSS3の新しい背景プロパティの詳細な説明

これまで、CSS の背景の属性には、color、image、repeat、attachment、po...

HTMLページでよく使われるいくつかの小さなメソッド

<Head>タグに追加する<meta http-equiv="pragm...

MySQLの整数および文字列インデックスの無効化または暗黙的な変換に関する簡単な説明

目次問題の概要問題の再現問題の拡大結論は問題の概要今日、仕事中に、DBA が突然、SQL に暗黙的な...

Reactの状態の理解についての簡単な分析

複雑なコンポーネント (クラス コンポーネント) と単純なコンポーネント (関数コンポーネント) を...

Linuxドライバのプラットフォームバスの詳細説明

目次1. プラットフォームバスの紹介1.1. Linuxドライバの分離と階層化1.1.1. Linu...