regex パーサを使用すると、収集済みデータに対していくつかの正規表現を使用できます。

VMware Aria Operations for Logs エージェントは、Perl 構文を持つ C++ Boost ライブラリ正規表現を使用します。 regex パーサは、指定されたキャプチャ グループを含む正規表現パターンを指定することで定義できます。例:(?<field_1>\d{4})[-](?<field_2>\d{4})[-](?<field_3>\d{4})[-](?<field_4>\d{4})

グループに指定された名前( field_1field_2field_3、および field_4 など)は、対応する抽出済みフィールドの名前になります。名前には次の要件があります。
  • 正規表現パターンで指定された名前は、VMware Aria Operations for Logs の有効なフィールド名でなければなりません。
  • 名前には英数字とアンダースコア (_) 文字だけを含めることができます。
  • 名前の先頭を数字にすることはできません。

無効な名前を指定すると、構成は失敗します。

regex パーサのオプション

regex パーサに必要なオプションは、format オプションだけです。

追加のデバッグ情報が必要な場合は、debug オプションを使用できます。

構成

regex パーサを作成するには、base_parser として regex を使用し、format オプションを指定します。

regex の構成例

次の例を使用して 1234-5678-9123-4567 を分析できます。

[parser|regex_parser]
base_parser=regex
format=(?<tag1>\d{4})[-](?<tag2>\d{4})[-](?<tag3>\d{4})[-](?<tag4>\d{4})
[filelog|some_info]
directory=D:\Logs
include=*.txt
parser=regex_parser

結果が表示されます。

tag1=1234
tag2=5678
tag3=9123
tag4=4567

regex パーサで Apache ログを解析するには、Apache ログ用の特定の regex 形式を指定します。

[parser|regex_parser]
base_parser=regex
format=(?<remote_host>.*) (?<remote_log_name>.*) (?<remote_auth_user>.*) \[(?<log_timestamp>.*)\] "(?<request>.*)" (?<status_code>.*) (?<response_size>.*)

結果が表示されます。

127.0.0.1 - admin [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
remote_host=127.0.0.1
remote_log_name=-
remote_auth_user=admin
log_timestamp=10/Oct/2000:13:55:36 -0700
request=GET /apache_pb.gif HTTP/1.0
status_code=200
response_size=2326
次のコードは、別の Apache ログの解析例を示します。
[parser|regex_parser]
base_parser=regex
format=(?<remote_host>.* (?<remote_log_name>.*)) (?<remote_auth_user>.*) \[(?<log_timestamp>.*)\] "(?<request>.* (?<resource>.*) (?<protocol>.*))" (?<status_code>.*) (?<response_size>.*)
127.0.0.1 unknown - [17/Nov/2015:15:17:54 +0400] \"GET /index.php HTTP/1.1\" 200 4868
remote_host=127.0.0.1 unknown
remote_log_name=unknown
remote_auth_user=-
log_timestamp=17/Nov/2015:15:17:54 +0400
request=GET /index.php HTTP/1.1
resource=/index.php
protocol=HTTP/1.1
status_code=200
response_size=4868

パフォーマンスについての考慮事項

regex パーサは、CLF パーサなどの他のパーサよりも多くのリソースを消費します。他のパーサを使用してログを解析できる場合には、より良いパフォーマンスを得るために、regex パーサの代わりにそれらのパーサを使用することを検討してください。

パーサが提供されておらず、 regex パーサを使用する場合は、形式をできるだけ簡潔に定義します。次の例は、より良いパフォーマンスを提供する構成を示します。この例は、数値のフィールドを指定します。
(?<remote_host>\d+.\d+.\d+.\d+) (?<remote_log_name>.*) (?<remote_auth_user>.*) \[(?<log_timestamp>.*)\] "(?<request>.*)" (?<status_code>\d+) (?<response_size>\d+)