51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

基于 Prometheus+Exporter+Grafana 的 MeterSphere 监控方案

在使用MeterSphere平台时,需要查看 MeterSphere 服务的监控详情(监控告警脚本已无法满足且不太直观),所以本文结合了 Prometheus+Exporter+Grafana 介绍了一套完整的 MeterSphere 监控方案。如需了解 Prometheus、Exporter、Grafana 等组件工作原理,可以自行查阅资料,这里不做赘述。MeterSpher 服务中需要监控的容器以及监控方式简单介绍如下:

  • 服务器或node节点监控:可使用 Prometheus 的 Node-Exporter 完成监控;

  • api-test,test-track 等应用服务的监控:可使用 SpringBoot 自带的 Actuator 进行监控;

  • MySQL数据库服务监控:可使用 Prometheus 的 mysql-exporter 完成监控;

  • Kafka服务监控:可使用 Prometheus的 kafka-exporter 完成监控;

  • 服务器上所有容器状态监控:可使用 cAdvisor 进行监控。

另外文章结尾有完整的 docker-compose 的 yml 文件,可以直接复制完整文件进行安装。以下我们会逐一介绍 MeterSphere 各个服务组件的监控实施说明。

一、使用 Grafana 集成 Node-Exporter 监控服务器资源信息 {#heading-1}

MeterSphere 安装部署完成之后,自带了Prometheus 和 Node-Exporter 组件,所以我们只需要简单的配置安装部署 Grafana,就可以进行监控了。

Node-Exporter 可以监控服务器资源的 CPU、内存、磁盘、网络IO等信息。

详细信息可参考:++https://blog.csdn.net/qq_34556414/article/details/123443187++

1.1、Node-Exporter 确认 {#heading-2}

  1. 首先,要确认 Prometheus 是否能够获取到服务器的监控数据, Prometheus 端口默认为9090,安装部署 MeterSphere 好之后,直接访问 http://192.168.xx.xx:9090 即可查看Prometheus 页面。(如果出现访问不了,检查防火墙是否关闭,端口是否对外暴露)

  2. 查看Targets 可以看到有9100端口的地址,Node-Exporter 默认监听端口为9100,如果状态为up,即为正常,代表可以查看到监控数据。

1.2、安装 Grafana {#heading-3}

本文通过 docker 的方式进行安装。

注意,本次安装的 Grafana 为 v9.4.3,如果安装新版本,可自行摸索如何操作。

1.在 /opt/metersphere/data/ 下面创建 grafana 文件目录。

cd /opt/metersphere/data/
mkdir grafana
chmod 777 grafana
  1. 在 /opt/metersphere 目录下,创建并编辑 docker-compose-grafana.yml,内容如下。(注意:如果是内网部署,需要在能访问互联网的机器上下载镜像,再进行上传。)

    version: "2.1" services: grafana: image: grafana/grafana:9.4.3 restart: always container_name: grafana volumes: - ms-grafana-data:/var/lib/grafana ports: - 3000:3000 healthcheck: test: ["CMD", "nc", "-zv", "localhost", "3000"] interval: 6s timeout: 5s retries: 50 networks: - ms-network volumes: ms-grafana-data: driver_opts: type: none device: ${MS_BASE}/metersphere/data/grafana o: bind


  1. 执行命令启动 Grafana

    docker-compose -f docker-compose-base.yml -f docker-compose-grafana.yml up -d

  2. Grafana 默认端口是 3000,所以我们直接访问 http://192.168.xx.xx:3000 ,默认账号密码:admin/admin ,初次登录可以修改密码。能够登录成功访问页面则代表安装成功。

1.3、添加 Prometheus 数据源 {#heading-4}

1.登录 Grafana 之后,找到左下角小齿轮,然后找到 Data source,点击右上角新加数据源,选择 Prometheus。

2.设置名字和 Prometheus 地址,点击 Save 保存。

1.4、配置 Grafana 监控面板 {#heading-5}

这边介绍通过互联网和本地导入两种方式完成监控面板配置。

1.4.1、如果可以访问互联网的话,直接导入模板 id 即可 {#heading-6}

1.找到 Dashboard ,点击 import ,这里我们选择的模板为:12227,直接在 Import via grafana.com 中输入 id=12227 ,点击 Load,设置模板名称,配置数据源,保存即可。


1.4.2、如果访问不了互联网,可以直接导入面板的json文件 {#heading-7}

模板下载地址:++https://grafana.com/grafana/dashboards/12227++

下载模版后通过 Upload dashboard JSON file 上传,同样选择数据源完成 Import 即可。

1.5 最终监控数据展示结果 {#heading-8}

二、使用 Grafana 集成 SpringBoot Actuator 监控容器应用信息 {#heading-9}

MeterSphere v2 版本之后,默认集成了 SpringBoot Actuator 监控,所以我们只需要添加配置,开启监控即可。

2.1、 什么是 SpringBoot Actuator {#heading-10}

Spring Boot Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理 Spring Boot 应用。这个模块是一个采集应用内部信息暴露给外部的模块,上述的功能都可以通过 HTTP 和 JMX 访问。因为暴露内部信息的特性,Actuator 也可以和一些外部的应用监控系统整合(Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等)。这些监控系统提供了出色的仪表板,图形,分析和警报,可帮助你通过一个统一友好的界面,监视和管理你的应用程序。Actuator 使用 Micrometer 与这些外部应用程序监视系统集成。这样一来,只需很少的配置即可轻松集成外部的监控系统。

Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,应用程序只需要使用 Micrometer 的通用 API 来收集性能指标即可。Micrometer 会负责完成与不同监控系统的适配工作。这就使得切换监控系统变得很容易。
对比 Slf4j 之于 Java Logger 中的定位。

2.2、 如何开启 MeterSphere 中 Actuator 监控 {#heading-11}

开启 MeterSphere 中的 Actuator 监控其实很简单,在/opt/metersphere/conf/metersphere.properties 添加一行management.endpoints.enabled-by-default=true 配置即可。添加完成之后,执行 msctl restart 重启服务。

2.3、 如何查看 Metrics 监控指标 {#heading-12}

重启好之后,我们访问 Prometheus 地址 http://192.168.xx.xx:9090/ 查看Targets指标信息,会发现有各个容器的监控信息,状态为 up 即为正常。如果是 down 的,可以检查确认下当前服务器的网络情况了。 注意:因为我们容器没有暴露相应的端口,所以直接在页面上是看不到具体的监控指标信息,想看到某一个容器的指标信息也很简单,这里提供两种思路:

  1. 修改某一个容器 docker-compse,添加端口映射,比如我想查看 api-test 的,直接在 docker-compose-api-test.yml 里面添加端口映射 7004:7004 ,然后重启api-test容器即可。

  2. 直接在 prometheus 的 graph 里面查看容器对应的实例名称。比如我想查看 api-test 的,那么它的实例名称为 instance:"api-test:7004" , 然后我们去 graph 查询,就可以看到对应的指标信息了。

2.4、 如何通过 Grafana 大屏展示监控指标 {#heading-13}

检查确认之后,我们开始对接 Grafana。上述在监控服务器资源时已经对接了数据源,这里则无需对接。如何对接请参考上面的(如何添加 Prometheus 数据源)章节,同样这里推荐两个模板,模板 id 分别为:12900 和 9568 ,两个模板侧重监控的指标信息有所不同,有重合部分,可以根据需求修改。其中 12900 主要可以分析应用内的一些信息,而 9568 可分析应用内 JVM 相关的信息,根据实际情况选择即可。模版导入方式参见 1.4 章节描述。其中模版地址如下:

下载地址:

++https://grafana.com/grafana/dashboards/12900++

++https://grafana.com/grafana/dashboards/9568++

2.5、 最终监控数据展示结果 {#heading-14}

12900 模版监控效果如下图所示:

9568 模版监控效果如下图所示:

三、使用 Grafana 集成 Mysql-Exporter 监控信息 {#heading-15}

因为 MeterSphere 使用的是 Mysql 数据库,所以我们也可以通过 Mysql-Exporter 来进行监控 MySQL 的相关信息。

3.1、 什么是 MySQL-Exporter {#heading-16}

Mysql-Exporter 是一个用于采集 MySQL 指标的监控工具,它是开源的,可以与 Prometheus 一起使用,以便对数据库进行更全面、深入的分析和了解。

Mysql-Exporter 使用 MySQL 的本地客户端库进行数据收集,可以轻松地提供 MySQL 服务器的实时监控。它的最新版本通过使用 Percona Toolkit 来获取 MySQL 的各种统计信息,包括状态、变量和 InnoDB 引擎状态。这些信息可以提供非常有用的洞察力,帮助开发人员和管理员更好地了解数据库的性能和运行状况。

3.2、 部署 MySQL-Exporter 容器 {#heading-17}

我们通过 docker-compose 的方式去进行部署,放在 /opt/metersphere 目录下面,脚本如下:

version: "2.1"
services:
  mysqlexporter:
      image: prom/mysqld-exporter
      container_name: mysqld-exporter
      restart: always
      ports:
        - "9104:9104"
      environment:
        - DATA_SOURCE_NAME=root:Password123@mysql@(192.168.xx.xx:3306)/metersphere
      volumes:
        - /etc/my.cnf:/etc/my.cnf
      command:
        --collect.auto_increment.columns
        --collect.binlog_size
        --collect.global_status
        --collect.global_variables
        --collect.info_schema.innodb_metrics
        --collect.info_schema.innodb_cmp
        --collect.info_schema.innodb_cmpmem
        --collect.info_schema.processlist
        --collect.info_schema.query_response_time
        --collect.info_schema.tables
        --collect.info_schema.tablestats
        --collect.info_schema.userstats
        --collect.perf_schema.eventswaits
        --collect.perf_schema.file_events
        --collect.perf_schema.indexiowaits
        --collect.perf_schema.tableiowaits
        --collect.perf_schema.tablelocks
        --collect.slave_status
        --config.my-cnf=/etc/my.cnf
      networks:
        - ms-network

在 /etc/my.cnf 添加如下配置:

[client]
host=192.168.xx.xx
port=3306
user=root
password=Password123@mysql

环境变量配置如下:

|------------------|-------------------------------| | DATA_SOURCE_NAME | 配置MySQL的账号密码以及访问地址和需要监控的数据库信息 |

监控指标参数如下:

| 启动参数 | MySQL版本 | 参数含义 | |---------------------------------------------------------------------|-----------------------------------------------------|---------------------------------------------------------------------| | collect.auto_increment.columns | 5.1 + | 从information_schema收集 auto_increment列和最大值。 | | collect.binlog_size | 5.1+ | 收集所有已注册的Binlog文件 的当前大小 | | collect.engine_innodb_status | 5.1+ | 通过SHOW ENGINE INNODB STATUS收集数据 | | collect.engine_tokudb_status | 5.6+ | 通过SHOW ENGINE TOKUDB STATUS.收集数据 | | collect.global_status | 5.1+ | 通过SHOW GLOBAL STATUS 收集数据(默认开启) | | collect.global_variables | 5.1+ | 通过SHOW GLOBAL VARIABLES 收集数据(默认开启) | | collect.info_schema.clientstats | 5.5+ | 如果被监控的MySQL使用 userstat = 1运行,则此参 数需要设置为1以收集客户端统计信息 | | collect.info_schema.innodb_metrics | 5.6+ | 从information_schema. innodb_metrics收集数据。 | | collect.info_schema.innodb_tablespaces | 5.7+ | 从information_schema. innodb_sys_tablespaces收集数据。 | | collect.info_schema.innodb_cmp | 5.5+ | 从information_schema.innodb_cmp 收集InnoDB压缩表指标。 | | collect.infoschema.innodb_cmpmem | 5.5+ | 从information_schema.innodb_cmpmem 收集InnoDB缓冲池。 | | collect.info_schema.processlist | 5.1+ | 从information_schema.processlist 收集线程状态计数。 | | collect.info_schema.processlist.min_time | 5.1+ | 线程状态停留多长时间会被统计。 (默认值:0) | | collect.info_schema.query_response_time | 5.5+ | 如果query_response_time_stats为ON, 则收集查询响应时间。 | | collect.info_schema.replica_host | 5.6+ | 从information_schema. replica_host_status收集数据。 | | collect.info_schema.tables | 5.1+ | 从information_schema. tables中收集数据。 | | collect.info_schema.tables.databases | 5.1+ | 收集表统计信息的数据库列表, 或*全部为'的数据库 | | collect.info_schema.tablestats | 5.1+ | 如果被监控的MySQL使用 userstat = 1运行,则设置 为true以收集表统计信息。 | | collect.info_schema.schemastats | 5.1+ | 如果被监控的MySQL使用 userstat = 1运行,则设置 为 true 以收集架构统计信息 | | collect.info_schema.userstats | 5.1+ | 如果被监控的MySQL使用 userstat = 1运行,则设置 为true以收集用户统计信息。 | | collect.perf_schema.eventsstatements | 5.6+ | 从performance_schema.events statements_summary_by_digest收集数据。 | | collect.perf_schema.eventsstatements. digest_text_limit | 5.6+ | 规范化语句文本的最大长度。 (默认值:120) | | collect.perf_schema.eventsstatements. limit | 5.6+ | 通过响应时间限制事件语句 摘要的数量。(预设值:250) | | collect.perf_schema.eventsstatements. timelimit | 5.6+ | 限制" last_seen"事件语句的年 龄(以秒为单位)。(预设值:86400) | | collect.perf_schema. eventsstatementssum | 5.7+ | 从Performance_schema.events_ statements_summary_by_digest汇总中收集指标。 | | collect.perf_schema.eventswaits | 5.5+ | 从Performance_schema.events_ waits_summary_global_by_event_name收集指标。 | | collect.perf_schema.file_events | 5.6+ | 从Performance_schema.file_ summary_by_event_name收集指标。 | | collect.perf_schema.file_instances | 5.5+ | 从performance_schema.file_ summary_by_instance收集指标。 | | collect.perf_schema.indexiowaits | 5.6+ | 从performance_schema.table_io _waits_summary_by_index_usage收集指标。 | | collect.perf_schema.tableiowaits | 5.6+ | 从Performance_schema.table_io_waits_summary_by_table收集指标。 | | collect.perf_schema.tablelocks | 5.6+ | 从Performance_schema.table_lock waits_summary_by_table收集指标。 | | collect.perf_schema.replication group_members | 5.7+ | 从Performance_schema.replication group_members收集指标。 | | collect.perf_schema.replication group_member_stats | 5.7 + | 从Performance_schema.replication group_member_stats收集指标。 | | collect.perf_schema.replication applier_status_by_worker | 5.7+ | 从performance_schema.replication _applier_status_by_worker收集指标。 | | collect.slave_status | 5.1+ | 从SHOW SLAVE STATUS收集 (默认情况下启用) | | collect.slave_hosts | 5.1+ | 从SHOW SLAVE HOSTS收集 | | collect.heartbeat | 5.1+ | 从心跳中收集。 | | collect.heartbeat.database | 5.1+ | 从中收集心跳数据的数据库。 (默认值:心跳) | | collect.heartbeat.table | 5.1+ | 从何处收集心跳数据的表。 (默认值:心跳) |

通用启动参数如下:

| Name | Description | |----------------------------------------|-------------------------------------------------------| | ++config.my++-cnf | .my.cnf文件的路径。(默认值:~/.my.cnf) | | log.level | 日志级别 记录详细程度(默认:信息) | | exporter.lock_wait_timeout | 在连接上设置lock_wait_timeout以避免长时间的元数据锁定。(默认值:2秒) | | exporter.log_slow_filter | 添加一个log_slow_filter以避免刮擦的慢速查询日志记录。注意:Oracle MySQL不支持。 | | web.listen-address | 监听端口 默认9104 | | web.telemetry-path | 公开metric的路径 默认/metrics | | version | 打印版本信息 |

启动 Mysql-Exporter 容器,默认端口为 9104 :

cd /opt/metersphere
docker-compose -f docker-compose-base.yml -f docker-compose-mysql-exporter.yml  up -d

直接访问 http://192.168.xx.xx:9104 即可看到监控信息:

3.3、 集成到 Prometheus {#heading-18}

安装好采集指标的 MySQL-Exporter 之后,同样需要集成到 Prometheus 里面。可以按照以下步骤完成:

步骤1:找到 /opt/metersphere/conf/prometheus/prometheus.yml,添加 mysql-exporter 的指标信息

- job_name: 'mysql'
   static_configs:
     - targets: ['192.168.xx.xx:9104']

如果不了解怎么添加 Prometheus 配置请参考:

++https://blog.csdn.net/u013288190/article/details/116804765++

配置完成之后重启 Prometheus

docker restart  ms-prometheus

步骤2:访问Prometheus地址,查看mysql-exporter监控信息,可以看到状态为up状态即为成功。

3.4、 通过 Grafana 大屏展示 {#heading-19}

这里我们选用经典的 MySQL 展示大屏,模板 id 为:7362,可通过1.4章节介绍的方式分别导入,其中模版 json 文件下载地址为:++https://grafana.com/grafana/dashboards/7362++

3.5、 最终监控数据展示结果 {#heading-20}

3.6、 配置 exporter 的 instance 的值 {#heading-21}

到这里我们发现一个问题,有部分的监控指标是空的,展示不出来,这是因为这个监控模板展示的信息需要和 node-exporter 结合起来使用,想要解决这个问题很简单,在配置Prometheus 的时候,需要让 node-exporter 的实例名称和 mysql-exporter 实例名称一致就好。为了清晰明了,这里我把它配置到同一个job里面了。

配置好之后重启一下 Prometheus 容器: docker restart ms-prometheus.

重启好之后我们访问 Prometheus 地址,可以看到两个 Exporter 的实例名称是一致的。

然后刷新 Grafana 监控面板,可以看到,对应的地方会更新监控数据。

四、使用 Grafana 集成 Kafka-Exporter 监控信息 {#heading-22}

4.1、 什么是 Kafka-Exporter {#heading-23}

Kafka exporter 通过 Kafka Protocol Specification 收集 Brokers, Topics 以及 Consumer Groups的相关指标。

kafka exporter 代码层借助大量开源库,所以功能强大但代码量极少,仅600+行,大致架构如下:

  • Kingpin: go的一个命令行库,处理用户输入的参数

  • sarama(核心): go实现的kafka客户端,连接broker获取相关的指标与元数据

  • kazoo: go实现的zk客户端,连接kafka的zk集群,主要用于zk消费组的lag计算

  • promhttp:用于生成 Prometheus HTTP服务器,供 Prometheus pull 指标

  • 其他组件:协助将 sarama 和 kazoo 获取的指标转换成 Prometheus 的数据格式

4.2、 部署 KAFKA-Exporter 容器 {#heading-24}

我们通过 docker-compose 的方式去进行部署,放在 /opt/metersphere 目录下面,脚本如下:

services:
  kafka-exporter:
      image: danielqsj/kafka-exporter
      container_name: kafka-exporter
      command: --kafka.server=192.168.xx.xx:9092
      ports:
        - 9308:9308
      restart: always
      networks:
        - ms-network

默认端口为9308 ,参数说明:

|----------------|----------------| | --kafka.server | kafka的连接地址以及端口 |

执行启动命令:

docker-compose -f docker-compose-base.yml -f docker-compose-kafka-exporter.yml  up -d

部署完成之后看下状态:

4.3、 集成到Prometheus {#heading-25}

1.确认 kafka-exporter 启动好之后,需要集成到 Prometheus,同样的操作,找到 /opt/metersphere/conf/prometheus ,在 prometheus.yml 中添加下面的配置。

- job_name: 'kafka'
    static_configs:
      - targets: ['192.168.xx.xx:9308']

添加好之后重启Prometheus:docker restart ms-prometheus

2.重启好之后访问Prometheus地址,会看到Kafka-Exporter状态是好的。

4.4、 通过 Grafana 大屏展示 {#heading-26}

这里推荐一个 Kafka 的监控模板,推荐的模板id为:12326,按照1.4章节介绍的方式导入,其中下载地址:++https://grafana.com/grafana/dashboards/12326++

4.5、 最终监控数据展示结果 {#heading-27}

4.6、 补充一个好用的 Kafka 模版 {#heading-28}

这个模板用到的数据是 Spring Boot Actuator ,所以如果没有开启的话,参考上面的章节开启配置。监控的内容是各个容器关于 Kafka 消费的情况,可以查看到每个 topic 的消费情况,其中模板 id 为: 11285。

同样的方式,可以访问互联网的话直接导入即可,不可以的访问的话,下载json文件导入。

下载地址:++https://grafana.com/grafana/dashboards/11285++

模版效果如下所示:

五、使用 Grafana 集成 cAdvisor {#heading-29}

需要注意的是:这里监控的主要是所有 docker 容器的信息,类似与docker stats 命令查看的指标,跟上面 Spring Boot Actuator 查看应用内部的信息还是有区别的。

写在这里只是提供一种监控容器资源的方案,可以自行判断是否安装。

5.1、 cAdvisor 是什么? {#heading-30}

cAdvisor 是谷歌开源的一款通用的容器监控解决方案。cAdvisor 不仅可以采集机器上所有运行的容器信息,还提供了基础的查询界面和 HTTP 接口,更方便与外部系统结合。所以,cAdvisor很快成了容器指标监控最常用组件,并且 Kubernetes 也集成了 cAdvisor 作为容器监控指标的默认工具。简单来讲,就是生产级别可用的容器监控方案。

5.2、 部署 cAdvisor {#heading-31}

还是通过容器的方式部署,在 /opt/metersphere/ 创建 docker-compose-cadvisor.yml 文件。

version: '2.1'
services:
  cadvisor:
    image: google/cadvisor
    container_name: cadvisor
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:rw
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
    ports:
      - 8888:8080
    restart: always
    networks:
      - ms-network

cAdvisor 默认端口是8080,我改成了8888 ,启动容器。

docker-compose -f docker-compose-base.yml -f docker-compose-cadvisor.yml  up -d

5.3、 集成到Prometheus {#heading-32}

1.确认 cadvisor 启动好之后,需要集成到 Prometheus,同样的操作,找到 /opt/metersphere/conf/prometheus ,在 prometheus.yml 中添加下面的配置。

- job_name: 'cadvisor'
    static_configs:
      - targets: ['192.168.xx.xx:8888','192.168.xx.xx:9100']
        labels:
          instance: node

这里需要解释一下,为什么把 node-exporter 的信息也给集成过来了,是因为后面我们在 Grafana 集成的模板需要用到 node-exporter 中的一些值,所以这边改了相同的 instance 名称,并且把 node-exporter 的信息也给集成过来了。

2.重启 Prometheus:docker restart ms-prometheus

3.查看 Prometheus 的 targets,状态为 up 即为正常。

5.4、 通过 Grafana 大屏展示 {#heading-33}

推荐一个比较常用的模板 id:16314,下载地址:https://grafana.com/grafana/dashboards/16314。具体导入方式参见1.4章节。

5.5、 最终监控数据展示结果 {#heading-34}

六、注意事项 {#heading-35}

  1. 以上就是 MeterSphere 服务器 Node节点、应用、MySQL,Kafka、Docker 容器的监控方案,可以根据实际情况自行选择如何搭配监控;

  2. 以上方案都是通过 docker 的方式安装,所以如果是内网用户,需要提前把对应的镜像下载下来,在通过 docker load 的方式安装部署。具体操作百度:docker save / load 命令;

  3. 本文 Grafana 版本是 v9.4.3,Node-Exporter 版本是 MeterSphere 自带的,其他 Exporter 版本都为 latest;

  4. 本文所有命令操作都在 /opt/metersphere 下面执行,因为用到 MeterSphere 自带的一些基础配置。

附件:完整的安装 YML 文件 {#heading-36}

为了部署更加方便,给一个更加全面的 docker-compose-monitor.yml ,其中的ip和端口信息需要自行修改。

version: "2.1"
services:
  grafana:
    image: grafana/grafana:9.4.3
    restart: always
    container_name: grafana
    volumes:
      - ms-grafana-data:/var/lib/grafana
    ports:
      - 3000:3000
    healthcheck:
      test: ["CMD", "nc", "-zv", "localhost", "3000"]
      interval: 6s
      timeout: 5s
      retries: 50
    networks:
      - ms-network

mysqlexporter: image: prom/mysqld-exporter container_name: mysqld-exporter restart: always ports:

  • "9104:9104" environment:
  • DATA_SOURCE_NAME=root:Password123@mysql@(10.1.12.13:3306)/metersphere volumes:
  • /etc/my.cnf:/etc/my.cnf command: --collect.auto_increment.columns --collect.binlog_size --collect.global_status --collect.global_variables --collect.info_schema.innodb_metrics --collect.info_schema.innodb_cmp --collect.info_schema.innodb_cmpmem --collect.info_schema.processlist --collect.info_schema.query_response_time --collect.info_schema.tables --collect.info_schema.tablestats --collect.info_schema.userstats --collect.perf_schema.eventswaits --collect.perf_schema.file_events --collect.perf_schema.indexiowaits --collect.perf_schema.tableiowaits --collect.perf_schema.tablelocks --collect.slave_status --config.my-cnf=/etc/my.cnf networks:
  • ms-network

kafka-exporter: image: danielqsj/kafka-exporter container_name: kafka-exporter command: --kafka.server=10.1.12.13:9092 ports:

  • 9308:9308 restart: always networks:
  • ms-network

cadvisor: image: google/cadvisor container_name: cadvisor volumes:

  • /:/rootfs:ro
  • /var/run:/var/run:rw
  • /sys:/sys:ro
  • /var/lib/docker/:/var/lib/docker:ro ports:
  • 8888:8080 restart: always networks:
  • ms-network

volumes: ms-grafana-data: driver_opts: type: none device: ${MS_BASE}/metersphere/data/grafana o: bind


启动命令:

docker-compose -f docker-compose-base.yml -f docker-compose-monitor.yml up -d

赞(1)
未经允许不得转载:工具盒子 » 基于 Prometheus+Exporter+Grafana 的 MeterSphere 监控方案