Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Datadogログ萬屋

k-nagase
October 05, 2022

 Datadogログ萬屋

実運用を経てDatadogにてログを扱っていく際に設定しておくべき機能・知っておくべき機能をまとめてご紹介します。

k-nagase

October 05, 2022
Tweet

More Decks by k-nagase

Other Decks in Programming

Transcript

  1. © 2022 3-shake Inc. 2 自己紹介 - 株式会社スリーシェイク Sreake事業部 -

    業務: SREとしてインフラ扱ったり、コード読み書きしたり - スマホアプリのバックエンド構築・運用支援 - 趣味: 料理、お酒、車 永瀬滉平
  2. © 2022 3-shake Inc. 3 Datadogでログ管理を始めていく際に必要となるであろう機能を、実際に 設定していく流れに沿って紹介しようと思います。 1. ログ収集 2.

    パイプライン作成 3. IndexやArchiveに出力する 4. 秘匿情報の保護 5. datadog agentでフィルタリング 6. Archive / Rehydrate 今日話すこと
  3. © 2022 3-shake Inc. 4 Datadogでログを管理すると何が嬉しい? • 様々なクラウドプロバイダーや環境が入り混じった環境でのログを一括管理できると見や すく活用しやすい •

    ログに求められる要件を満たすような機能が一通り提供されている ◦ ログの整形・加工 ◦ 秘匿情報のマスク ◦ 検索機能 ◦ 長期保管
  4. © 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$
  5. © 2022 3-shake Inc. 6 ログ収集 Datadogではログエンドポイントが公開されており、 Agentやインテグレーションを使うことでログ取得・エンドポイン トへ送信することで取り込むことができる。 •

    取り込む前にできることの例 ◦ 残しておく必要のないログを除外 ◦ エラータイプや必要な属性の付与 ◦ 機密情報のマスク • 取り込んだ後にできることの例 ◦ ログの保持 ◦ フォーマット・属性の付与 ◦ アラートの設定 https://docs.datadoghq.com/ja/logs/log_collection/
  6. © 2022 3-shake Inc. 8 Pipelineを作成 Datadogでは基本的にJSON形式でログを扱うため、値を GrokパースしてJSON形式に整形するプロセッサーをパイ プライン内で組む必要がある •

    パイプライン毎のプロセッサー数は最大 20 で使用することが推奨されている • Grok プロセッサー毎のパース規則は最大 10 で使用することが推奨されている https://docs.datadoghq.com/ja/logs/processing/pipelines/
  7. © 2022 3-shake Inc. 9 IndexやArchiveに出力する Pipelineで処理したログを、どこに取り込むのかを決める。まずは Indexに残すか直接Archive(後述)に出 力するかを選定する Indexに残すことで、

    • ログエクスプローラでの閲覧や調査 • 自動分析・異常検知機能の使用 • 監視設定 ができるようになる https://docs.datadoghq.com/ja/logs/indexes/ Indexは複数作成して、ログごとにIndexに残す日数を変えることができる
  8. © 2022 3-shake Inc. 10 秘匿情報の保護 ログにトークンやAPI keyのような秘匿情報が含まれている場合、 Sensitive Data

    Scannerという機能でマスクするこ とができる。 プリセットのスキャニングルールライブラリが充実しており、クレジットカード番号やメジャーなクラウドプロバイダのトー クン系のような基本的なフォーマットは揃っている
  9. © 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/
  10. © 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] パターンに一致するログを除外する設定 パターンに一致するログを取り込む設定
  11. © 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/
  12. © 2022 3-shake Inc. 14 APMとログの関連付け • マイクロサービスの形をとっている場合、分散トレーシングとして APMを使用する •

    トレースIDをログにも紐づけることで APMでのパフォーマンス分析にログも使用できるようになる https://docs.datadoghq.com/tracing/other_telemetry/connect_logs_and_traces/
  13. © 2022 3-shake Inc. 15 まとめ ログはトラブルシューティングやシステムの状態監視、監査などの場面での重要なデータソースです。 Datadogはこ れをより良く管理・運用するための機能が提供された便利なツールです。 ただそれ以前に以下のような事項をしっかり定めて周知しておくことが大切です。

    • ログの形式・ログレベルの定義 • アプリケーションの役割と振る舞いを踏まえた出し方の方針 • 保持期間 • 保護する秘匿情報の定義 これらを共通認識として開発を進めていくことが、 意味のある役立つログ につながる近道だと考えています。