PrometheusとGrafana、Exporterを使ったことがなかったので、チュートリアルでまずは動かしてみる
Prometheusとは
Prometheusは、オープンソースのシステム監視およびアラートツールキット。メトリクスを時系列データとして収集して保存する。 Prometheusエコシステムは優秀なものがいくつかあるそうだ。
エコシステムとは、製品の連携やつながりによって成り立つ全体の大きなシステムを形成するさまを「エコシステム」と表現する。
ハンズオン
わかりやすいハンズオンがQiitaにあったので、実際に触ってみることにする。 Grafanaの設定画面が変更?になっているので、一部手順が違うかも。
構成
ファイルの構成は以下のとおり。
docker-compose.yaml
にprometheusとgrafanaのコンテナを定義して、prometheus.yml
にprometheusの設定を定義する。
. ├── docker-compose.yaml └── prometheus └── prometheus.yml
用意するもの
ハンズオンに合わせて、dockerを使ってセットアップする。
version: "3" services: prometheus: image: prom/prometheus container_name: prometheus volumes: - ./prometheus:/etc/prometheus/ ports: - 127.0.0.1:9090:9090 grafana: image: grafana/grafana container_name: grafana ports: - 3000:3000
global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. external_labels: monitor: "codelab-monitor" rule_files: scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"]
下記のコマンドを実行し、コンテナを起動する。
docker-compose up -d
promethuesとgrafnaが起動したら、ブラウザからアクセスする。 http://localhost:9090にアクセスするとpromethuesにアクセスができ、以下の画面が表示される。
画面の[Status]メニューから[Targets]をクリックし、Endpointに対して動作していることを確認できる。
grafanaにアクセスする場合、http://localhost:3000にアクセスする。 初回起動時は、ユーザ名/パスワードに admin を入力し、ログインする。
ログインすると、以下のような画面が表示される。
prometheusと連携するには、DataSourceから設定する必要があるので、DataSourceをクリックする。 次の画面で、Prometheusをクリックする。
SettingsタグのConnectionにprometheusのURLを入力し、画面下部にある Save&test
をクリックする。
コンテナで起動しているので、URLはhttp://prometheus:9090
にする必要がある。
メニューからDashboards を選択し、右上のNew
ボタンからNew dashboard
をクリックする。
Import dashboard
をクリックする。
https://grafana.com/grafana/dashboards/
にアクセスするとdashboardのテンプレートがあるので、使用したいテンプレートを選択する。
使用したいテンプレートを選択し、Copy ID to clipboard
をクリックする。
コピーしたIDを貼り付けて、Load
ボタンをクリックし、DataSourceを選択して、Import
ボタンをクリックする。
インポートしたテンプレートを使ってデータが可視化されるので、あとは保存するだけ。
Exporter連携
Exporterとは
Promethuesと連携して、CPU使用率などのメトリック情報を収集するアプリケーション。
dockerファイルの変更
exporter
をdockerで起動するので、docker-compose.yamlにexporterの設定を追加する。
exporter: image: prom/node-exporter ports: - 9100:9100
localhost:9100
を監視対象に追加。
static_configs: - targets: ["localhost:9090", "localhost:9100"]
DashboardをPrometheusと同じように作成
Exporterの情報を表示するテンプレートも用意されているので、それを使用してデータを可視化。
yes
コマンドでCPUに負荷をかけたので、CPU使用率が上昇していることがわかる。
画面もカッコいい
最後に
簡単に動かす程度の設定はできた。実際に自分でデータを登録して、自分で作成した画面に表示することはできていないので、自分で登録したデータを表示するというところまではやってみる。 まだまだ、理解不足だなと実感。