LoginSignup
2
0

More than 3 years have passed since last update.

Javaからの監視入門 Prometheusに触れる

Last updated at Posted at 2019-12-28

Prometheusって何?

Pull型の監視システム。OSS。
メモリ、CPUの使用量などが監視できるシステム。

プル型の監視システムって何?

通常の監視システム(Meckerel,Sensuなど)は、
監視する側にエージェントをインストールして、監視サーバーへ情報を送る。

反対にPull型は、監視サーバーが監視する側から情報を取得する。

メリット・デメリット

Push型

[メリット]
・監視対象にアプリをインストールだけで簡単
・監視対象が増えてもサーバーの設定変更が少ない

[デメリット]
・監視量が増えると、監視サーバーの負荷が多い

Pull型

[メリット]
・監視対象がダウンしていることがPush型より簡単に分かる
・監視サーバーの負荷がPushより低負荷

[デメリット]
・監視対象のエンドポイントを設定しないといけない。単純インストールだけではない。
・監視対象が増えると、都度設定が必要

今回のゴール

Springのアプリケーションで、Promethusにデータを連携して、
Grafana(グラファナ)でいい感じに表示にする。

image.png

手順

SpringにPromethusのエンドポイント作成

Spring Initializr [ https://start.spring.io/ ]より、Spring Actuatorを追加。
Spring Actuator(アクチュエータ)はSpringのダンプやヘルスチェックなどを確認できるようになる。

image.png

依存関係にMicrometer Registry Prometheusをセット。
[ https://mvnrepository.com/artifact/io.micrometer/micrometer-registry-prometheus ]

Maven Repository:.png

プロパティファイルより、エンドポイントをオープン。

application.properties
# フルオープン
management.endpoints.web.exposure.include=*

アプリケーションを起動してエンドポイントができたことを確認。

Prometheusの設定

以下のYMLで設定が可能

prometheus.yml

global:
  # Target取得の頻度
  scrape_interval:     10s
  evaluation_interval: 10s

#監視対象の設定
scrape_configs:
  # Spring Boot App Exporter 監視設定
  - job_name: 'springboot'
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['web:8080']
        labels:
          group: 'docker-springboot'

Prometheus・Grafana・アプリの起動

DockerComposeで起動する。

docker-compose.yml
version: '3.1'
services:

  web:
    build: app/
    ports:
      - "8080:8080"

  monitor:
    build: prometheus/
    ports:
      - "9090:9090"
    depends_on:
      - "web"

  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"
Prometheusを確認

▼ 監視対象を確認する画面

image.png

▼ グラフの確認画面

image.png

しかし、グラフのUIがいまいち。ということでGrafanaで見る。

Grafanaを確認

URL: http://localhost:3000
ID: admin(初期)
PASS: admin(初期)

▼ データソースを選択

image.png

以下のようにURLを設定

Prometheus.png

▼ ダッシュボード作成

AddQueryを選択

image.png

あとは、自身のお好みで設定

New dashboard.png

その他余談

・ Springで設定するPromethunsのエンドポイントのクラスは継承して独自カスタマイズ可能

・ 通知設定がPromethunsとGrafanaは大変かも

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0