Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

このセッションのゴール

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

PrometheusとObservabilityの考え方

Slide 10

Slide 10 text

Prometheusとは

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

Observabilityとは

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Prometheus Observability ?

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

まとめ

Slide 41

Slide 41 text

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