金曜日, 6月 13, 2025
- Advertisment -
ホームニューステックニュースNew Relic の ログ解析機能を活用して Key と Value のペアをパースしてログの確認を簡単に #初心者

New Relic の ログ解析機能を活用して Key と Value のペアをパースしてログの確認を簡単に #初心者



New Relic の ログ解析機能を活用して Key と Value のペアをパースしてログの確認を簡単に #初心者

 New Relic のログ解析機能を使って Key-Value 形式のログデータをパースすることができるようになりました。Grokパターンを使った基本的なパース方法とカスタマイズの方法を紹介します。
 New Relic のログパースはGrokパターンと正規表現に対応しています。Grokパターンを使うことでログデータを簡単に解析してパースすることができます。Grokパターンを使ったログのパース方法については下記のブログをご確認ください。

この記事で紹介しているポイントは、次の2つです。

  1. 基本的な Key-Value 形式のログデータのパース方法を知る
    Grok パターン keyvalue() を使用して Key-Value 形式のログをパースする方法を紹介します。
  2. パース方法をカスタマイズする方法がわかる
    Grok パターン keyvalue() のオプション設定を使って解析動作をカスタマイズする方法を紹介します。

例えば、動作を簡単に把握するためにわかりやすい下記のログを例として使用します。

解析対象のログ

 key1=value1,key2=value2,key3=value3

上記のログを解析して Key と Value に分割して取り込む場合は、下記のようにGrokの式を設定します。

keyvalue

%{GREEDYDATA:custom_attribute_prefix:keyvalue()}

実際に New Relic 上で設定すると下記のように変換が実行されます。
log1.png
parse1.png

 変換後はパーシングルールで設定した custom_attribute_prefix がプレフィックスとして属性名に付与されます。これだけでKey-Value 形式のログデータをパースして New Relic に取り込む事ができます。

区切り文字を変更する

デフォルトは ,(カンマ) が区切り文字として設定されています。オプションで delimiter を設定すると区切り文字を変更する事ができます。

例えば、区切り文字に;(セミコロン)を使用する場合は下記のようになります。

解析対象のログ

 key1=value1;key2=value2;key3=value3

上記のログを解析するために delimiter のオプションを設定します。

keyvalue

%{GREEDYDATA:custom_attribute_prefix:keyValue({"delimiter": ";"})}

,(カンマ)以外の区切り文字が指定されている場合でもこのように先ほどと同じように変換されています。
parse2.png

keyValueSeparator

key と value の割り当てに使用されている文字列を変更する事ができます。デフォルトは (イコール) が設定されています。オプションで keyValueSeparator を設定すると変更する事ができます。
例えば、key と value の割り当てに :(コロン)を使用する場合は下記のようになります。

解析対象のログ

 key1:value1;key2:value2;key3:value3

上記のログを解析するために :(コロン) のオプションを設定します。

keyvalue

%{GREEDYDATA:custom_attribute_prefix:keyValue({"keyValueSeparator": ":"})}

:(コロン)以外のkey と value の割り当て文字列が指定されている場合でもこのように先ほどと同じように変換されています。
parse3.png

プレフィックスなし

変換後の値もカスタマイズできます。プレフィックスを設定しない場合はオプションで noPrefix を設定すると変更する事ができます。

例えば、下記のログを変換する際に属性のプレフィックスを設定しない場合です。

解析対象のログ

 key1=value1,key2=value2,key3=value3

上記のログを解析するために noPrefix のオプションを設定します。

keyvalue

%{GREEDYDATA:custom_attribute_prefix:keyValue({"noPrefix": true})}

このパターンで設定するとプレフィックスが設定されずにkeyがそのまま属性名として取り込まれます。
parse4.png

オプションの組み合わせ

 keyvalue() のオプション設定は複数組み合わせる事が可能です。 各オプションの設定を,(カンマ)で区切って連結する必要があります。 これまで紹介したオプションをすべて組み合わせた例を紹介します。
 区切り文字に ;(セミコロン), key と value の割り当てに :(コロン), プレフィックスなし を組み合わせると下記のようになります。

例えば、下記のログを変換する例を紹介します。

解析対象のログ

 key1:value1;key2:value2;key3:value3

上記のログを解析するために delimiter, keyValueSeparator, noPrefix のオプションを設定します。

keyvalue

%{GREEDYDATA:custom_attribute_prefix:keyValue({"delimiter": ";", "keyValueSeparator": ":", "noPrefix": true})}

このパターンで設定すると複数のオプションが適用されて取り込まれます。
image.png

 これまでは Key-Value 形式のログデータをパースする際は、それぞれ設定する必要がありましたが keyvalue() を使うと簡単に取り込む事が可能です。項目が可変の場合でも簡単にパースできるのは大きな利点です。他の Grok パターンと組み合わせる事が可能でログの一部が Key-Value 形式のケースにも対応しています。複数のパターンを組み合わせてログを取り込み時に変換してダッシュボードでの利用やアラート設定をより柔軟に実施できるようにログの解析機能を活用していきましょう。

 New Relicでは、新しい機能やその活用方法について、QiitaやXで発信しています!
無料でアカウント作成も可能なのでぜひお試しください!

image.png





Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -