Prometheus 云原生 - 监控 Linux、MySQL、Redis、RabbitMQ、Docker、SpringBoot 3.x

目录

开始

[Exporter 采集数据,Prometheus 拉取并监控](#Exporter 采集数据,Prometheus 拉取并监控)

Linux

MySQL

Redis

RabbitMQ

Docker

[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 ,如下表示访问成功

点击 "Metrics" 就是采集到的数据,由 Prometheus 负责拉取,监控.

d)在 prometheus.yml 文件中添加配置如下:

复制代码
  - job_name: node_exporter
    static_configs:
      - targets: ['env-base:9100']

docker restart 重启 Prometheus,接着在 Prometheus 的 Targets 就可以观察到

e)在 Grafana 中监控.

打开 env-base:3000 Grafana 仪表盘.

在社区中找到喜欢的仪表盘(一定要是关于 node_exporter 的)

Grafana dashboards | Grafana LabsBrowse a library of official and community-built dashboards.https://grafana.com/grafana/dashboards/

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,如下表示访问成功:

d)在 prometheus.yml 文件中添加配置如下:

复制代码
  - job_name: mysql_exporter
    static_configs:
      - targets: ['env-base:9104']

docker restart 重启 Prometheus,接着在 Prometheus 的 Targets 就可以观察到

e)在 Grafana 中监控.

打开 env-base:3000 Grafana 仪表盘.

在社区中找到喜欢的仪表盘(一定要是关于 mysql 的)

Grafana dashboards | Grafana LabsBrowse a library of official and community-built dashboards.https://grafana.com/grafana/dashboards/

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 ,如下表示访问成功:

d)在 prometheus.yml 文件中添加配置如下:

复制代码
  - job_name: redis_exporter
    static_configs:
      - targets: ['env-base:9121']

docker restart 重启 Prometheus,接着在 Prometheus 的 Targets 就可以观察到

e)在 Grafana 中监控.

打开 env-base:3000 Grafana 仪表盘.

在社区中找到喜欢的仪表盘(一定要是关于 redis 的)

Grafana dashboards | Grafana LabsBrowse a library of official and community-built dashboards.https://grafana.com/grafana/dashboards/

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 ,如下表示访问成功:

d)在 prometheus.yml 文件中添加配置如下:

复制代码
  - job_name: rabbitmq_exporter
    static_configs:
      - targets: ['env-base:9419']

docker restart 重启 Prometheus,接着在 Prometheus 的 Targets 就可以观察到

e)在 Grafana 中监控.

打开 env-base:3000 Grafana 仪表盘.

在社区中找到喜欢的仪表盘(一定要是关于 rabbitmq 的)

Grafana dashboards | Grafana LabsBrowse a library of official and community-built dashboards.https://grafana.com/grafana/dashboards/

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,如下表示访问成功:

d)在 prometheus.yml 文件中添加配置如下:

复制代码
  - job_name: docker_exporter
    static_configs:
      - targets: ['env-base:8080']

docker restart 重启 Prometheus,接着在 Prometheus 的 Targets 就可以观察到

e)在 Grafana 中监控.

打开 env-base:3000 Grafana 仪表盘.

在社区中找到喜欢的仪表盘(一定要是关于 docker 的)

Grafana dashboards | Grafana LabsBrowse a library of official and community-built dashboards.https://grafana.com/grafana/dashboards/

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 重启后如下:

d)配置 Grafana

相关推荐
chen_mangoo7 分钟前
Rockchip debian预置安装deb包
linux·驱动开发·嵌入式硬件
雪风飞舞9 分钟前
conda 常用命令
linux·windows·conda
用户747122011698310 分钟前
linux最小版本编译-草稿(有空再来修改下)
linux
Xの哲學15 分钟前
Linux Select 工作原理深度剖析: 从设计思想到实现细节
linux·服务器·网络·算法·边缘计算
VekiSon16 分钟前
综合项目实战——电子商城信息查询系统
linux·c语言·网络·http·html·tcp·sqlite3
牛奶咖啡1316 分钟前
shell脚本编程(二)
linux·正则表达式·shell编程·正则表达式扩展·shell通配符·shell的变量·shell的引用
xiaoliuliu1234517 分钟前
xampp-linux-1.8.1.tar.gz 怎么安装?Linux下XAMPP离线安装完整步骤
linux·运维·服务器
用户61354114601623 分钟前
xampp-linux-1.8.1.tar.gz 怎么安装?Linux下XAMPP离线安装完整步骤
linux
qq_3985865439 分钟前
Debian12远程方案xrdp、kasmvnc、novnc
linux·debian·rdp·novnc·kasmvnc
Dovis(誓平步青云)40 分钟前
《Linux 核心 IO 模型深析(中篇):探索Cmake与多路转接的高效实现poll》
linux·运维·服务器·数据库·csdn成长记录