CloudFrontのアクセスをログをパースする設定(props.confとtransforms.confの例)
※自分用のメモ書きなので、あまり余人には役に立たないかもしれません
前提条件
- Splunkがインストール済み
- Splunk Add-on for AWSがインストール済み
- AWSにアカウントがある
- CloudFrontのログがS3に出力されているようになっている
- SplunkがS3からログの取り込み自体は出来る状態になっている(アクセスキーが設定済みな状態)
と言うような前提条件で、Splunk上でS3から取り込んだCloudFrontのログをパースできるようにする設定のメモ書きです。
S3からSplunkへのログ取り込みのやり方については、Splunk Add-on for AWS自体それほど難しい設定は無いので、GUIからサクサクと設定出来ると思いますので省略。
事前設定情報
- 取り込んだログのSourceTypeは "aws:cloudfront" とします
- フィールド名はAWSのフィールド名から一部変更します
- 設定がSplunkのシステム権限の所に配置します($SPLUNK_HOME/etc/system/local/ 配下に配置)
設定
- 既に指定の場所にファイルがある場合は追記します
-
$SPLUNK_HOME
はSplunkのインストールディレクトリ(デフォルトでは/opt/splunk
)に読み替えて下さい
$SPLUNK_HOME/etc/system/local/props.conf
[aws:cloudfront]
pulldown_type=true
CHECK_FOR_HEADER = false
REPORT-CloudFront = tab-CloudFront
TRANSFORMS-CloudFront = header-CloudFront
TZ = UTC
$SPLUNK_HOME/etc/system/local/transforms.conf
[tab-CloudFront]
DELIMS="\t"
FIELDS="date", "time", "x_edge_location", "sent_bytes", "clientip", "method", "cloudfront_host", "uri_stem", "status", "Referer", "UserAgent", "uri_query", "Cookie", "x_edge_result_type", "x_edge_request_id", "x_host_header", "protocol", "rcvd_bytes", "time_taken", "x_forwarded_for", "ssl_protocol", "ssl_cipher", "x_edge_response_result_type"
[header-CloudFront]
REGEX=^#
DEST_KEY=queue
FORMAT=nullQueue
-
transforms.conf
の[tab-CloudFront]
でタブ区切りの解釈をしています -
[header-CloudFront]
でファイルの先頭2行にある#
の行を読み飛ばしします