Prometheus数据采集/监控面板
Prometheus数据采集/监控面板
主机系统监控
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。
打开部署的grafana:
这里我们直接输入模板id,点击load:
下面选择Prometheus作为数据源,然后点击Import即可,然后自动进入监控页面:
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:
这里我们直接输入模板id,点击load,会自动下载:
这里选择Prometheus作为数据源,然后点击import即可完成:
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:
这里我们直接输入模板id,点击load,会自动下载:
这里选择Prometheus作为数据源,然后点击import即可完成:
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
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:
这里我们直接输入模板id,点击load,会自动下载:
这里选择Prometheus作为数据源,然后点击import即可完成:
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:
这里我们直接输入模板id,点击load,会自动下载:
这里选择Prometheus作为数据源,然后点击import即可完成。
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:
这里我们直接输入模板id,点击load,会自动下载:
这里选择Prometheus作为数据源,然后点击import即可完成。
SpringBoot监控
1. 添加依赖
Spring Boot的监控支持组件是Actuator,使用前添加依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
Actuator默认提供的接口如下:
这些接口默认只开放了/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选择其他模板。