小程序定制開發(fā)網(wǎng)站百度網(wǎng)址是什么
本篇文章采用 Docker 方式搭建 Grafana + Prometheus 實現(xiàn)對 DBLE 的 JVM 相關指標的監(jiān)控系統(tǒng)。
作者:文韻涵
愛可生 DBLE 團隊開發(fā)成員,主要負責 DBLE 需求開發(fā),故障排查和社區(qū)問題解答。
本文來源:原創(chuàng)投稿
- 愛可生開源社區(qū)出品,原創(chuàng)內容未經(jīng)授權不得隨意使用,轉載請聯(lián)系小編并注明來源。
前言
本篇文章將采用 Docker 方式搭建 Grafana + Prometheus 實現(xiàn)對 DBLE 的 JVM 相關指標(如:CPU、Memory Pool、GC、Thread)的監(jiān)控系統(tǒng)。
準備
- Linux 服務器:10.186.63.8
- 已經(jīng)安裝 Docker
搭建環(huán)境
1. 部署 DBLE
該部分參考參考自 Docker 快速開始
準備 MySQL 容器
# 創(chuàng)建一個 Docker 網(wǎng)段 dble-net:172.18.0.0/16
docker network create -o "com.docker.network.bridge.name"="dble-net" --subnet 172.18.0.0/16 dble-net# 創(chuàng)建兩個 MySQL 容器,分別映射到主機的 33061 和 33062 作為 MySQL 的服務端口
docker run --name backend-mysql1 --ip 172.18.0.2 -e MYSQL_ROOT_PASSWORD=123456 -p 33061:3306 --network=dble-net -d mysql:5.7 --server-id=1
docker run --name backend-mysql2 --ip 172.18.0.3 -e MYSQL_ROOT_PASSWORD=123456 -p 33062:3306 --network=dble-net -d mysql:5.7 --server-id=2
如果執(zhí)行 docker run...
時出現(xiàn) 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 \
--network=dble-net \
actiontech/dble:latest
其中,8099 表示作為后續(xù)暴露監(jiān)控指標映射端口。
使用 JMX Exporter 提供的 JVM 進程內啟動(in-process)方式暴露 JVM 的監(jiān)控指標。在 JVM 啟動時指定參數(shù),通過 javaagent 的形式運行 JMX-Exporter 的 jar 包,進程內讀取 JVM 運行時狀態(tài)數(shù)據(jù),轉換為 Prometheus metrics 格式,并暴露端口讓 Prometheus 采集。
# 創(chuàng)建目錄
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.0,DBLE 啟動時會失敗。
同時,添加 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.jar=8099:/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 --network=dble-net prom/prometheus
其中,9090 為訪問 Prometheus 服務端口。
進入 Prometheus 容器并修改配置,創(chuàng)建 DBLE_Job
,添加 target:172.18.0.4:8099。
docker exec -it prometheus shvi /etc/prometheus/prometheus.yml# 配置內容(將原配置覆蓋)為:
scrape_configs:- job_name: 'DBLE_Job'scrape_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 --name=grafana --ip 172.18.0.6 -p 3000:3000 --network=dble-net grafana/grafana
訪問 Grafana 的頁面 http://10.186.63.8:3000
,使用默認用戶 admin/admin 登錄。
監(jiān)控指標
導入 JVM 監(jiān)控模版
在 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.jar=8099:/jmx-exporter/prometheus-jmx-config.yaml
- DBLE 版本= 3.20.07.0、3.20.10.0,不支持配置
-javaagent
,因此無法配置以上監(jiān)控。 - DBLE 版本>=3.21.02.0,按照上文配置。 更多技術文章,請訪問:https://opensource.actionsky.com/
關于 SQLE
愛可生開源社區(qū)的 SQLE 是一款面向數(shù)據(jù)庫使用者和管理者,支持多場景審核,支持標準化上線流程,原生支持 MySQL 審核且數(shù)據(jù)庫類型可擴展的 SQL 審核工具。
SQLE 獲取
類型 | 地址 |
---|---|
版本庫 | https://github.com/actiontech/sqle |
文檔 | https://actiontech.github.io/sqle-docs/ |
發(fā)布信息 | https://github.com/actiontech/sqle/releases |
數(shù)據(jù)審核插件開發(fā)文檔 | https://actiontech.github.io/sqle-docs/docs/dev-manual/plugins/howtouse |