Datadog Logs のアップデートがありました。 大きく以下3つの機能が追加されています。
- Introducing Logging without Limits
- Limitless Logs
- ログ取り込みとインデキシング(フィルタリング)の分離
- Archive Logs
- ストレージ転送
- Live Tail
- リアルタイムログストリーム
- Limitless Logs
既に公式ドキュメントも公開されていますが、ポイントを整理します。
Limitless Logs
送信元でのフィルタを行わず、 Datadog 管理画面上でフィルタが可能です。 フィルタにより除外されたログは、Datadog Logs 課金対象からも除外されます。 後述 Archive の対象となるので、収集・保存のみ行える事になります。(保存先の料金は掛かります)
Live Tail には含まれるので、Live Tail で参照しつつ、除外条件を作成していく流れになると思います。
[Logs] -> [Pipelines] -> [INDEXES] -> [Add an Exclusion Filter] より除外フィルタを作成します。
クエリによる除外フィルタ、サンプリングレートの指定と有効/無効切替が行えます。
尚、送信元(Datadog Agent)側でフィルタしたい(送信対象としない)場合は、log_processing_rules で exclude_at_match や include_at_match を使用します。
Archive Logs
AWS S3 へのアーカイブ機能です。 AWS インテグレーションで使用している AWS アカウントとは関連無く、任意の S3 バケットへのログ転送が行えます。
転送されるログは、PIPELINES(Processor)経由後のログです。INDEXES(Exclusion Filter)有無は関係ありません。
公式ブログ上に (with support for other endpoints to come) とあるので、今後S3以外のストレージが追加されそうですが、現状は AWS S3 のみのサポートです。
設定には Datadog の管理者権限(Admin User) が必要です。管理者以外は設定の参照は可能ですが、変更はできません。
[Logs] -> [Pipelines] -> [ARCHIVES] で送信先のS3バケットを指定します。
Configure S3 Bucket
送信先S3バケットに公式記載のバケットポリシーを設定します。
Define Archive
S3 Bucket と Path を設定します。
設定後から、取り込まれたログが Pipeline 経由後、S3バケットに転送されます。 15分程待つとS3バケットへの転送されていることが確認できます。
Changes have been made to this archive. It can take a few minutes before the next upload attempt.
フォーマット
/my/s3/prefix/dt=20180515/hour=14/archive_143201.1234.7dq1a9mnSya3bFotoErfxl.json.gz
- gzip された JSON
- 日付、時間の HIVE フォーマット
以下 Nginx access.log のJSON出力例です。 attributes はパース結果が反映されます。
{ "_id": "AWS1oRxxxxxxxxx1bnTi", "date": "2018-07-ddThh:mm:ss.0000", "service": "nginx", "host": "i-xxxxxxxxxxxxxxxxx", "attributes": { "http": { "status_code": 200, "referer": "-", "useragent": "Datadog Agent/0.0.0", "method": "GET", "url": "/", "version": "1.1", "url_details": { "path": "/" }, ・・・・ }, "source": "nginx", "message": "127.0.0.1 - - [dd/Jul/2018:hh:mm:ss.0000] \"GET / HTTP/1.1\" 200 396 \"-\" \"Datadog Agent/0.0.0\"", "status": "ok" }
画面上に Main Archive とあるので、複数指定が可能なのかと思いましたが、現状で設定できるのは単一送信先のようです。(契約プラン等で変わるのかもしれません)
また、faset(tag)によるパスやファイルの振り分けは行われません。S3上へ転送したログを検索する際は Athena 等を利用する必要がありそうです。
Live Tail
(ほぼ)リアルタイムにログイベントを参照できます。
- PIPELINES(Processor)経由後、INDEXES(Exclusion Filter)前
- ストリーム表示の一時停止は可能
- 過去へ遡る事はできない
リアルタイム版 Explorer のような感じです。