prometeusについてはじめてみよう / let's start prometeus
TRANSCRIPT
Copyright © Xchange Solutions All right reserved.
Prometeusについてはじめてみよう
株式会社エクスチェンジ ソリューションズ
野田 健夫
2017.12.16
KIXS vol.006 紅白LT大会絶対にガチってはいけないLT大会
2
Copyright © Xchange Solutions All right reserved.
こんにちは
野田 健夫(のだたけお)https://twitter.com/nodatakeo
https://www.facebook.com/nodatakeo
株式会社エクスチェンジ ソリューションズ
3
Copyright © Xchange Solutions All right reserved.
いつから?
2011/10 2012/7 2016/04
前職の部長と仲間6名からスタート。福岡拠点設立
福岡移住
セブンメディアを母体として会社名変更
福岡に来て5年
4
Copyright © Xchange Solutions All right reserved.
これまでの監視ツール遍歴
2004~2009年ごろ:BigBrother / Hobbit / Xymon
http://xymon.sourceforge.net/
5
Copyright © Xchange Solutions All right reserved.
これまでの監視ツール遍歴
2008~2012年ごろ:Nagios
https://www.nagios.org/
6
Copyright © Xchange Solutions All right reserved.
これまでの監視ツール遍歴
2012年~現在:Zabbix
http://www.zabbix.com/jp/
7
Copyright © Xchange Solutions All right reserved.
そろそろ次?
Zabbixとの付き合いも5年。
Zabbixは、生存競争に残れるのか?
新しい監視サービスの取り込みを検討。
8
Copyright © Xchange Solutions All right reserved.
Prometeusとは
Prometheus は、 Google 出身者が Google
社内監視ツール Borgmon にインスパイアさ
れて作成したオープンソースの監視システム。
音楽SNSとして知られているSoundcloud社
が2012年に開発をスタート。現在は、 Cloud
Native Computing Foundationの下で開発。
Go言語で書かれています。
9
Copyright © Xchange Solutions All right reserved.
なぜPrometeusか
軽量でシンプル
Go言語でOS問わずインストールが簡単
基本はmetricsをWEB APIで取得
microserviceに基づく設計で実装
10
Copyright © Xchange Solutions All right reserved.
インストール&起動について
ダウンロードして解凍
コマンド実行すれば即起動
※サーバーは、デフォルトでは Port:9090 で起動
※Dockerも提供されている。
https://hub.docker.com/u/prom/
11
Copyright © Xchange Solutions All right reserved.
ダウンロード可能なモジュール
Prometheus (サーバー本体)
Alertmanager (アラート管理)
Blackbox_exporter (外形監視)
Consul_exporter
Graphite_exporter
Haproxy_exporter
Memcached_exporter
Mysqld_exporter
Node_exporter
Statsd_exporter
Pushgateway(PUSH通知、バッチ結果の通知などに限定しての利用を推奨。)
(エクスポーター、監視エージェント)
ほかにも数多く公式、非公式含め公開されている。
12
Copyright © Xchange Solutions All right reserved.
公開されているExporter
https://prometheus.io/docs/instrumenting/exporters/
13
Copyright © Xchange Solutions All right reserved.
独自監視
いくつかの言語で基盤を提供
Golang https://github.com/prometheus/client_golang
Python https://github.com/prometheus/client_python
Java https://github.com/prometheus/client_java
Ruby https://github.com/prometheus/client_ruby
大きく3種類
Online Serving System (よくあるExporter系)
Offline Processing
Batch Jobs (PushGateway系)
命名規則などのガイドラインがある。
https://prometheus.io/docs/practices/naming/
https://prometheus.io/docs/instrumenting/writing_exporters/
14
Copyright © Xchange Solutions All right reserved.
システム構成:詳細①
サービス系をエクスポーターからデータ取得
ほかのPrometheusサーバーからもデータ取得できる
アラート通知
管理画面
基本PULL型で情報取得
短期処理結果をPUSH例:バッチ実行件数など
https://prometheus.io/docs/introduction/overview/
15
Copyright © Xchange Solutions All right reserved.
システム構成:詳細②
https://developers.soundcloud.com/blog/prometheus-monitoring-at-soundcloud
16
Copyright © Xchange Solutions All right reserved.
管理画面
17
Copyright © Xchange Solutions All right reserved.
Grafana
18
Copyright © Xchange Solutions All right reserved.
まとめ
シンプルな監視サーバー。
microserviceの監視にマッチする。
ローカルでは15日程度しか保持しないの
で別でリモートの永続化の仕組みを考え
る必要がある。
シンプルゆえに組み合わせ方が肝。