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

Log Analytics を使った実際の運用 - Sansan Data Hub での取り組み

Log Analytics を使った実際の運用 - Sansan Data Hub での取り組み

■ イベント
Azure勉強会 - Entra ID と Log Analytics と Cosmos DB -
https://sansan.connpass.com/event/344953/

■ 発表者
技術本部 Sansan Engineering Unit Data Hubグループ
道下 環久

■ Sansan Data Hub 開発エンジニア 採用情報
https://media.sansan-engineering.com/datahub-engineer

SansanTech

March 06, 2025
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. 2 © Sansan, Inc. ⾃⼰紹介 2022年に中途で Sansan に⼊社。以来 Sansan Data

    Hub の開発メンバーとして活動している。 現在は Sansan Data Hub の海外開発拠点の⽴ち上げに奔⾛ 中。 道下 環久(Waku Michishita)
  2. 3 © Sansan, Inc. 1. 監視のコンポーネントごとにみる Sansan Data Hub の監視

    2. Sansan Data Hub における運⽤ 今⽇お話すること
  3. 6 © Sansan, Inc. • データ収集 • データストレージ • 可視化

    ◦ 今回は割愛 • 分析とレポート • アラート 監視のコンポーネント
  4. 7 © Sansan, Inc. • 先ほどの5つの要素はすべて Azure Monitor にて賄われている Azure

    における Log の収集や分析 画像引⽤元: Azure Monitor overview
  5. 8 © Sansan, Inc. • データ収集 • データストレージ • 可視化

    ◦ 今回は割愛 • 分析とレポート • アラート 監視のコンポーネント
  6. 9 © Sansan, Inc. • Azure Monitor は様々なものを監視対象とできる。また監視対象によっ てデータの収集⽅法等が異なる。例えば… ◦

    Azure Resource ▪ Activity Log と Platform Metrics は⾃動で収集される ▪ diagnostic setting を設定することで Resource Logs も収集できる ◦ アプリケーション ▪ Azure Monitor SDK や Application Insights SDK を通じて Log やメトリクス、 トレースを収集 ◦ Virtual Machine ▪ Azure Monitor Agent を通じて Log を収集 データ収集
  7. 12 © Sansan, Inc. • データ収集 • データストレージ • 可視化

    ◦ 今回は割愛 • 分析とレポート • アラート 監視のコンポーネント
  8. 13 © Sansan, Inc. • 取得されたデータはその種類によって保管する場所が変わる ◦ Metrics の場合 Azure

    Monitor Metrics ◦ Log の場合 Azure Monitor Logs ▪ Application Insights から送られる Log は Log Analytics Workspace に保管さ れる データストレージ
  9. 14 © Sansan, Inc. • リソースによって送られる Metrics は異なる ◦ 例1)

    Service Bus ▪ Queue/Topic に存在するメッセージ数 / Count of messages in a Queue/Topic ▪ メッセージの流⼊数・処理数 / Incoming/Outgoing Messages ◦ 例2) SQL Database ▪ CPU の使⽤率 / CPU percentage ▪ データ I/O / Data IO ▪ DTU の使⽤率 / DTU percentage Azure Monitor Metrics に送られる Metrics
  10. 15 © Sansan, Inc. • デフォルトで取り込まれる Metrics のみで⼗分かどうかはプロダクトの 運⽤に応じて決まる •

    Sansan Data Hub は「顧客の環境からデータを取り込み、各種処理をし た後顧客の環境に反映させる」というプロダクト ◦ ⼤量にデータが⼊ってきた場合(⼤量にメッセージがエンキューされた 場合)、スループットは変わらないが全部のデータを処理するのに時間 がかかってしまう場合がある ▪ メッセージの流⼊数・処理数だけでは全部を処理するのにどれだけ時間が かかるかわからない • そこで⽤いられるのが Custom Metrics ◦ ⾃分たちで Metrics の定義をして保存・活⽤することができる 既存の Metrics のみで⼗分か?
  11. 16 © Sansan, Inc. • やりたいこと ◦ ある時点でキューに存在するメッセージの処理にどれだけ時間がかかっ ているかを知りたい •

    ⽤意したもの - Consumer Delay ◦ キューに残っている⼀番古いメッセージがエンキューされた時刻から現 在時刻までの秒数 ▪ これにより「N分前に来たメッセージがまだ処理されないまま残っている」 を確認できる(対応できる) Custom Metrics - Consumer Delay
  12. 17 © Sansan, Inc. • Azure Monitor Logs に送られた Log

    は Log Analytics Workspace のテー ブルに保管される ◦ 例えばある App Service に対する 500 エラーの Log は以下のように検 索できる Log Analytics Workspace での Log の調査
  13. 18 © Sansan, Inc. • Application Insights から送信される Log は全てとは限らない

    ◦ 操作ID ごとに Log を保持するか保持しないか決定される (サンプリング) ◦ デフォルト設定の場合、操作 Log の⼀部がサンプリングされて 取り込まれる ◦ ユーザー操作系の Log をサンプリングしてしまうと 調査の際に困ってしまうので注意が必要 • サンプリングにより Log の取り込み・保存にかかるコストを ⼀定抑えることができる 参考: Application Insights におけるサンプリング Azure Monitor Application Insights のサンプリング
  14. 19 © Sansan, Inc. • Log や Custom Metrics の取り込み・保存にはお⾦かかるが

    ◦ その中でも特に⼤きいのが Log の取り込み • Analytics Logs プランの場合は以下のとおり 実際 Log の取り込み・保存にどのくらいかかりますか? 画像引⽤元: Azure Monitor Pricing
  15. 20 © Sansan, Inc. • データ収集 • データストレージ • 可視化

    ◦ 今回は割愛 • 分析とレポート • アラート 監視のコンポーネント
  16. 21 © Sansan, Inc. • Azure Monitor Metrics に保存した Metrics

    は Metrics Explorer を使って グラフを起こせる(以下は Consumer Delay の場合) 分析とレポート
  17. 23 © Sansan, Inc. • データ収集 • データストレージ • 可視化

    ◦ 今回は割愛 • 分析とレポート • アラート 監視のコンポーネント
  18. 24 © Sansan, Inc. • Azure Monitor Metrics/Logs に保存された情報を⽤いたアラート ◦

    Alert Rule を作成し、その条件に合致したらアラートを発報 • Log Analytics のクエリベースでのアラート作成も可能 アラート 画像引⽤元: What are Azure Monitor alerts?
  19. 26 © Sansan, Inc. • Log は集めるだけでは意味ない • アラートも出すだけでは意味ない •

    「どういうことが起こったときにどういうアクションができるか」 が⼤事 で、あなたはどういう運⽤をしたいの?
  20. 27 © Sansan, Inc. • 顧客が触れる UI や API で500エラーが発⽣した場合にアラートを発報

    ◦ 発⽣していることを検知すること⾃体が重要なので即発報 ▪ アラートにすぐ対処できるよう Slack に通知している ▪ 検知したら「どこのエンドポイントで発⽣しているのか?」を確認 • アラートにクエリのリンクを載せることで対応している ポイント1: 顧客がエラーを体験したらすぐ対応 ここに Log Analytics の クエリページのリンクが載ってます
  21. 29 © Sansan, Inc. • Log Analytics のクエリベースで具体的な問題を知らせてくれる アラートを作成 ◦

    遅延の予兆となる事象が検知された時点でお知らせ • アラートに対応⼿順書が載っていることですぐに⾏動に移せる ポイント2: ⾏動を促すアラート Notion の⼿順書のリンク
  22. 30 © Sansan, Inc. • 普段から Dashboard をみることで状況を確認できる ◦ 「なんかスループット落ちてる気がする」「このキューで

    Consumer Delay が伸び始めてる」といった予兆を感じたら先⼿を打つ ポイント3: 普段から Dashboard をみてアンテナを貼る
  23. 31 © Sansan, Inc. • みんな⽬的意識を持ってアラートを作る • しかし時代の流れによって以下のような問題が発⽣する ◦ 作ったアラートが要らなくなる

    ◦ 当初想定していたよりもアラートが多くなってしまう(オオカミ少年) • アラートが適切に機能していないと軽視されてしまう可能性が出る ◦ 「アラートがでた!」→「調査したけど問題なかった!」→「またアラ ートが出た!」→「やはり問題なかった!」→…を繰り返すと「そもそ もこのアラート意味ないのでは?」と感じてしまう 昔作ったアラートに噛まれる