自己搭建网站的步骤,阿里云建设网站能干嘛,广州网站建设网站制作公司,子域名网址大全本篇文章采用 Docker 方式搭建 Grafana Prometheus 实现对 DBLE 的 JVM 相关指标的监控系统。 作者#xff1a;文韵涵 爱可生 DBLE 团队开发成员#xff0c;主要负责 DBLE 需求开发#xff0c;故障排查和社区问题解答。 本文来源#xff1a;原创投稿 爱可生开源社区出品 Prometheus 实现对 DBLE 的 JVM 相关指标的监控系统。 作者文韵涵 爱可生 DBLE 团队开发成员主要负责 DBLE 需求开发故障排查和社区问题解答。 本文来源原创投稿 爱可生开源社区出品原创内容未经授权不得随意使用转载请联系小编并注明来源。
前言
本篇文章将采用 Docker 方式搭建 Grafana Prometheus 实现对 DBLE 的 JVM 相关指标如CPU、Memory Pool、GC、Thread的监控系统。
准备
Linux 服务器10.186.63.8已经安装 Docker
搭建环境
1. 部署 DBLE
该部分参考参考自 Docker 快速开始
准备 MySQL 容器
# 创建一个 Docker 网段 dble-net172.18.0.0/16
docker network create -o com.docker.network.bridge.namedble-net --subnet 172.18.0.0/16 dble-net# 创建两个 MySQL 容器分别映射到主机的 33061 和 33062 作为 MySQL 的服务端口
docker run --name backend-mysql1 --ip 172.18.0.2 -e MYSQL_ROOT_PASSWORD123456 -p 33061:3306 --networkdble-net -d mysql:5.7 --server-id1
docker run --name backend-mysql2 --ip 172.18.0.3 -e MYSQL_ROOT_PASSWORD123456 -p 33062:3306 --networkdble-net -d mysql:5.7 --server-id2如果执行 docker run... 时出现 408 Request Time-out 报错请多尝试几次。
部署 DBLE
利用 Docker 部署 DBLE 服务。
docker run -d -i -t --name dble-server --ip 172.18.0.4 -p 8066:8066 -p 9066:9066 -p 8099:8099 \
-v /opt/jmx-exporter:/jmx-exporter \
--networkdble-net \
actiontech/dble:latest
其中8099 表示作为后续暴露监控指标映射端口。
使用 JMX Exporter 提供的 JVM 进程内启动in-process方式暴露 JVM 的监控指标。在 JVM 启动时指定参数通过 javaagent 的形式运行 JMX-Exporter 的 jar 包进程内读取 JVM 运行时状态数据转换为 Prometheus metrics 格式并暴露端口让 Prometheus 采集。
# 创建目录
mkdir /opt/jmx-exporter# 在 jmx-exporter 目录中下载 jmx_prometheus_javaagent-0.15.0.jar
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.15.0/jmx_prometheus_javaagent-0.15.0.jar 目前 DBLE 支持最高版本为 jmx_prometheus_javaagent-0.15.0.jar若版本 0.15.0DBLE 启动时会失败。 同时添加 prometheus-jmx-config.yaml 文件配置其内容为
ssl: false
lowercaseOutputName: false
lowercaseOutputLabelNames: false
进入 dble-server 容器并添加配置。
docker exec -it dble-server bashvi /opt/dble/conf/bootstrap.cnf# 添加配置
-javaagent:/jmx-exporter/jmx_prometheus_javaagent-0.15.0.jar8099:/jmx-exporter/prometheus-jmx-config.yaml 重启 dble 服务查看 DBLE 是否启动并退出容器。
/opt/dble/bin/dble restartvi /opt/dble/logs/wrraper.log
查看 DBLE JVM metric
查询地址http://10.186.63.8:8099 2. 部署 Prometheus
利用 Docker 部署 Prometheus 服务。
docker run -itd --name prometheus --ip 172.18.0.5 -p 9090:9090 --networkdble-net prom/prometheus
其中9090 为访问 Prometheus 服务端口。
进入 Prometheus 容器并修改配置创建 DBLE_Job 添加 target172.18.0.4:8099。
docker exec -it prometheus shvi /etc/prometheus/prometheus.yml# 配置内容将原配置覆盖为
scrape_configs:- job_name: DBLE_Jobscrape_interval: 30sstatic_configs:- targets:- 172.18.0.4:8099 注意这里 172.18.0.4 是对应 dble-server 容器的 IP。 退出并重新启动 Prometheus 容器访问 Prometheus 页面 http://10.186.63.8:9090/targets 验证配置生效。 3. 部署 Grafana
利用 Docker 部署 Grafana 服务。
docker run -itd --namegrafana --ip 172.18.0.6 -p 3000:3000 --networkdble-net grafana/grafana
访问 Grafana 的页面 http://10.186.63.8:3000使用默认用户 admin/admin 登录。
监控指标
导入 JVM 监控模版
在 Grafana 中配置 「Data source」。 选择添加 Prometheus。 填写暴露 Prometheus metrics 的地址并且保存。 注意填写 Prometheus 容器 IP http://172.18.0.5:9090 并且保存。 添加「Dashboards」选择 Import。 使用模版 ID 为 8878 或者可导入 8878 对应的 JSON 文件JVM 模版 ID 还有 8563。 自定义 Dashboard Name。 效果如下其中有 CPU、Memory Pool、GC、Thread 等相关指标。 版本注意
DBLE 版本2.20.04.0在 bin 目录中的 wrapper.cnf 配置 JMX-Exporter
wrapper.java.additional.序号-javaagent:/jmx-exporter/jmx_prometheus_javaagent-0.15.0.jar8099:/jmx-exporter/prometheus-jmx-config.yaml
DBLE 版本 3.20.07.0、3.20.10.0不支持配置 -javaagent因此无法配置以上监控。DBLE 版本3.21.02.0按照上文配置。 更多技术文章请访问https://opensource.actionsky.com/
关于 SQLE
爱可生开源社区的 SQLE 是一款面向数据库使用者和管理者支持多场景审核支持标准化上线流程原生支持 MySQL 审核且数据库类型可扩展的 SQL 审核工具。
SQLE 获取
类型地址版本库https://github.com/actiontech/sqle文档https://actiontech.github.io/sqle-docs/发布信息https://github.com/actiontech/sqle/releases数据审核插件开发文档https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse