Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Datadogログ萬屋
Search
k-nagase
October 05, 2022
Programming
0
170
Datadogログ萬屋
実運用を経てDatadogにてログを扱っていく際に設定しておくべき機能・知っておくべき機能をまとめてご紹介します。
k-nagase
October 05, 2022
Tweet
Share
More Decks by k-nagase
See All by k-nagase
Reducing Cross-Zone Egress at Spotify with Custom gRPC Load Balancing Recap
koh_naga
0
470
システム担当者のためのクラウドとコンテナライゼーション ~効果を最大化する思考~
koh_naga
0
180
AWS Load balancer controller使用下でのAWSリソースのライフサイクル分離
koh_naga
0
450
Other Decks in Programming
See All in Programming
GoとPHPのインターフェイスの違い
shimabox
2
210
AIの力でお手軽Chrome拡張機能作り
taiseiue
0
190
CI改善もDatadogとともに
taumu
0
200
責務と認知負荷を整える! 抽象レベルを意識した関心の分離
yahiru
8
1.3k
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
120
SwiftUI Viewの責務分離
elmetal
PRO
2
270
データの整合性を保つ非同期処理アーキテクチャパターン / Async Architecture Patterns
mokuo
55
19k
DRFを少しずつ オニオンアーキテクチャに寄せていく DjangoCongress JP 2025
nealle
2
270
未経験でSRE、はじめました! 組織を支える役割と軌跡
curekoshimizu
1
160
LINE messaging APIを使ってGoogleカレンダーと連携した予約ツールを作ってみた
takumakoike
0
110
PRレビューのお供にDanger
stoticdev
1
230
はじめての Go * WASM *OCR
sgash708
1
100
Featured
See All Featured
Writing Fast Ruby
sferik
628
61k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
GraphQLとの向き合い方2022年版
quramy
44
14k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Practical Orchestrator
shlominoach
186
10k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Designing for Performance
lara
604
68k
Rails Girls Zürich Keynote
gr2m
94
13k
Automating Front-end Workflow
addyosmani
1368
200k
A better future with KSS
kneath
238
17k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Transcript
Datadogログ萬屋
© 2022 3-shake Inc. 2 自己紹介 - 株式会社スリーシェイク Sreake事業部 -
業務: SREとしてインフラ扱ったり、コード読み書きしたり - スマホアプリのバックエンド構築・運用支援 - 趣味: 料理、お酒、車 永瀬滉平
© 2022 3-shake Inc. 3 Datadogでログ管理を始めていく際に必要となるであろう機能を、実際に 設定していく流れに沿って紹介しようと思います。 1. ログ収集 2.
パイプライン作成 3. IndexやArchiveに出力する 4. 秘匿情報の保護 5. datadog agentでフィルタリング 6. Archive / Rehydrate 今日話すこと
© 2022 3-shake Inc. 4 Datadogでログを管理すると何が嬉しい? • 様々なクラウドプロバイダーや環境が入り混じった環境でのログを一括管理できると見や すく活用しやすい •
ログに求められる要件を満たすような機能が一通り提供されている ◦ ログの整形・加工 ◦ 秘匿情報のマスク ◦ 検索機能 ◦ 長期保管
© 2022 3-shake Inc. 5 料金体系 • 取り込み: 0.10$ /
GB • ログの保持期間によって料金が変わる ◦ Archiveでは取り込み料金がかかる ◦ Rehydrate from Archiveでは以下表の保持期間に相当する料金がかかる https://www.datadoghq.com/ja/pricing/?product=%E3%83%AD%E3%82%B0%E7%AE%A1%E7%90%86#%E3%83%AD%E3%82%B0%E7%AE%A1%E7%90%86 保持期間 3日 7日 15日 30日 料金(100万ログイベント/月) 1.06$ 1.27$ 1.70$ 2.50$
© 2022 3-shake Inc. 6 ログ収集 Datadogではログエンドポイントが公開されており、 Agentやインテグレーションを使うことでログ取得・エンドポイン トへ送信することで取り込むことができる。 •
取り込む前にできることの例 ◦ 残しておく必要のないログを除外 ◦ エラータイプや必要な属性の付与 ◦ 機密情報のマスク • 取り込んだ後にできることの例 ◦ ログの保持 ◦ フォーマット・属性の付与 ◦ アラートの設定 https://docs.datadoghq.com/ja/logs/log_collection/
© 2022 3-shake Inc. 7 Pipelineを作成 ログは整形され、必要なメタデータが付与されていることが「使えるログ」の大前提です。 このようにログを加工する作業は PipelineとProcesserを使って行います。 プリセットのパイプラインライブラリが充実しているため、まずはそれを試してみると良いでしょう
https://docs.datadoghq.com/ja/logs/processing/pipelines/
© 2022 3-shake Inc. 8 Pipelineを作成 Datadogでは基本的にJSON形式でログを扱うため、値を GrokパースしてJSON形式に整形するプロセッサーをパイ プライン内で組む必要がある •
パイプライン毎のプロセッサー数は最大 20 で使用することが推奨されている • Grok プロセッサー毎のパース規則は最大 10 で使用することが推奨されている https://docs.datadoghq.com/ja/logs/processing/pipelines/
© 2022 3-shake Inc. 9 IndexやArchiveに出力する Pipelineで処理したログを、どこに取り込むのかを決める。まずは Indexに残すか直接Archive(後述)に出 力するかを選定する Indexに残すことで、
• ログエクスプローラでの閲覧や調査 • 自動分析・異常検知機能の使用 • 監視設定 ができるようになる https://docs.datadoghq.com/ja/logs/indexes/ Indexは複数作成して、ログごとにIndexに残す日数を変えることができる
© 2022 3-shake Inc. 10 秘匿情報の保護 ログにトークンやAPI keyのような秘匿情報が含まれている場合、 Sensitive Data
Scannerという機能でマスクするこ とができる。 プリセットのスキャニングルールライブラリが充実しており、クレジットカード番号やメジャーなクラウドプロバイダのトー クン系のような基本的なフォーマットは揃っている
© 2022 3-shake Inc. 11 秘匿情報の保護 ただし秘匿情報は取り込む前にマスクした方が漏洩のリスクを低減でき、セキュリティの観点で推奨 datadog agentでもマスクする機能があるため、可能な限りこちらを使用するのが望ましい。 https://docs.datadoghq.com/ja/agent/logs/advanced_log_collection/?tab=configurationfile#%E3%83%AD%E3%82%B0%E3%81%AE%E6%A9%9F%E5%AF%86%E3%83%87%E
3%83%BC%E3%82%BF%E3%81%AE%E3%82%B9%E3%82%AF%E3%83%A9%E3%83%93%E3%83%B3%E3%82%B0 - type: mask_sequences name: visa_mc_amex_diners_discover_jcb_credit_card replace_placeholder: "[CREDIT CARD REDACTED]" pattern: (?:4[0-9]{12}(?:[0-9]{3})?|[25][1-7][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800| 35\d{3})\d{11}) よく使われるマスキングのルールが公開されています。 https://docs.datadoghq.com/ja/logs/guide/commonly-used-log-processing-rules/
© 2022 3-shake Inc. 12 datadog agentでフィルタリング • agentで不必要なログはあらかじめ除外する ◦
ログ取り込みに係る料金を減らすため • Goの正規表現構文に従って記載する必要がある ◦ https://regex101.com/ で文法のテストが可能 https://docs.datadoghq.com/ja/agent/logs/advanced_log_collection/?tab=configurationfile https://pkg.go.dev/regexp/syntax logs: - type: file path: /my/test/file.log service: cardpayment source: java log_processing_rules: - type: exclude_at_match name: exclude_datadoghq_users pattern: \
[email protected]
logs: - type: file path: /my/test/file.log service: cardpayment source: java log_processing_rules: - type: include_at_match name: include_datadoghq_users pattern: \
[email protected]
パターンに一致するログを除外する設定 パターンに一致するログを取り込む設定
© 2022 3-shake Inc. 13 Archive / Rehydrate • Archive:
Index化されたかに関わらず全てのログをクラウドストレージに保存する ◦ AWS S3, Azure Storage, Google Cloud Storageに対応 • Rehydrate: Archiveしたログを復元しログエクスプローラーで閲覧・分析できるようにする Rehydrateでは設定している保管期間分の料金がかかります。 Archiveしているログは量が膨大であること が考えられるため、クエリを用いた復元であらかじめログを絞り込んでおくことを推奨。 https://docs.datadoghq.com/ja/logs/archives/rehydrating/ https://docs.datadoghq.com/ja/logs/log_configuration/archives/
© 2022 3-shake Inc. 14 APMとログの関連付け • マイクロサービスの形をとっている場合、分散トレーシングとして APMを使用する •
トレースIDをログにも紐づけることで APMでのパフォーマンス分析にログも使用できるようになる https://docs.datadoghq.com/tracing/other_telemetry/connect_logs_and_traces/
© 2022 3-shake Inc. 15 まとめ ログはトラブルシューティングやシステムの状態監視、監査などの場面での重要なデータソースです。 Datadogはこ れをより良く管理・運用するための機能が提供された便利なツールです。 ただそれ以前に以下のような事項をしっかり定めて周知しておくことが大切です。
• ログの形式・ログレベルの定義 • アプリケーションの役割と振る舞いを踏まえた出し方の方針 • 保持期間 • 保護する秘匿情報の定義 これらを共通認識として開発を進めていくことが、 意味のある役立つログ につながる近道だと考えています。
Thank you