目录
[Exporter 采集数据,Prometheus 拉取并监控](#Exporter 采集数据,Prometheus 拉取并监控)
[SpringBoot 3.x](#SpringBoot 3.x)
开始
Exporter 采集数据,Prometheus 拉取并监控
Note:Prometheus 和 Grafana 的部署已经在前面的章节中讲过了,不知道的胖友可以在这个专栏里找找~
Linux
a)拉取镜像
docker pull prom/node-exporter
b)运行
node_exporter 挂载的都是系统文件.
docker run -d -p 9100:9100 \
--name=node_exporter \
--restart=always \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
--net="host" \
prom/node-exporter
c)浏览器中输入 env-base:9100 ,如下表示访问成功
![](https://i-blog.csdnimg.cn/direct/709ca1d0951b474781ea95c4bc07fd39.png)
点击 "Metrics" 就是采集到的数据,由 Prometheus 负责拉取,监控.
![](https://i-blog.csdnimg.cn/direct/73fb669d6e014d129d89e9165d715822.png)
d)在 prometheus.yml 文件中添加配置如下:
- job_name: node_exporter
static_configs:
- targets: ['env-base:9100']
docker restart 重启 Prometheus,接着在 Prometheus 的 Targets 就可以观察到
![](https://i-blog.csdnimg.cn/direct/ea26754d0b94466ba2e892f530922e65.png)
e)在 Grafana 中监控.
打开 env-base:3000 Grafana 仪表盘.
![](https://i-blog.csdnimg.cn/direct/0ac6a0bf4e39402998950886681e68b0.png)
![](https://i-blog.csdnimg.cn/direct/7bede4510ca445149e8100bf61c92494.png)
在社区中找到喜欢的仪表盘(一定要是关于 node_exporter 的)
MySQL
a)拉取镜像
docker pull prom/mysqld-exporter
b)运行容器
docker run -d --name=mysql-exporter \
--restart=always \
-p 9104:9104 \
-e DATA_SOURCE_NAME="user:password@(mysql-server-ip:3306)/" \
prom/mysqld-exporter
- user 和 password 替换为连接 MySQL 时所需的用户名和密码.
- mysql-server-ip 替换为 MySQL 服务器的 IP 地址.
我的配置如下:
docker run -d --name=mysql-exporter \
--restart=always \
-p 9104:9104 \
-e DATA_SOURCE_NAME="root:1111@(env-base:3306)/" \
prom/mysqld-exporter
c)浏览器中输入 env-base:9104,如下表示访问成功:
![](https://i-blog.csdnimg.cn/direct/a47efc10da58419da82e6b9c5959bd41.png)
d)在 prometheus.yml 文件中添加配置如下:
- job_name: mysql_exporter
static_configs:
- targets: ['env-base:9104']
docker restart 重启 Prometheus,接着在 Prometheus 的 Targets 就可以观察到
![](https://i-blog.csdnimg.cn/direct/68744cd5eb1c4184b3b985b52481444c.png)
e)在 Grafana 中监控.
打开 env-base:3000 Grafana 仪表盘.
在社区中找到喜欢的仪表盘(一定要是关于 mysql 的)
![](https://i-blog.csdnimg.cn/direct/fe79294dbb31430d98f5442eb020fa7c.png)
Redis
a)拉取镜像
docker pull oliver006/redis_exporter
b)运行容器
docker run -d --name redis_exporter \
--restart=always \
-p 9121:9121 \
--env REDIS_ADDR=redis:6379 \
oliver006/redis_exporter
redis_addr 指定redis 的地址,以下是我的配置
docker run -d --name redis_exporter \
--restart=always \
-p 9121:9121 \
--env REDIS_ADDR=env-base:6379 \
oliver006/redis_exporter
c)浏览器中输入 env-base:9121 ,如下表示访问成功:
![](https://i-blog.csdnimg.cn/direct/56599c4c87af4e9d8d215ffad4f0f071.png)
d)在 prometheus.yml 文件中添加配置如下:
- job_name: redis_exporter
static_configs:
- targets: ['env-base:9121']
docker restart 重启 Prometheus,接着在 Prometheus 的 Targets 就可以观察到
![](https://i-blog.csdnimg.cn/direct/c6ac229f1c594c6ca085c0629c04b2bf.png)
e)在 Grafana 中监控.
打开 env-base:3000 Grafana 仪表盘.
在社区中找到喜欢的仪表盘(一定要是关于 redis 的)
![](https://i-blog.csdnimg.cn/direct/51bf8227c2d54dd68af6b6e14e472b6f.png)
RabbitMQ
a)拉取镜像
docker pull kbudde/rabbitmq-exporter
b)运行容器
docker run -d --name rabbitmq_exporter \
--restart=always \
-p 9419:9419 \
-e RABBIT_URL=http://100.105.180.32:15672 \
-e RABBIT_USER=root \
-e RABBIT_PASSWORD=1111 \
-e UTPUT_FORMAT=JSON \
kbudde/rabbitmq-exporter
Ps:RABBIT_URL 必须要以 http:// 开头
c)浏览器中输入 env-base:9419 ,如下表示访问成功:
![](https://i-blog.csdnimg.cn/direct/f3fc922cb3554dca825e52d22808b9a2.png)
d)在 prometheus.yml 文件中添加配置如下:
- job_name: rabbitmq_exporter
static_configs:
- targets: ['env-base:9419']
docker restart 重启 Prometheus,接着在 Prometheus 的 Targets 就可以观察到
![](https://i-blog.csdnimg.cn/direct/ea234edcba8547aab5897bfd25d5f779.png)
e)在 Grafana 中监控.
打开 env-base:3000 Grafana 仪表盘.
在社区中找到喜欢的仪表盘(一定要是关于 rabbitmq 的)
![](https://i-blog.csdnimg.cn/direct/a91434ef16e54422a3d5ff10872882a7.png)
Ps:这里有点问题。。。 TODO 版本兼容性问题(mq 和 exporter)
Docker
a)拉取镜像
docker pull google/cadvisor
b)运行容器
docker run -d --name cadvisor \
-p 8080:8080 \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:rw \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
google/cadvisor:latest
c)浏览器中输入 env-base:8080,如下表示访问成功:
![](https://i-blog.csdnimg.cn/direct/602b160468724ab5adef5c07fef3940a.png)
d)在 prometheus.yml 文件中添加配置如下:
- job_name: docker_exporter
static_configs:
- targets: ['env-base:8080']
docker restart 重启 Prometheus,接着在 Prometheus 的 Targets 就可以观察到
![](https://i-blog.csdnimg.cn/direct/836afcaf79534fcdaa4e6cb71ef14b3f.png)
e)在 Grafana 中监控.
打开 env-base:3000 Grafana 仪表盘.
在社区中找到喜欢的仪表盘(一定要是关于 docker 的)
![](https://i-blog.csdnimg.cn/direct/99c03412ce324e6798b727e33360ebb4.png)
![](https://i-blog.csdnimg.cn/direct/b68263de171747a9927bb96ad2d80c49.png)
SpringBoot 3.x
a)在 SpringBoot 中引入相关依赖如下:
XML
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
b)配置文件配置如下:
XML
server:
port: 9000 # 服务端口一般 0 结尾,便于 actuator 端口配置
spring:
application:
name: prometheus
# actuator
management:
server:
port: 9001 # actuator 监听端口(一般是 服务端口 + 1)
endpoints:
web:
exposure:
include: health,info,prometheus
base-path: /console # 将来通过 /console/prometheus 就可以拿到数据
endpoint:
prometheus:
enabled: true
c)修改 prometheus.yml 配置文件,如下:
XML
- job_name: spring-boot3
metrics_path: /console/prometheus
static_configs:
- targets: ['100.94.135.96:9001']
docker restart 重启后如下:
![](https://i-blog.csdnimg.cn/direct/5b8bcb8116914343afbb02b8d2b9e20c.png)
d)配置 Grafana
![](https://i-blog.csdnimg.cn/direct/ad7a46b4a09e40658f81c811c53ae80f.png)
![](https://i-blog.csdnimg.cn/direct/4c2100bff70d4096b49bd953cb5402b0.gif)