Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
2025年 開発生産「可能」性向上報告 サイロ解消からチームが能動性を獲得するまで/ 20251216 Naoki Takahashi
shift_evolve
PRO
1
180
ChatGPTで論⽂は読めるのか
spatial_ai_network
9
28k
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
160
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
220
年間40件以上の登壇を続けて見えた「本当の発信力」/ 20251213 Masaki Okuda
shift_evolve
PRO
1
130
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
460
エンジニアとPMのドメイン知識の溝をなくす、 AIネイティブな開発プロセス
applism118
4
1.3k
SREには開発組織全体で向き合う
koh_naga
0
340
シニアソフトウェアエンジニアになるためには
kworkdev
PRO
3
120
AWS Security Agentの紹介/introducing-aws-security-agent
tomoki10
0
270
20251209_WAKECareer_生成AIを活用した設計・開発プロセス
syobochim
7
1.6k
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
2
900
Featured
See All Featured
Balancing Empowerment & Direction
lara
5
800
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Scaling GitHub
holman
464
140k
BBQ
matthewcrist
89
9.9k
Practical Orchestrator
shlominoach
190
11k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
We Have a Design System, Now What?
morganepeng
54
7.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
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はいいぞ