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

Prometheusでの監視データ活用マニュアル

 Prometheusでの監視データ活用マニュアル

2023/04/17 開催された、Kubernetes Novice Tokyo #24 にて話したスライドです。
https://k8s-novice-jp.connpass.com/event/278196/

kameneko

April 17, 2023
Tweet

More Decks by kameneko

Other Decks in Technology

Transcript

  1. Prometheusでの
    監視データ活用マニュアル
    Kubernetes Novice Tokyo #24
    かめねこ @kameneko1004

    View Slide

  2. かめねこ
    所属: さくらインターネット株式会社 クラウド事業本部
    趣味: カメラ(業務用)、車(MAZDA3)
    著 : Prometheus実践ガイド
    \最近Kindleも出たよ/
    @kameneko1004

    View Slide

  3. あなたの監視データ
    活用
    できていますか?

    View Slide

  4. あなたの監視データ
    活用
    できていますか?

    View Slide

  5. あなたの監視データ
    活用
    できていますか?
    「とりあえず監視してる」
    「アラート通知のために使ってる」
    「Prometheus入れたけど
    メトリクスいっぱいでよくわからん」
    「最後にメンテしたのいつだっけ…」

    View Slide

  6. あなたの監視データ
    活用
    できていますか?
    「とりあえず監視してる」
    「アラート通知のために使ってる」
    「Prometheus入れたけど
    メトリクスいっぱいでよくわからん」
    「最後にメンテしたのいつだっけ…」
    そんな
    あなたに
    必見

    View Slide

  7. このセッションのゴール

    View Slide

  8. このセッションのゴール
    「Prometheusデータ活用」を知る
    1. PrometheusとObservabilityの考え方
    2. Prometheusのデータを活用する4ステップ

    View Slide

  9. PrometheusとObservabilityの考え方

    View Slide

  10. Prometheusとは

    View Slide

  11. Prometheusとは
    • オープンソースの監視システム
    • 時系列データベースを採用したPull型データモデルを採用
    • ServiceDiscoveryによるターゲットの自動追従
    • PromQLによるシンプルかつ柔軟なクエリ
    • さまざまなソフトウェアに対応したExporter
    • Kubernetesを始めとしたクラウドネイティブな監視
    • Observabilityを実現

    View Slide

  12. Prometheusとは
    • オープンソースの監視システム
    • 時系列データベースを採用したPull型データモデルを採用
    • ServiceDiscoveryによるターゲットの自動追従
    • PromQLによるシンプルかつ柔軟なクエリ
    • さまざまなソフトウェアに対応したExporter
    • Kubernetesを始めとしたクラウドネイティブな監視
    • Observabilityを実現
    • Observabilityを実現

    View Slide

  13. Observabilityとは

    View Slide

  14. Observabilityとは
    可観測性 システムの状態を可視化

    View Slide

  15. Observabilityとは
    可観測性 システムの状態を可視化

    View Slide

  16. Observabilityとは
    従来の監視
    システムの異常を事前に想定
    それを検知するためのメトリクスを取得しアラート
    Kubernetesを始めとしたシステムの複雑化によって
    「異常を事前に想定」が難しくなる

    View Slide

  17. Observabilityとは
    Observability
    システムのさまざまな情報を事前に取得
    異常が起きた場合に、これを検知・把握する
    想定できない未知の障害に対応
    データの活用が重要

    View Slide

  18. Prometheusとは
    • オープンソースの監視システム
    • 時系列データベースを採用したPull型データモデルを採用
    • ServiceDiscoveryによるターゲットの自動追従
    • PromQLによるシンプルかつ柔軟なクエリ
    • さまざまなソフトウェアに対応したExporter
    • Kubernetesを始めとしたクラウドネイティブな監視
    • Observabilityを実現
    • Observabilityを実現

    View Slide

  19. Prometheus
    Observability

    View Slide

  20. Observabilityとは
    メトリクス
    ログ
    トレーシング
    Observability

    View Slide

  21. Observabilityとは
    メトリクス
    ログ
    トレーシング
    数値データで時系列にシステムを表現

    View Slide

  22. Observabilityとは
    メトリクス
    ログ
    トレーシング
    文字列データでシステムの状態を
    人間にわかりやすく表現

    View Slide

  23. Observabilityとは
    メトリクス
    ログ
    トレーシング
    システムへのアクセスと
    それに紐づく詳細な呼び出し等を表現

    View Slide

  24. Observabilityとは
    メトリクス
    ログ
    トレーシング
    Prometheus, Zabbix
    Jaeger
    Elasticsearch, Grafana Loki

    View Slide

  25. Observabilityとは
    メトリクス
    ログ
    トレーシング
    Prometheus, Zabbix
    Jaeger
    Elasticsearch, Grafana Loki

    View Slide

  26. Observabilityとは
    Observability
    システムのさまざまな情報を事前に取得
    異常が起きた場合に、これを検知・把握する
    想定できない未知の障害に対応
    データの活用が重要

    View Slide

  27. Observabilityとは
    Observability
    システムのさまざまな情報を事前に取得
    異常が起きた場合に、これを検知・把握する
    想定できない未知の障害に対応
    データの活用が重要

    View Slide

  28. Observabilityとは
    Observability
    システムのさまざまな情報を事前に取得
    異常が起きた場合に、これを検知・把握する
    想定できない未知の障害に対応
    データの活用が重要
    問題がおきたとき、
    収集していたメトリクスをどのように活用するのか?

    View Slide

  29. PrometheusとObservabilityの考え方
    まとめ
    • Prometheusはクラウドネイティブなモニタリングシステム
    • PrometheusでObservabilityを実現する
    • Observabilityでは問題があったときに
    どのようにデータを活用するかが重要となる

    View Slide

  30. Prometheusのデータを活用する
    4ステップ

    View Slide

  31. データを活用する
    1. 収集
    2. 通知
    3. 可視化
    4. 分析

    View Slide

  32. データを活用する
    1. 収集
    2. 通知
    3. 可視化
    4. 分析
    データ活用に必要なメトリクスを収集する
    「何のために」どのようなデータが必要か考える

    View Slide

  33. データを活用する
    1. 収集
    2. 通知
    3. 可視化
    4. 分析
    Exporterの活用
    • Prometheusには公式非公式含めて多種多様なExporterが存在
    • システムが利用している各種Exporterを使って簡単にメトリクスを収集
    なければ作る
    • 大抵のソフトウェアは公開されているExporterで対応可能だが
    ソフトウェアが対応していない・更新されていないExporterなど…
    • 自前のアプリケーションも同様
    • これらは自分で「Exporterを作る」or「組み込む」

    View Slide

  34. データを活用する
    1. 収集
    2. 通知
    3. 可視化
    4. 分析
    取得したデータをもとにユーザへ通知する
    単に知らせるだけでなく、「行動を促す」通知が重要

    View Slide

  35. データを活用する
    1. 収集
    2. 通知
    3. 可視化
    4. 分析
    SLOベースのアラート
    • 「サービス状態」をベースにした考え
    • SLOを基準とすることでサービス品質に紐づいたアラートが可能
    Runbookの活用
    • Runbook: 運用手順をまとめたドキュメント
    • 通知するだけでなく、通知したあとの動きも考慮する
    • 通知にRunbookを埋め込み、通知を受けたあとの行動も明確に

    View Slide

  36. データを活用する
    1. 収集
    2. 通知
    3. 可視化
    4. 分析
    比較的運用コストが高いダッシュボードを
    継続的に、低コストで運用する

    View Slide

  37. データを活用する
    1. 収集
    2. 通知
    3. 可視化
    4. 分析
    コミュニティのダッシュボードを活用
    • さまざまなコンポーネントのダッシュボードをメンテするのは大変
    • 汎用的なダッシュボード(Linuxサーバの情報など)は
    コミュニティのダッシュボードをお借りする
    サービスに関するダッシュボードは自作
    • 実際に作成するのはサービスに関わるもの
    • 常に利用し、メンテナンスする

    View Slide

  38. データを活用する
    1. 収集
    2. 通知
    3. 可視化
    4. 分析
    通知や可視化だけでなく、その先の分析まで考慮する

    View Slide

  39. データを活用する
    1. 収集
    2. 通知
    3. 可視化
    4. 分析
    開発者もPrometheusを
    • Prometheusはインフラのためのツールのように見えるが
    開発者にとっても重要
    • 開発者が必要なメトリクスを取得する
    サービス品質向上のために
    • システム運用だけでなく、ビジネスのためにメトリクスを使う
    • 「サービス別の利用率」「利用率の高い時間帯」「ユーザの行動」
    • メトリクスだけでもさまざまな指標が取得できる
    • +α ログやトレーシングを合わせるとよりよい

    View Slide

  40. まとめ

    View Slide

  41. Prometheusのデータを活用するには
    • Prometheusを使ったObservabilityの実現
    • 想定できない未知の障害に対するデータを蓄積・活用
    • 収集 → 通知 → 可視化 → 分析 → 収集 のループを回す
    収集
    分析・活用 可視化
    通知

    View Slide