5
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

GrafanaとPrometheusでJenkins監視

やったこと

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のメトリクス監視を追加します。

prometheus.yml
# 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ファイルを作成します。

docker-compose.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となっていることが確認できます。
スクリーンショット 2019-08-04 1.26.15.png

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を入力し、インポートします。
表示されるようになりました。

スクリーンショット 2019-08-04 1.33.00.png

参考情報

備考

prometheus公式サイトでは、jenkinsが提供するexporterを使用したメトリクス監視も紹介されています。リポジトリは以下です。
https://github.com/lovoo/jenkins_exporter

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
5
Help us understand the problem. What are the problem?