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

監視のこれまでとこれから/sakura monitoring seminar 2025

監視のこれまでとこれから/sakura monitoring seminar 2025

Avatar for FUJIWARA Shunichiro

FUJIWARA Shunichiro

June 25, 2025
Tweet

More Decks by FUJIWARA Shunichiro

Other Decks in Technology

Transcript

  1. 自己紹介 @fujiwara (X, GitHub, Bluesky) @sfujiwara (hatena, mixi2) 2011〜2024 面白法人カヤック

    2025-02〜 さくらインターネット ISUCON 優勝4回 / 運営(出題)4回 github.com/kayac/ecspresso github.com/fujiwara/lambroll
  2. 2000年〜 死活監視とOSメトリクスの時代 死活監視 監視対象が正常かどうかをその時点の値で判断、異常ならアラート送信 ping, TCP, HTTP -- 正常にレスポンスが返るか? CPU,

    メモリ, disk 使用率 -- 閾値を超えていないか? 0(ok), 1(warn), 2(error), 3(other) せいぜい4状態(=2bit) 実行は5分間隔が普通 代表的なツール: Nagios(1999), Zabbix(2001) 監視というとこれ(死活→アラート)を思い浮かべる人も多い
  3. 2000年〜 死活監視とOSメトリクスの時代 OSメトリクス OS上で取得できる値を時系列データとして蓄積、可視化 時系列データ = 時刻と値(数値)の組 典型的な項目 CPU, メモリ,

    disk使用率 ネットワークトラフィック(帯域、パケット数) 項目あたり数byte、監視対象あたり数十項目程度、5分ごとが普通(当時) 代表的なツール: MRTG(1995), RRDTool(1999), Cacti(2001), Zabbix(2001) 値を元にアラートできるものとできないもの(可視化のみ)がある
  4. 2000年代後半 監視の性能不足 Web 2.0(2004), SNS(mixi 2004, Twitter 2007), ソーシャルゲーム(モバゲー 2006)

    スマホ(iPhone 2007)などの登場 2000年代後半からWebサービスが急速に高度化・複雑化・大規模化 アプリケーションが原因で障害が発生することが増加 一方でOSSの監視ツールはそれほど進化していなかった GoogleはBorg(コンテナオーケストレーション)に対応したBorgmonを開発(2004) ex-GooglerがBorgmonをOSSで再現したのがPrometheus(2012) https://docs.google.com/presentation/d/1NziwSTwuz91fqsFhXeOGwyhFUoT6ght1irA_0ABLPU0/edit
  5. 2010年〜 クラウドとログの時代 アプリケーションの複雑化、クラウドサービスの普及に伴ってログの重要性が増加 従来型の監視ではカバーできない領域をログによって解決する 1日/1時間ごとにscpなどでファイルを転送 → Fluentdなどで即時転送 バッチ処理で解析 → ニアリアルタイム・オンデマンドで解析

    システム監視だけではなくビジネス上の要求によるデータ収集、解析も必要に → アクセスログやアプリケーションログを構造化(JSON)、即転送、集約、解析 代表的なツール 転送: Fluentd, Beats 集約: Elasticsearch, HDFS, S3, (MongoDB...) 解析: Kibana, Grafana, Hadoop, Spark
  6. 2015年〜 コンテナとマイクロサービスの時代 分散トレーシングの代表的なツール Zipkin(2012) Google Cloud Trace(2015) AWS X-Ray(2016) OpenTracing(2016)

    → OpenTelemetry(2019) Jaeger(2017) Datadog APM(2017) Googleの Dapper 論文(2010)が始祖 https://research.google/pubs/dapper-a-large-scale-distributed-systems-tracing-infrastructure/
  7. 2020年〜 分散トレーシングの時代 分散トレーシングの重要性が認識され、OSSやクラウドサービスでの対応が進む データ量はさらに増加 ログ: 250byte/行 × 100rps = 2GB/日

    (1台あたり) ↓ トレース: 2KB/span × 20span/req × 100rps = 300GB/日 TB/日のオーダー 量が多すぎて、すべて保管するとコストが見合わない(ことが多い) サンプリング(一部のリクエストだけを保存)することが一般的 1%のリクエストだけトレースを取得(head sampling) エラーが発生したリクエストのみトレースを保存(tail sampling)
  8. 2020年〜 分散トレーシングの時代 オブザーバビリティ(Observability) 「システムの内部状態を外部から観測できる能力」 メトリクス: 数値で表現できるもの (集計した値、何が起きたか) ログ: 文字列で表現できるもの (生の値、何が起きたか)

    トレース: 処理の流れを表現できるもの (どこで起きたか) 従来の監視 = 死活監視とメトリクス ← 既知の障害を検知する オブザーバビリティ = メトリクス+ログ+トレース ← 未知の障害も検出可能にする