Grafana Lokiのpromtailをつかってiisのログを収集する際、timestampはログの取得日時が標準の動きで、新しいログの取得では大きな問題にはならないと思うけど、今までの記録やpromtailの実行直後のログは正しい時間が記録されないので困った場面に遭遇するかもしれない。これに備えてログに記録された日時を採用するように設定することは非常に重要なことだと思う。
ポイントは、W3Cログの日付はUTCで記録されている点です。
というわけでscrape_configs部分をYAMLで紹介。
scrape_configs:- job_name: systemstatic_configs:- targets:- localhostlabels:job: iis__path__: c:\inetpub\logs\LogFiles\*\*.logpipeline_stages:- match:selector: '{job="iis"}'stages:- regex:expression: ^(?P<datetime>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})- timestamp:source: datetimeformat: 2006-01-02 15:04:05location: Etc/UTC
スペースの数はYAMLではとても重要なので書写する際は注意しましょう。
iisのログはstatic_configsで取得しjob名を"iis"と設定しています。
__path__:は利用環境に合わせて修正してください。
取得したログからtimestampを取得するための設定はpipeline_stagesのmatchで指定します。
job名"iis"に対し正規表現で行頭から日付部分を抽出し、timestampの書式を指定します。
format: の日時はドキュメントにも定義されている定数なので変更するとうまく動作しません。初めて設定した時はなんで2006年なんだ?と悩んだのと「2006-01-02 03:04:05」に設定していてうまく動作しなかったのですが、03は12時間、15は24時間になるので正しく認識しないよね。
後はlocation:で正しいTimezoneを指定してこのログはUTCで記録されていることを明示します。
この設定を行っていれば、過去のログは当時の日付で記録されるので安心です。
0 件のコメント:
コメントを投稿