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

今日から始めるPrometheusによるシステム監視 / Starting system monitoring with Prometheus today

kameneko
March 06, 2021

今日から始めるPrometheusによるシステム監視 / Starting system monitoring with Prometheus today

オープンソースカンファレンス2021 Online/Springにて、セミナープログラムとしてお話しました。

https://event.ospn.jp/osc2021-online-spring/session/298458

kameneko

March 06, 2021
Tweet

More Decks by kameneko

Other Decks in Technology

Transcript

  1. © SAKURA internet Inc. 今日から始める Prometheus によるシステム監視 SAKURA internet Inc.

    Takuma Nakagame 2021/03/06 Open Source Conference 2021 Online/Spring
  2. Prometheus hosted by CNCF Projects • Cloud Native Computing Foundationによってホスト

    • Cloud Nativeなオープンソースプロジェクトを推進 • The Linux Foundation配下の組織 • PrometheusはCNCFの2つ目のGraduated Project
  3. Prometheus hosted by CNCF Projects • Graduated = 卒業 →

    一人前のソフトウェア • ソフトウェアの成熟度, コミュニティ, 継続性, etc… • イノベーター理論と合致 • ソフトウェアの習熟度を示す
  4. Prometheus hosted by CNCF Projects • PrometheusはCloud NativeなMonitoring Software •

    キーワード • コンテナ, サービスメッシュ, マイクロサービス • Observabilityを実現 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代 的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織 にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータ ブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。 これらを堅牢な 自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行 うことができます。 Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトのエコシステムを育 成・維持して、このパラダイムの採用を促進したいと考えてます。 私たちは最先端のパターンを民主化し、こ れらのイノベーションを誰もが利用できるようにします。
  5. Prometheus hosted by CNCF Projects • PrometheusはCloud NativeなMonitoring Software •

    キーワード • コンテナ, サービスメッシュ, マイクロサービス • Observabilityを実現 クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッドクラウドなどの近代 的でダイナミックな環境において、スケーラブルなアプリケーションを構築および実行するための能力を組織 にもたらします。 このアプローチの代表例に、コンテナ、サービスメッシュ、マイクロサービス、イミュータ ブルインフラストラクチャ、および宣言型APIがあります。 これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現します。 これらを堅牢な 自動化と組み合わせることで、エンジニアはインパクトのある変更を最小限の労力で頻繁かつ予測どおりに行 うことができます。 Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトのエコシステムを育 成・維持して、このパラダイムの採用を促進したいと考えてます。 私たちは最先端のパターンを民主化し、こ れらのイノベーションを誰もが利用できるようにします。
  6. $ wget https://github.com/prometheus/prometheus/releases/ download/v2.25.0/prometheus-2.25.0.linux-amd64.tar.gz $ tar -xvf prometheus-2.25.0.linux-amd64.tar.gz $ cd

    prometheus-2.25.0.linux-amd64 $ ls console_libraries consoles LICENSE NOTICE prometheus prometheus.yml promtool Prometheusをはじめるには ダウンロードしたファイルを解凍 Prometheus本体 構成ファイル
  7. Storage • 通常はローカルディスクにデータを持つ • 2時間毎のブロック • Chunks, Index, Meta •

    直近2時間未満はオンメモリ + WAL • 単体での冗長化/永続化の仕組みはなし ./data ├── 01BKGV7JBM69T2G1BGBGM6KB12 │ └── meta.json ├── 01BKGTZQ1SYQJTR4PB43C8PD98 │ ├── chunks │ │ └── 000001 │ ├── tombstones │ ├── index │ └── meta.json ├── 01BKGTZQ1HHWHV8FBJXW1Y3W0K │ └── meta.json ├── 01BKGV7JC0RY8A6MACW02A2PJD │ ├── chunks │ │ └── 000001 │ ├── tombstones │ ├── index │ └── meta.json ├── chunks_head │ └── 000001 └── wal ├── 000000002 └── checkpoint.00000001 └── 00000000
  8. Storage Options • --storage.tsdb.path データの保存先PATHを指定(デフォルトは./path) • --storage.tsdb.retention.time ローカルストレージのデータ保持期間を指定 • --storage.tsdb.wal-compression

    圧縮を有効にする ./data ├── 01BKGV7JBM69T2G1BGBGM6KB12 │ └── meta.json ├── 01BKGTZQ1SYQJTR4PB43C8PD98 │ ├── chunks │ │ └── 000001 │ ├── tombstones │ ├── index │ └── meta.json ├── 01BKGTZQ1HHWHV8FBJXW1Y3W0K │ └── meta.json ├── 01BKGV7JC0RY8A6MACW02A2PJD │ ├── chunks │ │ └── 000001 │ ├── tombstones │ ├── index │ └── meta.json ├── chunks_head │ └── 000001 └── wal ├── 000000002 └── checkpoint.00000001 └── 00000000