やったこと
Mac OS環境でdocker-composeを使用してJenkins, Prometheus, Grafanaを起動しました。
Jenkins Pluginをインストールし、 Jenkinsのメトリクス監視を可視化しました。
稼働環境
- Mac OS Mojave
- Docker version 19.03.1
- docker-compose version 1.24.1
docker-composeを使用した起動
Prometheusで、Jenkinsのメトリクス監視を追加します。
# my global config
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.
# scrape_timeout is set to the global default (10s).
# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
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: ‘jenkins’
metrics_path: /prometheus/
static_configs:
- targets: ['docker.for.mac.localhost:8080']
Jenkins, Prometheus, Grafanaを起動するためのymlファイルを作成します。
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
restart: always
ports:
- 8080:8080
- 50000:50000
volumes:
- ./jenkins/jenkins_home:/var/jenkins_home
prometheus:
image: prom/prometheus:v2.11.1
container_name: prometheus
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- 9090:9090
grafana:
image: grafana/grafana:6.2.5
container_name: grafana
ports:
- 3000:3000
docker-compose up -d --build
で起動します。
$ docker-compose up -d --build
Creating network "default" with the default driver
Creating prometheus ... done
Creating jenkins ... done
Creating grafana ... done
Install Jenkins Plugin
JenkinsのURLを開き、初期設定を行います。設定方法は省略します。
「Jenkinsの構成」 -> 「プラグインの管理」 でプラグインマネージャーを開きます。
検索欄でprometheus
を入力し、Prometheus metrics pluginをインストールします。
インストール後は再起動してください。
JenkinsとPrometheus連携
Jenkinsの再起動が完了ましたら、PrometheusのURLを開きます。
上部バーの「Status」 -> 「Targets」を開き、Jenkinsがupとなっていることが確認できます。
PrometheusとGrafanaの連携は、調べれば出てきますので省略します。
Grafanaでの可視化
Grafana Labsで公開されているdashboardのtemplateをインポートします。
今回はa Jenkins performance and health overview for jenkinsci/prometheus-pluginをインポートします。
dashboardのIDを控えます。
GrafanaのURLにアクセスし、「Home」 -> 「Import dashboard」を開きます。
控えたIDを入力し、インポートします。
表示されるようになりました。
参考情報
備考
prometheus公式サイトでは、jenkinsが提供するexporterを使用したメトリクス監視も紹介されています。リポジトリは以下です。
https://github.com/lovoo/jenkins_exporter