MeterSphere 监控方案

news/2024/5/18 21:27:23 标签: metersphere, prometheus, grafana

前言:在部署MeterSphere之后,很多时候需要看下MeterSphere服务的监控信息,虽然有监控告警脚本,但还不是太直观,所以就结合 Prometheus+Exporter+Grafana 部署一套完整的MeterSphere监控方案。

首先我们先罗列一下需要监控的容器:

  1. MySQL: mysql-exporter
  2. KAFKA: kafka-exporter
  3. 部署服务器的信息或node节点:node-exporter
  4. 其他应用服务的监控:SpringBoot 自带的 Actuator
  5. 监控面板:grafana:9.4.3 版本

需要声明的是,此文章建立在有技术背景,并且了解 prometheus、exporter、grafana 等组件是干嘛的,如果需要了解具体工作原理,可以自行查阅资料。
文章结尾有完整的docker-compose的yml文件,可以直接复制完整文件进行安装。

一、使用 Grafana 集成 Node-Exporter 监控服务器资源信息

MeterSphere 安装部署完整之后,自带了prometheus 和 node-exporter 组件,所以我们只需要简单的配置安装部署 grafana,就可以进行监控了。
Node-Exporter 可以监控服务器资源的 CPU、内存、磁盘、网络IO等信息。
详细信息可参考:https://blog.csdn.net/qq_34556414/article/details/123443187

1.1、确认Node-Exporter是否正常

  1. 首先,要确认 prometheus 是否能够获取到服务器的监控数据, prometheus 端口默认为9090,安装部署MeterSphere 好之后,直接访问 http://192.168.xx.xx:9090 即可查看prometheus 页面。(如果出现访问不了,检查防火墙是否关闭,端口是否对外暴露)
  2. 查看Targets 可以看到有9100端口的地址,Node-Exporter 默认监听端口为9100,如果状态为up,即为正常,代表可以查看到监控数据。

image.png
image.png
image.png

1.2、安装Grafana

本文章是通过 docker 的方式进行安装。
注意,本次安装grafana版本为9.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
  1. grafana 默认端口是3000,所以我们直接访问 http://192.168.xx.xx:3000 ,默认账号密码:admin/admin ,初次登录可以修改密码。

image.png

  1. 能够访问页面,即为安装成功

1.3、添加 Prometheus 数据源

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

image.png
image.png

  1. 设置名字和 prometheus 地址,点击 Save 保存。

image.png
image.png

1.4、配置 Grafana 监控面板

这边介绍两种方式去配置面板

1.4.1、如果可以访问互联网的话,直接导入模板id即可。

  1. 找到 Dashboard ,点击 import

image.png

  1. 这里我们选择的模板为:12227,直接输入这个id,点击Load,设置模板名称,配置数据源,保存即可。

image.png
image.png

1.4.2、如果访问不了互联网,可以直接导入面板的json文件。

12227_rev1.json
https://grafana.com/grafana/dashboards/12227

  1. 同样的操作,导入json文件

image.png

  1. 选择数据源即可

image.png
以上两种方式最终得到的结果如下, 至此,Node-exporter 监控已完成
image.png

二、使用 Grafana 集成 SpringBoot Actuator 监控容器应用信息

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

2.1 什么是 SpringBoot Actuator

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 监控

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

2.3 如何查看 Metrics 监控指标

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

  1. 修改某一个容器docker-compse,添加端口映射,比如我想查看api-test的,直接在docker-compose-api-test.yml 里面添加端口映射 7004:7004 ,然后重启api-test容器即可。
  2. 直接在 prometheus 的 graph 里面查看容器对应的实例名称。比如我想查看api-test的,那么它的实例名称为 instance:“api-test:7004”, 然后我们去 graph 查询,就可以看到对应的指标信息了。

image.png
image.png

2.4 如何通过 Grafana 大屏展示

检查如确认开启之后,我们开始对接grafana
因为前面在监控服务器资源监控的时候已经对接了数据源,这里就不需要对接了。如何对接请参考上面的(如何添加prometheus数据源)章节
这里推荐两个模板,模板id为: 12900 和 9568 ,两个模板侧重监控的指标信息有所不同,有重合部分,可以根据需求修改。
两个模板的区别:

  1. 12900 主要可以分析应用内的一些信息
  2. 9568 要分析应用内JVM相关的信息

这里还是介绍两种方式:

2.4.1 可以访问互联网,直接import导入:

导入方式跟之前一样,选择 Dashboards->Import ,输入模板id,点击load,选择数据源,添加即可。
image.png

2.4.2 不可以访问互联网,直接通过json文件导入:

直接提供两个模板的json文件,可以自行导入
12900_rev3.json
9568_rev1.json
https://grafana.com/grafana/dashboards/12900
https://grafana.com/grafana/dashboards/9568
image.png

以上两种模板最终结果如下:
12900 模板效果图:
image.png

9568 模板效果图:
image.png

三、使用 Grafana 集成 Mysql-Exporter 监控信息

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

3.1 什么是MySQL-Exporter?

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

3.1 部署 MySQL-Exporter 容器

我们通过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

环境变量配置:

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

监控指标参数:

启动参数MySQL版本参数含义
collect.auto_increment.columns5.1 +从information_schema收集auto_increment列和最大值。
collect.binlog_size5.1+收集所有已注册的Binlog文件的当前大小
collect.engine_innodb_status5.1+通过SHOW ENGINE INNODB STATUS收集数据
collect.engine_tokudb_status5.6+通过SHOW ENGINE TOKUDB STATUS.收集数据
collect.global_status5.1+通过SHOW GLOBAL STATUS 收集数据(默认开启)
collect.global_variables5.1+通过SHOW GLOBAL VARIABLES收集数据(默认开启)
collect.info_schema.clientstats5.5+如果被监控的MySQL使用userstat = 1运行,则此参数需要设置为1以收集客户端统计信息
collect.info_schema.innodb_metrics5.6+从information_schema.innodb_metrics收集数据。
collect.info_schema.innodb_tablespaces5.7+从information_schema.innodb_sys_tablespaces收集数据。
collect.info_schema.innodb_cmp5.5+从information_schema.innodb_cmp收集InnoDB压缩表指标。
collect.info_schema.innodb_cmpmem5.5+从information_schema.innodb_cmpmem收集InnoDB缓冲池。
collect.info_schema.processlist5.1+从information_schema.processlist收集线程状态计数。
collect.info_schema.processlist.min_time5.1+
线程状态停留多长时间会被统计。(默认值:0)
collect.info_schema.query_response_time5.5+如果query_response_time_stats为ON,则收集查询响应时间。
collect.info_schema.replica_host5.6+从information_schema.replica_host_status收集数据。
collect.info_schema.tables5.1+从information_schema.tables中收集数据。
collect.info_schema.tables.databases5.1+收集表统计信息的数据库列表,或*全部为’的数据库
collect.info_schema.tablestats5.1+如果被监控的MySQL使用userstat = 1运行,则设置为true以收集表统计信息。
collect.info_schema.schemastats5.1+如果被监控的MySQL使用userstat = 1运行,则设置为true以收集架构统计信息
collect.info_schema.userstats5.1+如果被监控的MySQL使用userstat = 1运行,则设置为true以收集用户统计信息。
collect.perf_schema.eventsstatements5.6+从performance_schema.events_statements_summary_by_digest收集数据。
collect.perf_schema.eventsstatements.digest_text_limit5.6+规范化语句文本的最大长度。(默认值:120)
collect.perf_schema.eventsstatements.limit5.6+通过响应时间限制事件语句摘要的数量。(预设值:250)
collect.perf_schema.eventsstatements.timelimit5.6+限制“ last_seen”事件语句的年龄(以秒为单位)。(预设值:86400)
collect.perf_schema.eventsstatementssum5.7+从Performance_schema.events_statements_summary_by_digest汇总中收集指标。
collect.perf_schema.eventswaits5.5+从Performance_schema.events_waits_summary_global_by_event_name收集指标。
collect.perf_schema.file_events5.6+从Performance_schema.file_summary_by_event_name收集指标。
collect.perf_schema.file_instances5.5+从performance_schema.file_summary_by_instance收集指标。
collect.perf_schema.indexiowaits5.6+从performance_schema.table_io_waits_summary_by_index_usage收集指标。
collect.perf_schema.tableiowaits5.6+从Performance_schema.table_io_waits_summary_by_table收集指标。
collect.perf_schema.tablelocks5.6+从Performance_schema.table_lock_waits_summary_by_table收集指标。
collect.perf_schema.replication_group_members5.7+从Performance_schema.replication_group_members收集指标。
collect.perf_schema.replication_group_member_stats5.7 +从Performance_schema.replication_group_member_stats收集指标。
collect.perf_schema.replication_applier_status_by_worker5.7+从performance_schema.replication_applier_status_by_worker收集指标。
collect.slave_status5.1+从SHOW SLAVE STATUS收集(默认情况下启用)
collect.slave_hosts5.1+从SHOW SLAVE HOSTS收集
collect.heartbeat5.1+从心跳中收集。
collect.heartbeat.database5.1+从中收集心跳数据的数据库。(默认值:心跳)
collect.heartbeat.table5.1+从何处收集心跳数据的表。(默认值:心跳)

通用启动参数:

NameDescription
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

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

3.2 集成到 Prometheus

安装好采集指标的 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
  1. 访问prometheus地址,查看mysql-exporter监控信息,可以看到状态为up状态即为成功

image.png

3.3 通过 Grafana 大屏展示

这里我们选用经典的MySQL展示大屏,模板id为:7362,介绍两种方式:

3.3.1 可以访问互联网的,直接import导入

  1. 选择Dashboard->import->输入7362 ,点击load->选择数据源即可

image.png
image.png

  1. 配置好之后,就可以看到MySQL的监控信息了

image.png
image.png
image.pngimage.png

3.3.1.1 配置 exporter 的 instance 的值

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

docker restart ms-prometheus

重启好之后我们访问prometheus地址,可以看到两个exporter的实例名称是一致的。
image.png
然后刷新grafana 监控面板,可以看到,对应的地方已经有值了。
image.png
image.png

3.3.2 不可以访问互联网的,直接导入json文件

如果不能访问互联网的,可以直接导入json文件。
7362_rev5.json
https://grafana.com/grafana/dashboards/7362

  1. 选择Dashboard->import->上传json文件->选择对应的数据源

image.png
image.png

  1. 添加好之后,就可看到面板效果,如果有发现一些值没有展示出来,请参考上面配置exporter的instance的操作。

四、使用 Grafana 集成 KAFKA-Exporter 监控信息

4.1 什么是 KAFKA-Exporter

kafka exporter 通过 Kafka Protocol Specification 收集 Brokers, Topics 以及 Consumer Groups的相关指标。
kafka exporter代码层借助大量开源库,所以功能强大但代码量极少,仅600+行,大致架构如下:

image.png

  • 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 容器

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

version: "2.1"
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.serverkafka的连接地址以及端口

执行启动命令

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

部署完成之后看下状态
image.png

4.3 集成到Prometheus

  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
  1. 重启好之后访问prometheus地址,会看到kafka-exporter状态是好的。

image.png

4.4 通过 Grafana 大屏展示

这里推荐一个kafka的监控模板,同样的介绍两种方式应用
模板id为:12326

4.4.1 可以访问互联网的,直接import导入

导入的方式具体可以参考上面文章写的,方法都一样,这里不在详细介绍。
image.png
image.png

4.4.2 不可以访问互联网的,直接json文件导入

12326_rev2.json
https://grafana.com/grafana/dashboards/12326
选择Dashboard->import->上传json文件->选择对应的数据源即可

4.4.3 介绍一个好用的kafka的模板

这个模板用到的数据是Spring Boot Actuator ,所以如果没有开启的话,参考上面的章节开启配置。
监控的内容是各个容器关于kafka消费的情况,可以查看到每个topic的消费情况。
模板id为: 11285
同样的方式,可以访问互联网的话直接导入即可。
11285_rev1.json
https://grafana.com/grafana/dashboards/11285
不可以的访问的话,下载json文件导入。
模板效果
image.png
image.png

五、使用 Grafana 集成 CAdvisor

需要注意的是:这里监控的主要是所有docker容器的信息,类似与docker stats 命令查看的指标,跟上面Spring Boot Actuator 查看应用内部的信息还是有区别的。
写在这里只是提供一种监控容器资源的方案,可以自行判断是否安装。

5.1 CAdvisor 是什么?

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

5.2 部署CAdvisor

还是通过容器的方式部署,在 /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

  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的信息也给集成过来了。
image.png

  1. 重启prometheus
docker restart  ms-prometheus
  1. 查看prometheus的targets,状态为up即为正常。

image.png

5.4 通过 Grafana 大屏展示

推荐一个比较常用的模板id:16314
具体导入方式不在多讲,跟上面一样。

  1. 可以访问互联网,直接import导入

选择Dashboard->import->输入16314 ,点击load->选择数据源即可

  1. 不可以访问互联网,通过json文件导入

16314_rev3.json
https://grafana.com/grafana/dashboards/16314
直接下载文件,导入即可。

  1. 效果如下:

image.png
image.png
image.png

六、注意事项

  1. 以上就是虚拟机、应用、MySQL,KAFKA、Docker容器的监控方案,可以根据实际情况自行选择如何搭配监控。
  2. 以上方案都是通过docker的方式安装,所以如果是内网用户,需要提前把对应的镜像下载下来,在通过 docker load 的方式安装部署。具体操作百度:docker save / load 命令。
  3. 本文grafana版本是9.4.3,node-exporter版本是MeterSphere自带的,其他exporter版本都为latest
  4. 本文所有命令操作都在 /opt/metersphere 下面执行,因为用到MeterSphere自带的一些基础配置。
  5. 为了部署更加方便,给一个更加全面的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

http://www.niftyadmin.cn/n/5046199.html

相关文章

【计算机毕业设计】基于SpringBoot+Vue记帐理财系统的设计与实现

博主主页:一季春秋博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。主要内容:毕业设计(Java项目、小程序、安卓等)、简历模板、学习资料、…

免费代理IP VS 付费代理IP,为何选择后者更明智?

如今代理IP的应用已经越来越广泛,有一些用户在初次接触代理服务时,会选择使用免费的代理IP。虽然很多人都知道免费代理IP的存在,但并不是所有人都清楚其隐患。实际上,免费代理IP的可用率并不高,同时伴随着风险&#xf…

Mojo:新型AI语言中的7个令人惊叹的Python升级,用简单的英语解释人工智能

Mojo:新型AI语言中的7个令人惊叹的Python升级 编程之美 用简单的英语解释人工智能 编程之美 由Coding Beauty设计的图像,使用Mojo标志和Python标志。 它比C更快,与Python一样简单,但速度提高了35000倍。 进入Mojo:一种…

Linux-杂七杂八

目录 make -j和make -j8 Fedora挂载exFAT U盘 Ubuntu 64位ARM Server 22.04.3安装JDK Ubuntu 64位ARM Server 22.04.3安装MySQL 权限系统 权限类型 不同角色 fork函数 exec函数 Copy on Write(写时拷贝)​​​​​​​ make -j和make -j8 mak…

Redis 哨兵模式搭建教程

一、介绍 本文实战搭建一主两从三哨兵,通过使用哨兵模式,可以有效避免某台服务器的 Redis 挂掉出现的不可用问题,保障系统的高可用。 本文通过虚拟机搭建的三台 Centos7 服务器进行测试,使用的 Redis 版本为 6.25。 二、准备环…

Pytorch环境搭建(吐血~)、将CPU版本换为GPU版本

查看自己电脑的驱动版本。cmd命令行中输入下面代码 nvidia-smi 配置环境可能出现问题 假如报上述错误,说明对应文件夹里面没有yolov7.pt文件,与报错内容无关(因为YOLOv7官网压缩包里面没有pt文件,所以会自动联网下载,…

spark中结合源码理解reduceByKey、groupByKey、combineByKey等几个ByKey算子的区别

源码版本:pyspark3.1.2 1.combineByKey2.reduceByKey3.groupByKey4.aggregateByKey5.foldByKey总结 1.combineByKey def combineByKey(self, createCombiner, mergeValue, mergeCombiners,numPartitionsNone, partitionFuncportable_hash):"""Generi…

【SpringCloud】-Ribbon负载均衡

一、背景介绍 项目中使用到的SpringCloud Alibaba这一套微服务架构中服务注册与发现Nacos兼容了Feign,而Feign默认集成了Ribbon,当Nacos下使用Feign默认实现了负载均衡的效果。即使是默认集成了,也要追根溯源。 二、过程 负载均衡是什么&am…