- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
フィールド設定について質問させてください。
以下のログに対してフィールドを設定する際の
方法をご教示頂けないでしょうか?
【ログ例】
①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.レコード毎にレイアウトが異なる場合、どのような設定を行えばよいかご教示いただけないでしょうか?
以上、よろしくお願いします。
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
splunk インデクス取り込みだと日本語フィールド名
、駄目みたいですね
props.confのTRANSFORMS をREPORT に変更して、 transforms.confの write_METAを削除してみて、どうでしょうか?
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
良かったです。試してないですが
REGEX = (\w+)\[([^\]]+)\]
当たりかなーと思われます
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
splunk インデクス取り込みだと日本語フィールド名
、駄目みたいですね
props.confのTRANSFORMS をREPORT に変更して、 transforms.confの write_METAを削除してみて、どうでしょうか?
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ご連絡ありがとうございます。
ご提示いただいた通り
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
に変更したところ、フィールドの抽出ができました。
最初のフィールドがうまく取れていませんが、
こちらは正規表現を学び直していきたいと思います。
to4kawaさん
どうもありがとうございました!
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
REGEX = ([^\:\[]+)\[([^\]]+)\
今こちらは確認できる環境でないので、
regex101.com
等でログが正規表現でキャプチャーできているか確認してみてください
あと、高速モードだと効果がありません。
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ご連絡ありがとうございます。
regex101.comで確認いたしました。
以前いただいた以下REGEXはキャプチャできました。
REGEX = ([^:\[]+)\[([^\]]+)\]
今回いただいた以下REGEXは最後に]を追加することでキャプチャできました。」
REGEX = ([^\:\[]+)\[([^\]]+)\
transforms.confを今回いただいたREGEXに変えて、Splunkの再起動をしてみましたが
変化はない状況です。
なお、詳細モードで実施しております。
以上、よろしくお願いいたします。
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
正規表現はキャプチャー出来ていればどちらでも問題ありません
後は 上記 btool props list --debug heart_core_sourcetype できちんと結果がでるか
FORMAT = $1::$2
にするかですかね
他にヘビーフォワーダーやインデクサーないですよね?
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ご連絡ありがとうございます。
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で環境を作っている為、増やすことは可能です。
以上、よろしくお願いいたします。
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
transforms.conf
[your_stanza]
REGEX = ([^:\[]+)\[([^\]]+)\]
FORMAT = $1::"$2"
REPEAT_MATCH = true
WRITE_META = true
日本語フィールド名になりますがこういった設定で、できると思います
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ご回答ありがとうございます。
頂いた回答をもとに検索等してみたのですが、
分からない点がありますので、再度質問をさせてください。
①スタンザについて
ここで設定する名称は何に利用されるものなのでしょうか?
何を設定しても問題ないのでしょうか?
②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の再起動を実施
以上、よろしくお願いいたします。
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
1 props.conf のTRANSFORMSの引数です。何でも構いません
2 できます。(うまくいっていれば)
データ取り込む設定の際、inputs.confにソースタイプ名、props.confにそのソースタイプの設定していると思います
まずprops.confにTRANSFORMSの設定をしてください。
https://qiita.com/odorusatoshi/items/4c6bbda57e8818b56bee
から日本語マニュアルのデータの取り込みあたりが参考になると思います
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ご連絡ありがとうございます。
日本語マニュアルを参照し、以下のように設定をしてみたのですが、
抽出ができない状況です。
/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
設定の仕方が誤っているのでしょうか?
以上、よろしくお願いいたします。
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content


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, Karma would be appreciated.
