$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
タグ付きユニオン型を便利に使うテクニックとその注意点
uhyo
2
640
AI 時代のデータ戦略
na0
8
3.3k
“決まらない”NSM設計への処方箋 〜ビットキーにおける現実的な指標デザイン事例〜 / A Prescription for "Stuck" NSM Design: Bitkey’s Practical Case Study
bitkey
PRO
1
350
AI/MLのマルチテナント基盤を支えるコンテナ技術
pfn
PRO
5
730
AIにおける自由の追求
shujisado
3
470
事業部のプロジェクト進行と開発チームの改善の “時間軸" のすり合わせ
konifar
9
3k
GitLab Duo Agent Platformで実現する“AI駆動・継続的サービス開発”と最新情報のアップデート
jeffi7
0
160
オープンデータの内製化から分かったGISデータを巡る行政の課題
naokim84
2
1.4k
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
2.9k
M5UnifiedとPicoRubyで楽しむM5シリーズ
kishima
0
110
Claude Code はじめてガイド -1時間で学べるAI駆動開発の基本と実践-
oikon48
43
26k
Introduction to Bill One Development Engineer
sansan33
PRO
0
330
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
186
22k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Balancing Empowerment & Direction
lara
5
780
BBQ
matthewcrist
89
9.9k
Optimizing for Happiness
mojombo
379
70k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
How to train your dragon (web standard)
notwaldorf
97
6.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Git: the NoSQL Database
bkeepers
PRO
432
66k
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はいいぞ