$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Prometheusを始めよう / Introduction Prometheus ja
Search
kameneko
September 25, 2019
Technology
1
960
Prometheusを始めよう / Introduction Prometheus ja
「Introduction Prometheus」の日本語・改訂版です。
https://speakerdeck.com/takumanakagame/introduction-prometheus
kameneko
September 25, 2019
Tweet
Share
More Decks by kameneko
See All by kameneko
Prometheusでの監視データ活用マニュアル
takumanakagame
1
1.6k
書籍を書きました。 そう、VS Codeで。
takumanakagame
4
5.4k
今日から始めるPrometheusによるシステム監視 / Starting system monitoring with Prometheus today
takumanakagame
1
1.7k
システム監視、何からはじめる? / What is the first step for system monitoring?
takumanakagame
11
8.4k
Reading technical post for 'Reduce toil through better alerting'
takumanakagame
0
190
Reading white paper for `Monitoring Modern Infrastructure` Chapter 1
takumanakagame
0
160
次世代のログ基盤 Grafana Lokiを始めよう! / Introduction Grafana Loki and Promtail
takumanakagame
3
4.3k
CloudNativeな監視とは?今日から始める監視 / What is Cloud Native Monitoring. Let's try Monitoring!
takumanakagame
10
2.7k
Introduction Prometheus
takumanakagame
0
240
Other Decks in Technology
See All in Technology
Snowflakeでデータ基盤を もう一度作り直すなら / rebuilding-data-platform-with-snowflake
pei0804
6
1.6k
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
160
5分で知るMicrosoft Ignite
taiponrock
PRO
0
400
NIKKEI Tech Talk #41: セキュア・バイ・デザインからクラウド管理を考える
sekido
PRO
0
160
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
2
200
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
120
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
140
生成AIを利用するだけでなく、投資できる組織へ / Becoming an Organization That Invests in GenAI
kaminashi
0
110
プロンプトやエージェントを自動的に作る方法
shibuiwilliam
13
14k
Kiro を用いたペアプロのススメ
taikis
1
500
【U/day Tokyo 2025】Cygames流 最新スマートフォンゲームの技術設計 〜『Shadowverse: Worlds Beyond』におけるアーキテクチャ再設計の挑戦~
cygames
PRO
2
790
WordPress は終わったのか ~今のWordPress の制作手法ってなにがあんねん?~ / Is WordPress Over? How We Build with WordPress Today
tbshiki
2
840
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
1.9k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
21
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Site-Speed That Sticks
csswizardry
13
1k
Building the Perfect Custom Keyboard
takai
1
660
Speed Design
sergeychernyshev
33
1.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
0
190
How to build a perfect <img>
jonoalderson
0
4.6k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Designing for Performance
lara
610
69k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
86
Transcript
Prometheusを始めよう かめねこ さくらインターネット株式会社
かめねこ Takuma Nakagame @kameneko1004 • SAKURA internet Inc. ◦ Cloud
Service Provider • IT infrastructure engineer • Evangelist • LIKE ◦ Prometheus ◦ FreeNAS
今回のゴール • Prometheusを触りたくてソワソワしちゃう • 監視がやりたくなる • というかPrometheusに恋する
Prometheusとは?
Prometheusとは? • SoundCloudのエンジニアによって開発された監視システム • 時系列データベース採用したPull型データモデル • 自動で監視対象を追跡するServiceDiscovery • PromQLによる柔軟なクエリ •
Golangで書かれているのでシンプル
Dream Hack Monitoring with Prometheus • 10,000 computers • 500
switches by PromCon 2016 Berlin https://promcon.io/2016-berlin/talks/monitoring-dreamhack-the-worlds-largest-digital-festival/
Prometheusのアーキテクチャ
None
None
ちょっとよくわからないので
最低限のコンポーネントをご紹介
これだけ覚えればとりあえずOK • Prometheus Server • Exporter • Service Discovery •
PromQL
• 監視ターゲットからメトリクスを収集 • PromQLで必要なメトリクスを抽出 • Alertを定義 • WebGUI Prometheus Server
Exporter • 監視エージェント的な存在 • メトリクスを収集してPrometheusに展開
Exporter
Exporter 監視対象ごとにExporterが存在 • Server : Node Exporter • MySQL :
MySQL Server Exporter • Nginx : NGINX Exporter • Apache : Apache Exporter • 他にもいっぱい! https://prometheus.io/docs/instrumenting/exporters/
Service Discovery 自動で監視対象を追跡 • Kubernetes • AWS EC2 • GCP
GCE • OpenStack • Azure • …その他
PromQL • Prometheus Query Language • メトリクスを抽出 • アラートの定義も •
WebGUI • API • Grafana
An Example of PromQL http_requests_total HTTPのリクエスト数をすべて取得 http_requests_total{pod_name=”nginx1”} POD ‘nginx1’なHTTPのリクエストだけ取得 sum(http_requests_total)
HTTPのリクエストの合計を取得
Prometheusを始めるには?
Prometheusを始めるSTEP • コンテナ • バイナリ
Prometheusを始めるSTEP 1. バイナリをダウンロード 2. ファイルを解凍 3. 実行! • コンテナ •
バイナリ
バイナリをダウンロード https://github.com/prometheus/prometheus/releases $ wget https://github.com/prometheus/prometheus/releases/download/v2.11.1/prometheus-2.12.0.linux-amd64.tar.gz
解凍 $ tar -xvf prometheus-2.12.0.linux-amd64.tar.gz
Run $ cd prometheus-2.12.0.linux-amd64/ $ ./prometheus
Run $ cd prometheus-2.12.0.linux-amd64/ $ ./prometheus FINISH!
もう少し掘り下げると global: scrape_interval: 1m evaluation_interval: 15s scrape_timeout: 1m scrape_configs: -
job_name: 'prometheus' static_configs: - targets: - 'localhost:9090' - 'localhost:9542'
もう少し掘り下げると global: scrape_interval: 1m evaluation_interval: 15s scrape_timeout: 1m scrape_configs: -
job_name: 'prometheus' static_configs: - targets: - 'localhost:9090' - 'localhost:9542' Prometheus全体の設定
もう少し掘り下げると global: scrape_interval: 1m evaluation_interval: 15s scrape_timeout: 1m scrape_configs: -
job_name: 'prometheus' static_configs: - targets: - 'localhost:9090' - 'localhost:9542' 監視ターゲットの追加設定 ← は静的に指定
もう少し掘り下げると global: scrape_interval: 1m evaluation_interval: 15s scrape_timeout: 1m scrape_configs: -
job_name: 'kubernetes_pods' kubernetes_sd_configs: - role: pod relabeling: - source_labels: [__meta_kubernetes_pod_name] target_label: pod_name - source_labels: [__meta_kubernetes_node_name] target_label: hostname
もう少し掘り下げると global: scrape_interval: 1m evaluation_interval: 15s scrape_timeout: 1m scrape_configs: -
job_name: 'kubernetes_pods' kubernetes_sd_configs: - role: pod relabeling: - source_labels: [__meta_kubernetes_pod_name] target_label: pod_name - source_labels: [__meta_kubernetes_node_name] target_label: hostname Kubernetesの場合は kubernetes_sd_configs を利用
もう少し掘り下げると global: scrape_interval: 1m evaluation_interval: 15s scrape_timeout: 1m scrape_configs: -
job_name: 'kubernetes_pods' kubernetes_sd_configs: - role: pod relabeling: - source_labels: [__meta_kubernetes_pod_name] target_label: pod_name - source_labels: [__meta_kubernetes_node_name] target_label: hostname relabelingで 任意のラベルを 生成・加工する
Prometheusが適する環境と苦手な環境
Prometheusが得意とすること • Kubernetesの監視 ◦ 標準でKubernetesのAPIをサポート • クラウド環境の監視 ◦ 大手クラウドをサポート •
大規模監視 ◦ SaaSと比べてTCOが低くなる
Prometheusが苦手とすること • ログやイベント監視 ◦ Key (メトリクスとラベルの組み合わせ ) に対して Value (浮動小数点数)
を持つデータモデル • 100%のメトリクスを要求すること ◦ 99.9%のメトリクス ◦ 課金システムなどは注意が必要 • ドキュメントの充実度 ◦ ドキュメントが少ない ◦ 日本語は「入門Prometheus」くらい
Prometheusが苦手とすること • ログやイベント監視 ◦ Key (メトリクスとラベルの組み合わせ ) に対して Value (浮動小数点数)
を持つデータモデル • 100%のメトリクス ◦ 課金システムなどは注意が必要 • ドキュメントの充実度 ◦ ドキュメントが本当に無い ◦ 日本語は「入門Prometheus」くらい
まとめ
まとめ • Kubernetesやクラウドに適した監視システム • ServiceDiscoveryで監視対象を自動追跡 • Exporterの数だけ監視できる ◦ なければ作る •
シンプル
まとめ • Kubernetesやクラウドに適した監視システム • ServiceDiscoveryで監視対象を自動追跡 • Exporterの数だけ監視できる ◦ なければ作る •
シンプル Prometheusはいいぞ