跳至主要內容

Prometheus数据采集/监控面板


Prometheus数据采集/监控面板

  1. 主机系统监控
  2. Mysql监控
  3. Redis监控
  4. RabbitMQ监控
  5. Kafka监控
  6. Oracle监控
  7. SpringBoot监控

主机系统监控

1. exporter部署

docker-compose.yml配置文件内容:

version: '3.7'

services:
  node-exporter:
    image: prom/node-exporter:latest
    restart: always
    ports:
      - "9100:9100"

其中访问端口为9100。

启动服务:

docker-compose up -d

访问地址:http://IP:9100/metrics,IP为主机IP地址。
访问该地址可以看到该exporter收集到的系统监控基础数据。

2. prometheus配置

prometheus.conf配置文件增加:

scrape_configs:
  - job_name: 'node'
    static_configs:
    - targets: ['172.18.18.197:9100']

其中172.18.18.197:9100为上一步部署的exporter的地址。

然后重启prometheus服务。

3. dashboard

系统监控展示的模板地址:https://grafana.com/grafana/dashboards/16098
模板实际是一个json文件,我们部署好grafana后可以直接输入模板id(如果grafana服务器可以访问公网),或者下载json文件手动导入grafana。

img.png

打开部署的grafana:

img_1.png

img_2.png

这里我们直接输入模板id,点击load:

img_3.png

下面选择Prometheus作为数据源,然后点击Import即可,然后自动进入监控页面:

img_4.png

Mysql监控

1. exporter部署

docker-compose配置文件:

version: '3.6'
services:
  mysqld-exporter:
    image: 'prom/mysqld-exporter'
    restart: always
    container_name: 'mysqld-exporter'
    environment:
      TZ: 'Asia/Shanghai'
      DATA_SOURCE_NAME: 'exporter:76JmgxmPq@(172.18.18.196:10015)/'
    ports:
      - '9104:9104'

启动服务:

docker-compose up -d

访问地址: http://IP:9104/metrics,IP为主机IP地址。
访问该地址可以看到该exporter收集到的系统监控基础数据。

2. prometheus配置

1)需改prometheus.conf配置文件,增加:

  - job_name: 'mysql'
    static_configs:
    - targets: ['172.18.18.197:9104']

2)重启Prometheus服务。

3. dashboard配置

模板地址:https://grafana.com/grafana/dashboards/7362
打开部署的grafana:

img_5.png

img_6.png

这里我们直接输入模板id,点击load,会自动下载:

img_7.png

这里选择Prometheus作为数据源,然后点击import即可完成:

img_8.png

Redis监控

1. exporter部署

1)docker-compose配置文件:

version: '3.6'
services:
  redis-exporter:
    image: 'oliver006/redis_exporter'
    restart: always
    container_name: 'redis-exporter'
    environment:
      TZ: 'Asia/Shanghai'
    command:
      - "--redis.addr=redis://172.18.18.196:7001"
      - "--redis.password=hos@redis"
    ports:
      - '9121:9121'

2)启动服务:

docker-compose up -d

3)访问地址: http://IP:9121/metrics,IP为主机IP地址。
访问该地址可以看到该exporter收集到的系统监控基础数据。

2. prometheus配置

1)需改prometheus.conf配置文件,增加:

  ## config for the multiple Redis targets that the exporter will scrape
  - job_name: 'redis_exporter_targets'
    static_configs:
      - targets:
        - redis://172.18.18.196:7001
        - redis://172.18.18.196:7002
        - redis://172.18.18.196:7003
        - redis://172.18.18.196:7004
        - redis://172.18.18.196:7005
        - redis://172.18.18.196:7006
    metrics_path: /scrape
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 172.18.18.197:9121

  ## config for scraping the exporter itself
  - job_name: 'redis_exporter'
    static_configs:
      - targets:
        - 172.18.18.197:9121

2)重启Prometheus服务。

3. dashboard配置

模板地址:https://grafana.com/grafana/dashboards/11835
打开部署的grafana:

img_9.png

img_10.png

这里我们直接输入模板id,点击load,会自动下载:

img_11.png

这里选择Prometheus作为数据源,然后点击import即可完成:

img_12.png

RabbitMQ监控

1. exporter部署

RabbitMQ3.8或以上版本自带Prometheus插件,具备exporter功能,所以我们直接开启即可:

# 1)修改rabbitmq cluster name:
rabbitmqctl -q set_cluster_name [cluster-name]
# 2)启动rabbitmq_prometheus插件
rabbitmq-plugins enable rabbitmq_prometheus
# 3)访问验证:rabbitmq_prometheus插件的默认访问端口为15692,所以可以访问以下地址查看监控数据:
http://IP:15692/metrics

img_13.png

2. prometheus配置

1)需改prometheus.conf配置文件,增加:

  - job_name: 'hos-rabbitmq'
    static_configs:
    - targets: ['172.18.18.197:15692']

2)重启Prometheus服务

3. dashboard配置

模板地址:https://grafana.com/grafana/dashboards/10991
打开部署的grafana:

img_14.png

img_15.png

这里我们直接输入模板id,点击load,会自动下载:

img_16.png

这里选择Prometheus作为数据源,然后点击import即可完成:

img_17.png

Kafka监控

1. exporter部署

1)docker-compose配置文件:

version: '3.6'
services:
  kafka-minion:
    image: quay.io/cloudhut/kminion:master
    hostname: kafka-minion
    container_name: kafka-minion
    ports:
      - 9080:8080
    environment:
      KAFKA_BROKERS: broker1:9092,broker2:9092,broker3:9092
    restart: unless-stopped

其中,9080为访问端口,broker1:9092,broker2:9092,broker3:9092为kafka集群的所有broker的ip和端口。

2)启动服务:

docker-compose up -d

3)访问地址:
http://IP:9080/metrics,IP为主机IP地址。
访问该地址可以看到该exporter收集到的系统监控基础数据。

2. prometheus配置

1)需改prometheus.conf配置文件,增加:

  - job_name: 'kafka'
    static_configs:
    - targets: ['172.18.18.197:9080']

其中,172.18.18.197:9080为kafka-exporter的地址。

2)重启Prometheus服务。

3. dashboard配置

模板地址:https://grafana.com/grafana/dashboards/14012
打开部署的grafana:

img_18.png

img_19.png

这里我们直接输入模板id,点击load,会自动下载:

img_20.png

这里选择Prometheus作为数据源,然后点击import即可完成。

img_21.png

Oracle监控

1. exporter部署

1)docker-compose配置文件:

version: '3.6'
services:
  oracledb-exporter:
    image: 'iamseth/oracledb_exporter'
    restart: always
    container_name: 'oracledb-exporter'
    environment:
      TZ: 'Asia/Shanghai'
      DATA_SOURCE_NAME: 'system:password@172.18.18.197:1521/XE'
    ports:
      - '9161:9161'

其中,9161为访问端口,system:password@172.18.18.197:1521/XE为oracle的账号、密码、ip、端口、服务名。

2)启动服务:

docker-compose up -d

3)访问地址:
http://IP:9161/metrics,IP为主机IP地址。
访问该地址可以看到该exporter收集到的系统监控基础数据。

2. prometheus配置

1)需改prometheus.conf配置文件,增加:

  - job_name: 'oracledb'
    static_configs:
    - targets: ['172.18.18.197:9161']

其中,172.18.18.197:9161为oracle-exporter的地址。

2)重启Prometheus服务。

3. dashboard配置

模板地址:https://grafana.com/grafana/dashboards/11121

打开部署的grafana:

img_22.png

img_23.png

这里我们直接输入模板id,点击load,会自动下载:

img_24.png

这里选择Prometheus作为数据源,然后点击import即可完成。

img_25.png

SpringBoot监控

1. 添加依赖

Spring Boot的监控支持组件是Actuator,使用前添加依赖:

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
  </dependency>

Actuator默认提供的接口如下:

img_26.png

这些接口默认只开放了/heath和/info, 可以修改配置打开其他的接口:

management:
  endpoints:
    web:
      exposure:
        include: '*'

在Spring Boot 2.0以上, 使用了micrometer作为底层的度量工具,支持按照各种格式来暴露数据, 其中就有Prometheus,所以添加以下依赖来暴露Prometheus数据:

<dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
            <version>1.1.3</version>
</dependency>

这个依赖的作用就是会开启一个endpoint, 输出兼容Prometheus exporter的结果, 方便Prometheus来采集。同时记得修改spring boot配置,示例:

server:
  port: 8080
spring:
  application:
    name: spring-demo
management:
  endpoints:
    web:
      exposure:
        include: 'prometheus' # 暴露/actuator/prometheus
  metrics:
    tags:
      application: ${spring.application.name} # 暴露的数据中添加application label

然后启动应用, 访问http://IP:8080/actuator/prometheus 可以看到Prometheus格式的监控数据。

2. Prometheus配置

在Prometheus的配置文件prometheus.conf中添加配置:

global:
  scrape_interval: 15s
scrape_configs:
  - job_name: "spring-demo"
    metrics_path: "/actuator/prometheus"
    static_configs:
    - targets: ["localhost:8080"]

其中,job_name、targets根据实际情况修改,然后重启Prometheus服务。

3. Dashboard配置

在Grafana中导入Dashboard模板即可,示例中我们使用以下模板:
https://grafana.com/grafana/dashboards/12856
根据实际需求可以在https://grafana.com/grafana/dashboards选择其他模板。

img_27.png