Splunk Search

フィールド設定について

qattsu
Explorer

フィールド設定について質問させてください。

以下のログに対してフィールドを設定する際の
方法をご教示頂けないでしょうか?

【ログ例】
①IPアドレス[001.001.001.001, 002.002.002.002]:ユーザエージェント[Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36]
②ログイン結果[NG]:IPアドレス[003.003.003.003, 004.004.004.004, 005.005.005.005]:セッションID[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]:ユーザエージェント[Mozilla/5.0 (Windows NT 6.3; rv:36.0) Gecko/20100101 Firefox/36.0]:パスワード[123123123]


【質問事項】
1.[]の前の文字列でフィールド名を変えることは可能か?
 []の前が"IPアドレス"だったらフィールド名を"IPaddr"等にして、値に"001.001.001.001, 002.002.002.002"を入れたり、
 []の前が"ユーザエージェント"だったらフィールド名を"UserAgent"等にして、値に"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"を入れたりしたいのですが、
 そのようなことが可能なのでしょうか?
 
2.レコード毎にレイアウトが異なる場合、どのような設定を行えばよいかご教示いただけないでしょうか?

以上、よろしくお願いします。

Labels (1)
Tags (1)
0 Karma
1 Solution

to4kawa
SplunkTrust
SplunkTrust

splunk インデクス取り込みだと日本語フィールド名

、駄目みたいですね

props.confのTRANSFORMS をREPORT に変更して、 transforms.confの write_METAを削除してみて、どうでしょうか?

View solution in original post

to4kawa
SplunkTrust
SplunkTrust

良かったです。試してないですが

REGEX = (\w+)\[([^\]]+)\]

当たりかなーと思われます

0 Karma

to4kawa
SplunkTrust
SplunkTrust

splunk インデクス取り込みだと日本語フィールド名

、駄目みたいですね

props.confのTRANSFORMS をREPORT に変更して、 transforms.confの write_METAを削除してみて、どうでしょうか?

View solution in original post

qattsu
Explorer

ご連絡ありがとうございます。

ご提示いただいた通り
props.confを

 

[heart_core_sourcetype]
DATETIME_CONFIG =
LINE_BREAKER = ([\r\n]+)
NO_BINARY_CHECK = true
category = Miscellaneous
pulldown_type = true
REPORT-heartcore_test = heartcore_test

 

transforms.confを

 

[heartcore_test]

REGEX = ([^\:\[]+)\[([^\]]+)\]

FORMAT = $1::$2

 

に変更したところ、フィールドの抽出ができました。
20200907.png

最初のフィールドがうまく取れていませんが、
こちらは正規表現を学び直していきたいと思います。

to4kawaさん

どうもありがとうございました!

0 Karma

to4kawa
SplunkTrust
SplunkTrust

REGEX = ([^\:\[]+)\[([^\]]+)\

今こちらは確認できる環境でないので、

regex101.com

等でログが正規表現でキャプチャーできているか確認してみてください

あと、高速モードだと効果がありません。

qattsu
Explorer

ご連絡ありがとうございます。
regex101.comで確認いたしました。

以前いただいた以下REGEXはキャプチャできました。

REGEX = ([^:\[]+)\[([^\]]+)\]

 mae.png

 

 

 

 

 

 

 

今回いただいた以下REGEXは最後に]を追加することでキャプチャできました。」

REGEX = ([^\:\[]+)\[([^\]]+)\

ato2.png

transforms.confを今回いただいたREGEXに変えて、Splunkの再起動をしてみましたが
変化はない状況です。

splunk_20200904_.png

なお、詳細モードで実施しております。

以上、よろしくお願いいたします。

0 Karma

to4kawa
SplunkTrust
SplunkTrust

正規表現はキャプチャー出来ていればどちらでも問題ありません

https://docs.splunk.com/Documentation/Splunk/8.0.5/Troubleshooting/Usebtooltotroubleshootconfigurati...

後は 上記 btool props list --debug heart_core_sourcetype できちんと結果がでるか

FORMAT = $1::$2

にするかですかね

他にヘビーフォワーダーやインデクサーないですよね?

qattsu
Explorer

ご連絡ありがとうございます。
btoolの結果は以下の通りでした。

# /opt/splunk/bin/splunk btool props list --debug heart_core_sourcetype
/opt/splunk/etc/apps/search/local/props.conf [heart_core_sourcetype]
/opt/splunk/etc/system/default/props.conf    ADD_EXTRA_TIME_FIELDS = True
/opt/splunk/etc/system/default/props.conf    ANNOTATE_PUNCT = True
/opt/splunk/etc/system/default/props.conf    AUTO_KV_JSON = true
/opt/splunk/etc/system/default/props.conf    BREAK_ONLY_BEFORE =
/opt/splunk/etc/system/default/props.conf    BREAK_ONLY_BEFORE_DATE = True
/opt/splunk/etc/system/default/props.conf    CHARSET = UTF-8
/opt/splunk/etc/apps/search/local/props.conf DATETIME_CONFIG =
/opt/splunk/etc/system/default/props.conf    DEPTH_LIMIT = 1000
/opt/splunk/etc/system/default/props.conf    HEADER_MODE =
/opt/splunk/etc/system/default/props.conf    LEARN_MODEL = true
/opt/splunk/etc/system/default/props.conf    LEARN_SOURCETYPE = true
/opt/splunk/etc/apps/search/local/props.conf LINE_BREAKER = ([\r\n]+)
/opt/splunk/etc/system/default/props.conf    LINE_BREAKER_LOOKBEHIND = 100
/opt/splunk/etc/system/default/props.conf    MATCH_LIMIT = 100000
/opt/splunk/etc/system/default/props.conf    MAX_DAYS_AGO = 2000
/opt/splunk/etc/system/default/props.conf    MAX_DAYS_HENCE = 2
/opt/splunk/etc/system/default/props.conf    MAX_DIFF_SECS_AGO = 3600
/opt/splunk/etc/system/default/props.conf    MAX_DIFF_SECS_HENCE = 604800
/opt/splunk/etc/system/default/props.conf    MAX_EVENTS = 256
/opt/splunk/etc/system/default/props.conf    MAX_TIMESTAMP_LOOKAHEAD = 128
/opt/splunk/etc/system/default/props.conf    MUST_BREAK_AFTER =
/opt/splunk/etc/system/default/props.conf    MUST_NOT_BREAK_AFTER =
/opt/splunk/etc/system/default/props.conf    MUST_NOT_BREAK_BEFORE =
/opt/splunk/etc/apps/search/local/props.conf NO_BINARY_CHECK = true
/opt/splunk/etc/system/default/props.conf    SEGMENTATION = indexing
/opt/splunk/etc/system/default/props.conf    SEGMENTATION-all = full
/opt/splunk/etc/system/default/props.conf    SEGMENTATION-inner = inner
/opt/splunk/etc/system/default/props.conf    SEGMENTATION-outer = outer
/opt/splunk/etc/system/default/props.conf    SEGMENTATION-raw = none
/opt/splunk/etc/system/default/props.conf    SEGMENTATION-standard = standard
/opt/splunk/etc/system/default/props.conf    SHOULD_LINEMERGE = True
/opt/splunk/etc/system/default/props.conf    TRANSFORMS =
/opt/splunk/etc/apps/search/local/props.conf TRANSFORMS-FILTER = heartcore_test
/opt/splunk/etc/system/default/props.conf    TRUNCATE = 10000
/opt/splunk/etc/apps/search/local/props.conf category = Miscellaneous
/opt/splunk/etc/system/default/props.conf    detect_trailing_nulls = false
/opt/splunk/etc/system/default/props.conf    maxDist = 100
/opt/splunk/etc/system/default/props.conf    priority =
/opt/splunk/etc/apps/search/local/props.conf pulldown_type = true
/opt/splunk/etc/system/default/props.conf    sourcetype =
#


transforms.confを「FORMAT = $1::$2」に変えてみましたが変化なしです。


他にヘビーフォワーダーやインデクサーないですよね?
現在は検証のため、AWSで環境を作っている為、増やすことは可能です。

以上、よろしくお願いいたします。

0 Karma

to4kawa
SplunkTrust
SplunkTrust

transforms.conf

[your_stanza]

REGEX = ([^:\[]+)\[([^\]]+)\]

FORMAT = $1::"$2"

REPEAT_MATCH = true

WRITE_META = true

 

日本語フィールド名になりますがこういった設定で、できると思います

 

qattsu
Explorer

ご回答ありがとうございます。
頂いた回答をもとに検索等してみたのですが、
分からない点がありますので、再度質問をさせてください。

①スタンザについて
 ここで設定する名称は何に利用されるものなのでしょうか?
 何を設定しても問題ないのでしょうか?
②transforms.confについて
 /opt/splunk/etc/system/local/transforms.conf等に
 回答いただいた設定を追加しますが、SPLでの検索時は
 普通に「stats count by IPアドレス」 等で検索できてしまうのでしょうか?

なお、今回頂いた内容をもとに以下作業を実施してみましたが、
思っていた結果にならない状況です。
①/opt/splunk/etc/system/local/transforms.confの作成
 ファイルが存在しなかった為、新規作成。内容は頂いた回答の[your_stanza]を
 変えただけ。
②Splunk再起動
 Splunkの再起動を実施

以上、よろしくお願いいたします。

0 Karma

to4kawa
SplunkTrust
SplunkTrust

1 props.conf のTRANSFORMSの引数です。何でも構いません

2 できます。(うまくいっていれば)

 

データ取り込む設定の際、inputs.confにソースタイプ名、props.confにそのソースタイプの設定していると思います

 

まずprops.confにTRANSFORMSの設定をしてください。

https://qiita.com/odorusatoshi/items/4c6bbda57e8818b56bee

から日本語マニュアルのデータの取り込みあたりが参考になると思います

qattsu
Explorer

ご連絡ありがとうございます。

日本語マニュアルを参照し、以下のように設定をしてみたのですが、
抽出ができない状況です。

/opt/splunk/etc/apps/search/local/props.conf

[heart_core_sourcetype]
DATETIME_CONFIG =
LINE_BREAKER = ([\r\n]+)
NO_BINARY_CHECK = true
category = Miscellaneous
pulldown_type = true
TRANSFORMS-FILTER=heartcore_test

/opt/splunk/etc/apps/search/local/transforms.conf

[heartcore_test]

REGEX = ([^:\[]+)\[([^\]]+)\]

FORMAT = $1::"$2"

REPEAT_MATCH = true

WRITE_META = true

 

設定の仕方が誤っているのでしょうか?

以上、よろしくお願いいたします。

0 Karma

richgalloway
SplunkTrust
SplunkTrust

1.  One can extract the fields and give them new names using the rex command.

rexコマンドを使ってフィールドを抽出し、新しい名前をつけることができます。

... | rex "IP address \[(?<IPaddr>[^\]]+)"
| rex "User Agent \[(?<UserAgent>[^\]]+)"

 

2.  It depends on how different the layout is.  If the fields are in a different order or with intervening fields (as in the example) then multiple rex commands will work.

レイアウトの違いによります。  フィールドが異なる順番であったり、フィールドを挟んでいる場合(例のように)は、複数のREXコマンドが機能します。

---
If this reply helps you, an upvote would be appreciated.
0 Karma
Register for .conf21 Now! Go Vegas or Go Virtual!

How will you .conf21? You decide! Go in-person in Las Vegas, 10/18-10/21, or go online with .conf21 Virtual, 10/19-10/20.