promtailを使ってiisのW3Cログを取得する

Grafana Lokiのpromtailをつかってiisのログを収集する際、timestampはログの取得日時が標準の動きで、新しいログの取得では大きな問題にはならないと思うけど、今までの記録やpromtailの実行直後のログは正しい時間が記録されないので困った場面に遭遇するかもしれない。これに備えてログに記録された日時を採用するように設定することは非常に重要なことだと思う。

ポイントは、W3Cログの日付はUTCで記録されている点です。

というわけでscrape_configs部分をYAMLで紹介。

scrape_configs:
  - job_namesystem
    static_configs:
    - targets:
        - localhost
      labels:
        jobiis
        __path__c:\inetpub\logs\LogFiles\*\*.log
    pipeline_stages:
    - match
        selector'{job="iis"}'
        stages:
        - regex
            expression^(?P<datetime>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})
        - timestamp
            sourcedatetime
            format2006-01-02 15:04:05
            locationEtc/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 件のコメント:

コメントを投稿

Microsoft Entra Connect Cloud同期のお勧め属性マッピング

ハイブリッドID構成の設定で必須設定じゃないかな~というやつを備忘録的に投稿しておきます。個人的な推奨値なので実際に設定する際は十分な理解と検証を心掛けてください。そのまま利用して不具合が発生しても責任はとれません。 Microsoft Entra Connect によって同期さ...