SlideShare a Scribd company logo
Tech Dojo
Prometheus 勉強会
~概要と簡単な構築まで~
日本アイ・ビー・エム株式会社
テクノロジー事業本部 カスタマーサクセス
カスタマーサクセスマネージャー
黒沢 勇
2022/11/11
Agenda
1. 監視とは?
2. Prometheus 基礎
• 何ができる?
• アーキテクチャ
• 向いていること、向いていないこと
• IBM TechnologyとPrometheus
3. Hands on
© 2022 IBM Corporation
監視とは
© 2022 IBM Corporation
そもそも監視はなんのために行うか?
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 4
Container
Web
App
DB
VM
Cloud
Service
On-prem DC
システム
Ø 監視は以下の要件が満たせればok
ü システムの正常性を確認
ü システムが異常になりそうな予兆を検知
ü 将来の拡張に備えた参考情報を取得
Ø 最近はシステムの状況を把握している状況を
“Observability”があると呼ぶ
Server
Storage Network
Cloud
Service
ICMP, SNMP, Metric Alert, Log
API, Service Assurance... etc
主な監視の方式
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 5
メトリクス ログ トレーシング
監視対象が
何を行ったのかを文で記述
ex: プロセスAをUser BがKillした
数値データとして
監視対象の情報を取得
ex: CPU使用率、電源on/off
ユーザのリクエストに対して、
どのコンポーネントがどれだけ
の時間をかけたか表示
なぜ今Observabilityが必要なのか
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 6
現代のITは複雑化と増大が止まらず、システムの可観測性を高めていく必要がある
1. ITシステム自体の増大
• ITシステムが企業内で重要化がさらに進行
• low / no code で簡単に作れるアプリが増加
2. プラットフォームの複雑化
• クラウド活用の増大、クラウドベンダーの複雑化
• 従来の仮想マシンに加えてコンテナプラットフォームが登場
3. 観測手法の増大
• 従来通りの監視(ping監視、ログ監視)
• パフォーマンス、ユーザー影響の把握
• クラウドサービスのコスト適正化
Cloud
Service
Container
App
Baremetal
Legacy
Apps
Modern
App
VM
On-prem DC
Performance
Architecture
Cost Logging
Service Impact
ObservabilityとCloud Native Trail map
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 7
よくみるトレイルマップを出してみる
Ø クラウドネイティブになりたいなら
このマップに従って進むと良いとされている
(個人的に1がコンテナ化よりはCI/CDが先な気がする)
Ø Observabilityは4番目にある
(コンテナ化-> CI/CD -> Orchestration -> Observability)
• コンテナ化してCI/CDが進み、
オーケストレーションされた結果
Observabilityが必要になるとも読み取れる
• CI/CDやオーケストレーションが進んだ結果
システムコンポーネントが増えたり減ったりするので、
従来監視とは違う考え方が必要になる
Prometheus 基礎
何ができる?
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
Prometheusとは
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 9
ü オープンソースの監視システムの一種
ü Sound Cloud 社のエンジニアによって2012年に開発
ü Google社のBorgmonにインスパイアを受けて開発
• BorgmonはBorg (k8sの前身)の監視システムとして開発
• Borgmonは分散システムのモニタリング用として最適化
(この特徴をPrometheusは継承)
ü 2016年にCNCFのプロジェクトメンバーとして追加
ü 2018年にCNCFのGraduated Project化
(CNCFが十分成熟したとみなした)
Prometheusは何を取得するためのものか?
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 10
メトリクスを取得するためのツールである
主な監視の方式(再掲)
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 11
メトリクス ログ トレーシング
監視対象が
何を行ったのかを文で記述
ex: プロセスAをUser BがKillした
数値データとして
監視対象の情報を取得
ex: CPU使用率、電源on/off
ユーザのリクエストに対して、
どのコンポーネントがどれだけ
の時間をかけたか表示
Prometheusの特徴4選
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 12
Prometheus
Key-value型 ラベル
Pull型モデルと
Service Discovery
Exporterの豊富さ
Prometheusの特徴4選
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 13
Prometheus
Key-value型 ラベル
Pull型モデルと
Service Discovery
Exporterの豊富さ
メトリクスとラベル
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 14
PrometheusはラベルとメトリクスをKeyにして値を引いてくる
node_cpu_seconds_total {instance=“localhost:9100“} 0.9
メトリクス名 ラベル
Key Value
ü 上記例はCPUの利用時間を取得するnode_cpu_seconds_totalの例
ü 実際にはrate (node_cpu_seconds_total[5m])のような形でPromQLクエリを実行して値を取得
※ node_cpu_seconds_total で絞り込みをかけるときには
instanceラベル以外にもCPU番号ラベル、CPUのモード(idleなど)を表すラベルも使う
Prometheus 基礎
アーキテクチャ
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
Prometheus Server
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 16
ü Prometheusの本体
• ターゲットから情報を収集
• アラートマネージャへアラートをプッシュ
• UIは別口で用意するのが基本
(Prometheus Web UIはあるが貧弱)
• 導入が非常に容易
• 試すだけならDocker コマンド1つで導入可能
Exporter
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 17
情報収集の対象(監視の対象)
ü Exporterについて
• デーモン型
• エージェントのように
対象に仕込んでメトリクスを取得
• 当然各サーバへのExporterデプロイが必要
• 例: node exporter (Linuxのメトリクス取得)
• プロキシ型
• API経由でメトリクスを取得
• ターゲットのリソースを消費せずに監視
• 例: Black box exporter
(ICMP, HTTP GET/POSTでエンドポイントを監視)
Exporterの一覧
https://prometheus.io/docs/instrumenting/exporters/
Pushgateway
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 18
ü Pushgatewayについて
• Pull型モデルではバッチ処理やイベントなどの
一時的なメトリクスを収集できない
• 監視ターゲットからPush型で監視をしたいときに使用
• Pushgatewayで取得したメトリクスは自動削除されない
• 監視対象が削除された場合は手動削除が必要
• ノイズとなる可能性があるので注意
Service Discovery
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 19
ü Service Discoveryについて
• クラウドサービスのAPIを使用して
対象の情報を動的に更新する仕組み
• Service Discoveryに対応しているシステムであれば
簡単に導入可能
• システムが削除されると自動的に取得を停止
(メトリックを汚さないで済む)
• 対応しているシステム例
• EC2
• k8s
• Azure Service Directory
• Openstackなど
Alertmanager
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 20
ü Alertmanagerについて
• Prometheus Server自体にはアラート発報機能がない
• Prometheus Server本体とは別機能として実装
• Aleartmanager単体でのスケールアップ/アウトが可能
PromQL
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 21
ü PromQLについて
• Prometheus Query Languageの略
• その名の通りPrometheusの独自クエリ
• ブラウザ上で簡単に投げて値を確認できる
• SQLでは冗長になるメトリクスを簡単に記述可能
• 数式で入力すれば欲しいデータがすぐ手に入る
例:メモリの使用率
1- (node_memory_MemFree_bytes / node_memory_MemTotal_bytes)
Grafana
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 22
ü Grafanaについて
• さまざまなデータソースをサポートする
可視化専門のツール
• Prometheus自体もWebUIを持つが、
機能が貧弱であるためGrafanaを使うのが一般的
• さまざまなデータソースを同時に表示可能
• サポートするデータソース例
ü AWS Cloud Watch
ü PostgreSQL
ü Elasticsearch
ü MS SQL Server
Prometheus 基礎
向いていること、向いていないこと
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
Prometheusが得意なこと
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 24
Ø 導入が容易
• 本体はメトリクスの収集とクエリの実行のみ
Ø スケールするシステムへの適用
• サービスディスカバリ機能でシステムがボコボコ発生しても大丈夫
• Exporterが豊富にあり、標準的なシステムならすぐに仕込める(設定が少ない)
Ø 機能ごとのスケール
• 各コンポーネントが独立しているのでPrometheus自体のスケールがしやすい
Prometheusが苦手なこと(できないこと)
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 25
Ø ログの管理
• Promehteusはログの管理を目的としていません
• アプリケーションの完全な可視化を行うためにはログも必要
別途ログ管理、可視化システムを導入しましょう
Ø データの完全性の保証
• Prometheusはデータの完全性を保証しない
Ø サポートの提供
• 当然issueはGithubから頑張って解決
じゃあ使い方は?
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 26
まとめ
クラウドネイティブ
なシステムへ適用
メトリクス取得特化
ログは別収集
ビジュアライズも
別ツール連携
超重要な
データ可視化は
別で行う
Service Discoveryを
使って増える監視対象に
対応
システム監視を完全にす
るためにログツールと連
携して監視を行う
UIが貧相なので
別ツールを活用
例えばデータ量に応じて
課金するシステムは
対応を回避
大規模監視を行う上で考慮すべき点
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 27
コスト 冗長性/パフォーマンス Prometheus自身の監視
各コンポーネントの負荷を見て
冗長性を高める
サービスは金がかかる
ある程度の規模になったら
オンプレの方がコストメリット
が出る
他のシステムを使って
Prometheus自身を監視する
おすすめの書籍
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 28
Docs / Gitを眺めるだけでは全体感を知るのは厳しい
https://www.oreilly.co.jp/books/9784873118642/
監視とは何かが分かる本。
Prometheusに関わらず、監視をきちんと勉強したい方におすすめ
おすすめの書籍
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 29
Docs/Gitを眺めるだけでは全体感を知るのは厳しい
私もこれから読むレベルですが内容が少し高度らしいです
基礎から学べるとの文言に偽りなし。
Call to Action
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 30
実際に始めてみよう(Prometheus実践ガイドより)
1. 実際にDeploy してみる
2. node exporterをDeployしてメトリクスを収集する
3. サービスディスカバリを使用して自動管理する
4. メトリクスを可視化する
5. Alertmanagerでアラートを発報する
6. エクスポータを自作する
7. エコシステムと連携する
今回のHands on範囲
31
ü Grafanaについて
• さまざまなデータソースをサポートする
可視化専門のツール
• Prometheus自体もWebUIを持つが、
機能が貧弱であるためGrafanaを使うのが一般的
• さまざまなデータソースを同時に表示可能
• サポートするデータソース例
ü AWS Cloud Watch
ü PostgreSQL
ü Elasticsearch
ü MS SQL Server
Deploy方法
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 34
prometheus 本体
• バイナリを利用する
• 比較的簡単
• wgetでひっぱり、tarで解凍するだけ
- wget https://github.com/prometheus/prometheus/releases/download/v2.40.4/prometheus-2.40.4.linux-386.tar.gz
- tar xfvz prometheus-2.40.4.linux-386.tar.gz
- ./prometheus &
• ソースコードからビルドをかける
• GO環境が必要だったりするので面倒。
• Docker コンテナを利用する
• docker runですぐ起動可能
- docker run –m –name prom –d –p 9090:9090 prom/prometheus:v2.40.4
Deploy方法
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 35
Grafana
• パッケージマネージャを利用する
• 比較的簡単
- wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
- echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
- sudo apt-get update
- sudo apt-get install grafana
- sudo systemctl start grafana-server
• Docker コンテナを利用する
• docker runですぐ起動可能
- docker run –name grafana –d –p 3000:3000 grafana/grafana:8.3.6
Deploy方法
36
node exporter
• 監視対象のコンソールで以下のコマンドを実行
• wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz
• tar xvfz node_exporter-1.4.0.linux-amd64.tar.gz
• cd node_exporter-1.4.0.linux-amd64/
• ./node_exporter &
• Prometheus server上のコンソールでprometheus.ymlファイルを編集し、赤字部分を追加
(文頭を必ず揃えること、ifconfigあたりで監視対象のIPアドレスは調べてください)
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus"
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ["localhost:9090"]
- job_name: "node"
static_configs:
- targets: [”<your_node_exporter_ip>:9100"]
#your node exporter ipはlocalhostでもOK
Deploy 方法
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 37
alert manager
• Alert managerのコンソールで以下のコマンドを実行
• wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz
• tar xvfz alertmanager-0.23.0.linux-amd64.tar.gz
• cd alertmanager-0.23.0.linux-amd64.tar.gz
• ./alertmanager &
Prometheus Srv + Node exporter 動作確認
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 38
Prometheus ServerのIPアドレス:9090にWebブラウザでアクセス、StatusタブのTragetをクリック
node というジョブの中で自分のNode exporter用の IPアドレスへアクセスして、State がUPなら成功
PromQL動作確認
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 39
Prometheus ServerのIPアドレス:9090にWebブラウザでアクセス、Graphをクリック
Expressionに
node_cpu_seconds_total{instance=”<your_node_exporter_ip>:9100“}と入力、
色々出れば成功
PromQL動作確認
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 40
Prometheus ServerのIPアドレス:9090にWebブラウザでアクセス、Graphをクリック
Expressionに
node_cpu_seconds_total{instance=”<your_node_exporter_ip>:9100“}と入力、
色々出れば成功
Grafana 動作確認
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 41
Prometheus ServerのIPアドレス:3000にWebブラウザでアクセス、起動を確認
ID/pass = admin/adminでアクセス、パスワードを更新してログインを確認してください
GrafanaとPrometheusの連携
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 42
Data Souces をクリック、Add Datasource をクリック、
GrafanaとPrometheusの連携
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 43
Prometheusをクリック、
URLにhttp://<your prometheus IP>:9090と入力
Save & Testをクリックして Data sourse is working というステータスを確認
ここまでででGrafanaとPrometheusの連携は完了
GrafanaにダッシュボードをImportする
44
Grafanaのサイトにアクセスし、node exporter fullを導入する
https://grafana.com/grafana/dashboards/
へアクセス、node exporter fullをクリックし、Copy ID to clipboardをクリック
https://grafana.com/grafana/dashboards/1860-node-exporter-full/
GrafanaにダッシュボードをImportする
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 45
Grafanaダッシュボードにもどり、左側のタブからimportをクリック
IDをペーストしてLoadをクリック
情報が正しいことを確認し、どのPrometheusと連携するか選択肢、Importをクリック
GrafanaにダッシュボードをImportする
46
ダッシュボードに情報が表示されれば成功!
PromQLをどうダッシュボードに利用するかを確認
47
CPU Busy 内のEditをクリック
PromQLをどうダッシュボードに利用するかを確認
48
Metric Browser のexplain をonにするとどういうことをやっているのか説明が出る
数式を読み解いていくと、なんとなくわかってくる
次回予告
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 49
• 同じような環境用意してk8sとPrometheusの連携をやりたい
• 他のDB系のデータがどう見えるのかを見てみたい
• IBM製品との連携を見せたい
• Slackでの連携どんな感じなのかみたい
Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 56

More Related Content

What's hot

DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
Tokoroten Nakayama
 
Dockerの事例紹介
Dockerの事例紹介Dockerの事例紹介
Dockerの事例紹介Hiroki Endo
 
論文紹介: The New New Product Development Game
論文紹介: The New New Product Development Game論文紹介: The New New Product Development Game
論文紹介: The New New Product Development Game
Hitoshi Otsuki
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
Tokoroten Nakayama
 
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へチケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
akipii Oga
 
データ分析基盤運⽤チームの 運⽤業務を改善してみた話
データ分析基盤運⽤チームの 運⽤業務を改善してみた話データ分析基盤運⽤チームの 運⽤業務を改善してみた話
データ分析基盤運⽤チームの 運⽤業務を改善してみた話
Recruit Lifestyle Co., Ltd.
 
データ分析基盤について
データ分析基盤についてデータ分析基盤について
データ分析基盤について
Yuta Inamura
 
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころエキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
Takayuki Shimizukawa
 
「伝わるチケット」の書き方
「伝わるチケット」の書き方「伝わるチケット」の書き方
「伝わるチケット」の書き方
onozaty
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
Rui Watanabe
 
はじめてのPRD
はじめてのPRDはじめてのPRD
はじめてのPRD
Takuya Oikawa
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
NTT DATA Technology & Innovation
 
BigQueryを始めてみよう - Google Analytics データを活用する
BigQueryを始めてみよう - Google Analytics データを活用するBigQueryを始めてみよう - Google Analytics データを活用する
BigQueryを始めてみよう - Google Analytics データを活用する
Google Cloud Platform - Japan
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについてkumake
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
グラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみたグラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみた
CData Software Japan
 
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
BigQueryで集計するシステムを作って分かったKPI集計ツール作成BigQueryで集計するシステムを作って分かったKPI集計ツール作成
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
(shibao)芝尾 (kouichiro)幸一郎
 
Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するために
Shun Tsunoda
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
Hiromasa Oka
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
 

What's hot (20)

DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
Dockerの事例紹介
Dockerの事例紹介Dockerの事例紹介
Dockerの事例紹介
 
論文紹介: The New New Product Development Game
論文紹介: The New New Product Development Game論文紹介: The New New Product Development Game
論文紹介: The New New Product Development Game
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
チケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へチケット駆動開発の解説~タスク管理からプロセス改善へ
チケット駆動開発の解説~タスク管理からプロセス改善へ
 
データ分析基盤運⽤チームの 運⽤業務を改善してみた話
データ分析基盤運⽤チームの 運⽤業務を改善してみた話データ分析基盤運⽤チームの 運⽤業務を改善してみた話
データ分析基盤運⽤チームの 運⽤業務を改善してみた話
 
データ分析基盤について
データ分析基盤についてデータ分析基盤について
データ分析基盤について
 
エキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころエキスパートPythonプログラミング改訂3版の読みどころ
エキスパートPythonプログラミング改訂3版の読みどころ
 
「伝わるチケット」の書き方
「伝わるチケット」の書き方「伝わるチケット」の書き方
「伝わるチケット」の書き方
 
Marp Tutorial
Marp TutorialMarp Tutorial
Marp Tutorial
 
はじめてのPRD
はじめてのPRDはじめてのPRD
はじめてのPRD
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
 
BigQueryを始めてみよう - Google Analytics データを活用する
BigQueryを始めてみよう - Google Analytics データを活用するBigQueryを始めてみよう - Google Analytics データを活用する
BigQueryを始めてみよう - Google Analytics データを活用する
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについて
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 
グラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみたグラフ構造のデータモデルをPower BIで可視化してみた
グラフ構造のデータモデルをPower BIで可視化してみた
 
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
BigQueryで集計するシステムを作って分かったKPI集計ツール作成BigQueryで集計するシステムを作って分かったKPI集計ツール作成
BigQueryで集計するシステムを作って分かったKPI集計ツール作成
 
Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するために
 
企業システムにアジャイルは必要か
企業システムにアジャイルは必要か企業システムにアジャイルは必要か
企業システムにアジャイルは必要か
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 

Similar to Prometheus超基礎公開用.pdf

オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
日本ヒューレット・パッカード株式会社
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
Atomu Hidaka
 
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
Naoya Hashimoto
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3openrtm
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
Takanori Suzuki
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
NTT DATA Technology & Innovation
 
Microsoft Tunnel 概要
Microsoft Tunnel 概要Microsoft Tunnel 概要
Microsoft Tunnel 概要
Yutaro Tamai
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
HSM用ミドルウェア Conduit Toolkitの概要と使い方
HSM用ミドルウェア Conduit Toolkitの概要と使い方HSM用ミドルウェア Conduit Toolkitの概要と使い方
HSM用ミドルウェア Conduit Toolkitの概要と使い方
Hiroshi Nakamura
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka
 
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
VirtualTech Japan Inc.
 
OSSを活用したIaCの実現
OSSを活用したIaCの実現OSSを活用したIaCの実現
OSSを活用したIaCの実現
Trainocate Japan, Ltd.
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
NTT DATA Technology & Innovation
 
AnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a CodeAnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a Code
Satoru Yoshida
 
IBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみたIBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみた
You&I
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
NTT DATA Technology & Innovation
 
Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2
Yuki Suga
 
The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)
Kimihiko Kitase
 

Similar to Prometheus超基礎公開用.pdf (20)

オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -コンテナーによるIT基盤変革 - IT infrastructure transformation -
コンテナーによるIT基盤変革 - IT infrastructure transformation -
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
 
Microsoft Tunnel 概要
Microsoft Tunnel 概要Microsoft Tunnel 概要
Microsoft Tunnel 概要
 
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
 
HSM用ミドルウェア Conduit Toolkitの概要と使い方
HSM用ミドルウェア Conduit Toolkitの概要と使い方HSM用ミドルウェア Conduit Toolkitの概要と使い方
HSM用ミドルウェア Conduit Toolkitの概要と使い方
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
DeNA private cloud のその後 - OpenStack最新情報セミナー(2017年3月)
 
OSSを活用したIaCの実現
OSSを活用したIaCの実現OSSを活用したIaCの実現
OSSを活用したIaCの実現
 
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
Prometheus Operator 入門(Kubernetes Novice Tokyo #26 発表資料)
 
AnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a CodeAnsibleおよびDockerで始めるInfrastructure as a Code
AnsibleおよびDockerで始めるInfrastructure as a Code
 
IBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみたIBM Rational Team Concertに触れてみた
IBM Rational Team Concertに触れてみた
 
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
Java 18で入ったJVM関連の(やや細かめな)改善(JJUGナイトセミナー「Java 18 リリース記念イベント」発表資料)
 
Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2
 
The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)The road of Apache CloudStack Contributor (Translation and Patch)
The road of Apache CloudStack Contributor (Translation and Patch)
 

Recently uploaded

ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
miyp
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
Toru Miyahara
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
Toru Miyahara
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
K Kinzal
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
Masatsugu Matsushita
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Toru Miyahara
 
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
Yuuitirou528 default
 

Recently uploaded (7)

ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
 
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料「VRC海のおはなし会_深海探査とロボットのお話」発表資料
「VRC海のおはなし会_深海探査とロボットのお話」発表資料
 

Prometheus超基礎公開用.pdf

  • 1. Tech Dojo Prometheus 勉強会 ~概要と簡単な構築まで~ 日本アイ・ビー・エム株式会社 テクノロジー事業本部 カスタマーサクセス カスタマーサクセスマネージャー 黒沢 勇 2022/11/11
  • 2. Agenda 1. 監視とは? 2. Prometheus 基礎 • 何ができる? • アーキテクチャ • 向いていること、向いていないこと • IBM TechnologyとPrometheus 3. Hands on © 2022 IBM Corporation
  • 4. そもそも監視はなんのために行うか? Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 4 Container Web App DB VM Cloud Service On-prem DC システム Ø 監視は以下の要件が満たせればok ü システムの正常性を確認 ü システムが異常になりそうな予兆を検知 ü 将来の拡張に備えた参考情報を取得 Ø 最近はシステムの状況を把握している状況を “Observability”があると呼ぶ Server Storage Network Cloud Service ICMP, SNMP, Metric Alert, Log API, Service Assurance... etc
  • 5. 主な監視の方式 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 5 メトリクス ログ トレーシング 監視対象が 何を行ったのかを文で記述 ex: プロセスAをUser BがKillした 数値データとして 監視対象の情報を取得 ex: CPU使用率、電源on/off ユーザのリクエストに対して、 どのコンポーネントがどれだけ の時間をかけたか表示
  • 6. なぜ今Observabilityが必要なのか Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 6 現代のITは複雑化と増大が止まらず、システムの可観測性を高めていく必要がある 1. ITシステム自体の増大 • ITシステムが企業内で重要化がさらに進行 • low / no code で簡単に作れるアプリが増加 2. プラットフォームの複雑化 • クラウド活用の増大、クラウドベンダーの複雑化 • 従来の仮想マシンに加えてコンテナプラットフォームが登場 3. 観測手法の増大 • 従来通りの監視(ping監視、ログ監視) • パフォーマンス、ユーザー影響の把握 • クラウドサービスのコスト適正化 Cloud Service Container App Baremetal Legacy Apps Modern App VM On-prem DC Performance Architecture Cost Logging Service Impact
  • 7. ObservabilityとCloud Native Trail map Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 7 よくみるトレイルマップを出してみる Ø クラウドネイティブになりたいなら このマップに従って進むと良いとされている (個人的に1がコンテナ化よりはCI/CDが先な気がする) Ø Observabilityは4番目にある (コンテナ化-> CI/CD -> Orchestration -> Observability) • コンテナ化してCI/CDが進み、 オーケストレーションされた結果 Observabilityが必要になるとも読み取れる • CI/CDやオーケストレーションが進んだ結果 システムコンポーネントが増えたり減ったりするので、 従来監視とは違う考え方が必要になる
  • 8. Prometheus 基礎 何ができる? Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
  • 9. Prometheusとは Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 9 ü オープンソースの監視システムの一種 ü Sound Cloud 社のエンジニアによって2012年に開発 ü Google社のBorgmonにインスパイアを受けて開発 • BorgmonはBorg (k8sの前身)の監視システムとして開発 • Borgmonは分散システムのモニタリング用として最適化 (この特徴をPrometheusは継承) ü 2016年にCNCFのプロジェクトメンバーとして追加 ü 2018年にCNCFのGraduated Project化 (CNCFが十分成熟したとみなした)
  • 10. Prometheusは何を取得するためのものか? Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 10 メトリクスを取得するためのツールである
  • 11. 主な監視の方式(再掲) Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 11 メトリクス ログ トレーシング 監視対象が 何を行ったのかを文で記述 ex: プロセスAをUser BがKillした 数値データとして 監視対象の情報を取得 ex: CPU使用率、電源on/off ユーザのリクエストに対して、 どのコンポーネントがどれだけ の時間をかけたか表示
  • 12. Prometheusの特徴4選 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 12 Prometheus Key-value型 ラベル Pull型モデルと Service Discovery Exporterの豊富さ
  • 13. Prometheusの特徴4選 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 13 Prometheus Key-value型 ラベル Pull型モデルと Service Discovery Exporterの豊富さ
  • 14. メトリクスとラベル Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 14 PrometheusはラベルとメトリクスをKeyにして値を引いてくる node_cpu_seconds_total {instance=“localhost:9100“} 0.9 メトリクス名 ラベル Key Value ü 上記例はCPUの利用時間を取得するnode_cpu_seconds_totalの例 ü 実際にはrate (node_cpu_seconds_total[5m])のような形でPromQLクエリを実行して値を取得 ※ node_cpu_seconds_total で絞り込みをかけるときには instanceラベル以外にもCPU番号ラベル、CPUのモード(idleなど)を表すラベルも使う
  • 15. Prometheus 基礎 アーキテクチャ Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
  • 16. Prometheus Server Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 16 ü Prometheusの本体 • ターゲットから情報を収集 • アラートマネージャへアラートをプッシュ • UIは別口で用意するのが基本 (Prometheus Web UIはあるが貧弱) • 導入が非常に容易 • 試すだけならDocker コマンド1つで導入可能
  • 17. Exporter Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 17 情報収集の対象(監視の対象) ü Exporterについて • デーモン型 • エージェントのように 対象に仕込んでメトリクスを取得 • 当然各サーバへのExporterデプロイが必要 • 例: node exporter (Linuxのメトリクス取得) • プロキシ型 • API経由でメトリクスを取得 • ターゲットのリソースを消費せずに監視 • 例: Black box exporter (ICMP, HTTP GET/POSTでエンドポイントを監視) Exporterの一覧 https://prometheus.io/docs/instrumenting/exporters/
  • 18. Pushgateway Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 18 ü Pushgatewayについて • Pull型モデルではバッチ処理やイベントなどの 一時的なメトリクスを収集できない • 監視ターゲットからPush型で監視をしたいときに使用 • Pushgatewayで取得したメトリクスは自動削除されない • 監視対象が削除された場合は手動削除が必要 • ノイズとなる可能性があるので注意
  • 19. Service Discovery Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 19 ü Service Discoveryについて • クラウドサービスのAPIを使用して 対象の情報を動的に更新する仕組み • Service Discoveryに対応しているシステムであれば 簡単に導入可能 • システムが削除されると自動的に取得を停止 (メトリックを汚さないで済む) • 対応しているシステム例 • EC2 • k8s • Azure Service Directory • Openstackなど
  • 20. Alertmanager Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 20 ü Alertmanagerについて • Prometheus Server自体にはアラート発報機能がない • Prometheus Server本体とは別機能として実装 • Aleartmanager単体でのスケールアップ/アウトが可能
  • 21. PromQL Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 21 ü PromQLについて • Prometheus Query Languageの略 • その名の通りPrometheusの独自クエリ • ブラウザ上で簡単に投げて値を確認できる • SQLでは冗長になるメトリクスを簡単に記述可能 • 数式で入力すれば欲しいデータがすぐ手に入る 例:メモリの使用率 1- (node_memory_MemFree_bytes / node_memory_MemTotal_bytes)
  • 22. Grafana Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 22 ü Grafanaについて • さまざまなデータソースをサポートする 可視化専門のツール • Prometheus自体もWebUIを持つが、 機能が貧弱であるためGrafanaを使うのが一般的 • さまざまなデータソースを同時に表示可能 • サポートするデータソース例 ü AWS Cloud Watch ü PostgreSQL ü Elasticsearch ü MS SQL Server
  • 23. Prometheus 基礎 向いていること、向いていないこと Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation
  • 24. Prometheusが得意なこと Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 24 Ø 導入が容易 • 本体はメトリクスの収集とクエリの実行のみ Ø スケールするシステムへの適用 • サービスディスカバリ機能でシステムがボコボコ発生しても大丈夫 • Exporterが豊富にあり、標準的なシステムならすぐに仕込める(設定が少ない) Ø 機能ごとのスケール • 各コンポーネントが独立しているのでPrometheus自体のスケールがしやすい
  • 25. Prometheusが苦手なこと(できないこと) Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 25 Ø ログの管理 • Promehteusはログの管理を目的としていません • アプリケーションの完全な可視化を行うためにはログも必要 別途ログ管理、可視化システムを導入しましょう Ø データの完全性の保証 • Prometheusはデータの完全性を保証しない Ø サポートの提供 • 当然issueはGithubから頑張って解決
  • 26. じゃあ使い方は? Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 26 まとめ クラウドネイティブ なシステムへ適用 メトリクス取得特化 ログは別収集 ビジュアライズも 別ツール連携 超重要な データ可視化は 別で行う Service Discoveryを 使って増える監視対象に 対応 システム監視を完全にす るためにログツールと連 携して監視を行う UIが貧相なので 別ツールを活用 例えばデータ量に応じて 課金するシステムは 対応を回避
  • 27. 大規模監視を行う上で考慮すべき点 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 27 コスト 冗長性/パフォーマンス Prometheus自身の監視 各コンポーネントの負荷を見て 冗長性を高める サービスは金がかかる ある程度の規模になったら オンプレの方がコストメリット が出る 他のシステムを使って Prometheus自身を監視する
  • 28. おすすめの書籍 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 28 Docs / Gitを眺めるだけでは全体感を知るのは厳しい https://www.oreilly.co.jp/books/9784873118642/ 監視とは何かが分かる本。 Prometheusに関わらず、監視をきちんと勉強したい方におすすめ
  • 29. おすすめの書籍 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 29 Docs/Gitを眺めるだけでは全体感を知るのは厳しい 私もこれから読むレベルですが内容が少し高度らしいです 基礎から学べるとの文言に偽りなし。
  • 30. Call to Action Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 30 実際に始めてみよう(Prometheus実践ガイドより) 1. 実際にDeploy してみる 2. node exporterをDeployしてメトリクスを収集する 3. サービスディスカバリを使用して自動管理する 4. メトリクスを可視化する 5. Alertmanagerでアラートを発報する 6. エクスポータを自作する 7. エコシステムと連携する
  • 31. 今回のHands on範囲 31 ü Grafanaについて • さまざまなデータソースをサポートする 可視化専門のツール • Prometheus自体もWebUIを持つが、 機能が貧弱であるためGrafanaを使うのが一般的 • さまざまなデータソースを同時に表示可能 • サポートするデータソース例 ü AWS Cloud Watch ü PostgreSQL ü Elasticsearch ü MS SQL Server
  • 32. Deploy方法 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 34 prometheus 本体 • バイナリを利用する • 比較的簡単 • wgetでひっぱり、tarで解凍するだけ - wget https://github.com/prometheus/prometheus/releases/download/v2.40.4/prometheus-2.40.4.linux-386.tar.gz - tar xfvz prometheus-2.40.4.linux-386.tar.gz - ./prometheus & • ソースコードからビルドをかける • GO環境が必要だったりするので面倒。 • Docker コンテナを利用する • docker runですぐ起動可能 - docker run –m –name prom –d –p 9090:9090 prom/prometheus:v2.40.4
  • 33. Deploy方法 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 35 Grafana • パッケージマネージャを利用する • 比較的簡単 - wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add - - echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list - sudo apt-get update - sudo apt-get install grafana - sudo systemctl start grafana-server • Docker コンテナを利用する • docker runですぐ起動可能 - docker run –name grafana –d –p 3000:3000 grafana/grafana:8.3.6
  • 34. Deploy方法 36 node exporter • 監視対象のコンソールで以下のコマンドを実行 • wget https://github.com/prometheus/node_exporter/releases/download/v1.4.0/node_exporter-1.4.0.linux-amd64.tar.gz • tar xvfz node_exporter-1.4.0.linux-amd64.tar.gz • cd node_exporter-1.4.0.linux-amd64/ • ./node_exporter & • Prometheus server上のコンソールでprometheus.ymlファイルを編集し、赤字部分を追加 (文頭を必ず揃えること、ifconfigあたりで監視対象のIPアドレスは調べてください) scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: "prometheus" # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ["localhost:9090"] - job_name: "node" static_configs: - targets: [”<your_node_exporter_ip>:9100"] #your node exporter ipはlocalhostでもOK
  • 35. Deploy 方法 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 37 alert manager • Alert managerのコンソールで以下のコマンドを実行 • wget https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-amd64.tar.gz • tar xvfz alertmanager-0.23.0.linux-amd64.tar.gz • cd alertmanager-0.23.0.linux-amd64.tar.gz • ./alertmanager &
  • 36. Prometheus Srv + Node exporter 動作確認 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 38 Prometheus ServerのIPアドレス:9090にWebブラウザでアクセス、StatusタブのTragetをクリック node というジョブの中で自分のNode exporter用の IPアドレスへアクセスして、State がUPなら成功
  • 37. PromQL動作確認 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 39 Prometheus ServerのIPアドレス:9090にWebブラウザでアクセス、Graphをクリック Expressionに node_cpu_seconds_total{instance=”<your_node_exporter_ip>:9100“}と入力、 色々出れば成功
  • 38. PromQL動作確認 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 40 Prometheus ServerのIPアドレス:9090にWebブラウザでアクセス、Graphをクリック Expressionに node_cpu_seconds_total{instance=”<your_node_exporter_ip>:9100“}と入力、 色々出れば成功
  • 39. Grafana 動作確認 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 41 Prometheus ServerのIPアドレス:3000にWebブラウザでアクセス、起動を確認 ID/pass = admin/adminでアクセス、パスワードを更新してログインを確認してください
  • 40. GrafanaとPrometheusの連携 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 42 Data Souces をクリック、Add Datasource をクリック、
  • 41. GrafanaとPrometheusの連携 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 43 Prometheusをクリック、 URLにhttp://<your prometheus IP>:9090と入力 Save & Testをクリックして Data sourse is working というステータスを確認 ここまでででGrafanaとPrometheusの連携は完了
  • 42. GrafanaにダッシュボードをImportする 44 Grafanaのサイトにアクセスし、node exporter fullを導入する https://grafana.com/grafana/dashboards/ へアクセス、node exporter fullをクリックし、Copy ID to clipboardをクリック https://grafana.com/grafana/dashboards/1860-node-exporter-full/
  • 43. GrafanaにダッシュボードをImportする Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 45 Grafanaダッシュボードにもどり、左側のタブからimportをクリック IDをペーストしてLoadをクリック 情報が正しいことを確認し、どのPrometheusと連携するか選択肢、Importをクリック
  • 46. PromQLをどうダッシュボードに利用するかを確認 48 Metric Browser のexplain をonにするとどういうことをやっているのか説明が出る 数式を読み解いていくと、なんとなくわかってくる
  • 47. 次回予告 Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 49 • 同じような環境用意してk8sとPrometheusの連携をやりたい • 他のDB系のデータがどう見えるのかを見てみたい • IBM製品との連携を見せたい • Slackでの連携どんな感じなのかみたい
  • 48. Group Name / DOC ID / Month XX, 2020 / © 2020 IBM Corporation 56