複数ログパターン

単一のアプリケーションでは2つ以上のフォーマットで、異なるモジュールログが書き込まれます。例えば、1つのフォーマットのアクセスログ情報と、その他のフォーマットでエラーログ情報が記載されます。この場合、同じアプリケーションに関する各ログフォーマットのログタイプを作成することなく、複数行ログパターンを単一のログタイプで作成します。

Site24x7の複数ログパターンで、1つのアプリケーションから異なるフォーマットで書かれるログをまとめることができ、それを単一のダッシュボードで可視化します。詳細はこちら

設定手順

  1. Site24x7にログインします。
  2. Site24x7サーバー監視エージェント(Windows | Linux)をダウンロード後、インストールします。
  3. 管理 > アプリケーションログ > ログの種類 > ログの種類の追加をクリックします。

ログの種類の追加方法の詳細はこちら

例:異なるフォーマットの2つのログファイル

1つのアプリケーションが異なる2つのログファイル(アクセスログ、エラーログ)を出力しているとします。

ファイル1:サンプルアクセスログとそのログパターン

127.0.0.1 - - [21/Jul/2022:12:41:20 +0530] "GET / HTTP/1.1" 200 44 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36"

$RemoteAddress$ - $RemoteUser$ [$Datetime:date$] "$Method$ $RequestURI$ $Protocol$" $Status:number$ $BytesSent:number$ "$Referer$" "$UserAgent$"! "$ForwardedFor$"!

ファイル2:サンプルエラーログとそのログパターン

[2022-05-29 16:29:38 +0530] [212777] [INFO] Starting gunicorn 20.1.0

[$Datetime:date$] [$ProcessID:number$] [$LogLevel$] $Message$

複数ログパターンを使用して、異なる2つのアクセスログファイルとエラーログファイルを同じログの種類として、追加できます。

これにより、単一ダッシュボードでアクセスおよびエラーログを可視化できます。

クエリ言語で、ログパターン名を指定して、特定のログパターンのデータをフィルターできます。例えば、次のクエリを使用して、アクセスログパターンを取得できます。

logtype="Gunicorn" and logpattern_name="Access log"

例:JSONと通常ログが同じファイルにある場合

JSONと単一行ログが同じファイルに存在するとします。

ファイル1:サンプルJSONログとそのログパターン

{"log":"Starting Application Server","stream":"stdout","time":"2022-06-22T20:19:58.980395832Z"}

json $log$ $stream$ $time as Datetime:date:yyyy-MM-dd'T'HH:mm:ss.SSS'Z'$

ファイル1:サンプル単一行ログとそのログパターン

2021/08/05 20:26:49:000 portAvailability 9090 127.0.0.1

$Datetime:date:yyy/MM/dd HH:mm:ss:SSS$ $Message$

複数ログパターンを使用して、上記2つのログパターンを1つのログの種類で、作成できます。

  • 解析中、ログファイルはログパターンで引用された順序に従います。例えば、上記のスクリーンショットでは、JSONパターンログが最初に解析され、その後、単一行ログが解析されます。
  • ログ行が2つ以上マッチした場合、最初のパターンがマッチしているとエージェントが認識します。
  • 上下矢印アイコンで、ログパターンを入れ替えられます。
  • ログパターンの順番を入れ替えることができないため、サンプルログとログパターンの順番はマッチしません。

例:特定のログパターンと一般のログパターンを組み合わせて使用してる場合

ログパターンで、わずかに違いのあるログを出力しているアプリケーションを想定します。

特定ログパターンのサンプルログ

[05-Jun-2020 12:16:43] [212778] [ERROR] Exception occurred while starting.

[$Datetime:date:dd-MMM-yyyy HH:mm:ss$] [$ProcessID:number$] [$LogLevel$] $Message$

一般ログパターンのサンプルログ

[05-Jun-2020 12:16:43] [INFO] Starting gunicorn 20.1.0

[$Datetime:date:dd-MMM-yyyy HH:mm:ss$] $Message$

上記の例では、2つのサンプルログパターンはほとんど同じですが、メッセージ項目の形式がわずかに異なります。最初のログパターンはプロセスIDとログレベルを指定しています。このような場合に、最初に1つ目の特定ログパターンを指定後、2つ目の一般ログを指定します。

制限

複数ログパターンを使用する際の制限事項は次のとおりです。

  • ログパターン間で、同じ項目名のデータタイプにする必要があります。次の2つのデータタイプで、項目名(ProcessID)が異なっているため、複数ログパターンを使用できません。
    • ログパターン1: [$Datetime:date$] [$ProcessID:number$] [$LogLevel$] $Message$
    • ログパターン2: [$Datetime:date$] [$ProcessID$] [$LogLevel$] $Message$
  • 最大5つのログパターンを追加できます。
  • 日時項目の名前は各ログパターンで同じ必要があります。
  • ログパターン名は一意である必要があります。次のような名前の組み合わせには対応していません。
  • JSONログと他のログパターンは組み合わせないでください。別々のログの種類としてふるまいます。
  • 同じログの種類に、異なる2つのJSONログフォーマットを組み合わせないでください。
  • 同じログの種類に、2つの複数行ログパターンを組み合わせないでください。

関連ガイド

サンプルログパターン
サポートしているログの種類

トップ