Apache?SkyWalking?監(jiān)控?MySQL?Server?實(shí)戰(zhàn)解析
正文
Apache SkyWalking 在本月初發(fā)布了 SkyWalking Backend、UI 的 9.2.0 版本 以及 SkyWalking Java Agent 8.12.0 版本,其中就有筆者貢獻(xiàn)的 hutool-http client 5.x 插件,以后大家通過(guò) hutool 工具發(fā)送的 http 請(qǐng)求也可以出現(xiàn)在分布式鏈路中了。
另外,社區(qū)宣布計(jì)劃在 2022 年 11 月 30 日結(jié)束所有 v8 版本,v9 可以在生產(chǎn)環(huán)境中提供穩(wěn)定和更高性能的 APM,具體聲明見 SkyWalking 官網(wǎng)。
了解 SkyWalking 的朋友都知道,它可以監(jiān)控我們的應(yīng)用程序中執(zhí)行的 SQL語(yǔ)句,監(jiān)控到的 SQL 大概像下圖這樣,看起來(lái)是不是很酷!
監(jiān)控 MySQL Server
上面展示的是在 MySQL 客戶端層面的監(jiān)控,那如果想要監(jiān)控 MySQL Server 該怎么做呢,SkyWalking 發(fā)布的 9.2.0 版本升級(jí)了許多內(nèi)容,其中一項(xiàng)就是開始支持 MySQL Server Monitoring。
SkyWalking 是如何監(jiān)控 MySQL Server 程序的呢,SkyWalking 社區(qū)并沒(méi)有重復(fù)造輪子,而是利用了已有的開源實(shí)現(xiàn)來(lái)采集 MySQL Server 的 metrics 數(shù)據(jù),并將 metrics 發(fā)送到 SkyWalking OAP,由 MAL 引擎去分析、計(jì)算、聚合和存儲(chǔ),具體流程如下:
1)mysqld_exporter 從 MySQL Server 收集 metrics 數(shù)據(jù);
2)OpenTelemetry Collector 通過(guò) Prometheus Receiver 從 mysqld_exporter 抓取 metrics 數(shù)據(jù);
3)OpenTelemetry Collector 通過(guò) OpenCensus gRPC Exporter 或 OpenTelemetry gRPC exporter 將 metrics 數(shù)據(jù) 發(fā)送給 SkyWalking OAP Server;
4)SkyWalking OAP Server 使用 MAL引擎解析表達(dá)式,并對(duì) metrics 數(shù)據(jù)進(jìn)行過(guò)濾、計(jì)算、聚合并存儲(chǔ)結(jié)果。
其中,mysqld_exporter 是 Prometheus 提供的用于收集 MySQL Server 的metrics 數(shù)據(jù),OpenTelemetry Collector 是 OpenTelemetry 提供的用于收集 telemetry 數(shù)據(jù),它提供了與廠商無(wú)關(guān)的實(shí)現(xiàn),用于接收、處理與導(dǎo)出 telemetry 數(shù)據(jù)。
安裝過(guò)程
這里假設(shè)我們已經(jīng)部署了 MySQL Server 以及 SkyWalking,現(xiàn)在想要在 SkyWalking 中監(jiān)控 MySQL Server,我們這里準(zhǔn)備一臺(tái)機(jī)器(192.168.56.102),這臺(tái)機(jī)器筆者已經(jīng)提前安裝好了 Docker,接下來(lái)我們就在這臺(tái)機(jī)器上安裝 mysqld_exporter 和 OpenTelemetry Collector 。
首先我們需要?jiǎng)?chuàng)建一個(gè) MySQL 用戶并授權(quán),用于 mysqld_exporter 收集 metrics 使用,操作如下:
create user 'mysql_exporter'@'%' identified by 'mysql_exporter'; GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'mysql_exporter'@'%' WITH MAX_USER_CONNECTIONS 3; flush privileges;
準(zhǔn)備 OpenTelemetry Collector 組件的配置文件 otel-collector-config.yaml
receivers: prometheus: config: scrape_configs: - job_name: 'mysql-monitoring' scrape_interval: 5s static_configs: - targets: ['mysqld-exporter:9104'] labels: host_name: showcase processors: batch: exporters: otlp: endpoint: SkyWalking OAP 地址:11800 tls: insecure: true service: pipelines: metrics: receivers: - prometheus processors: - batch exporters: - otlp
對(duì)以上配置做個(gè)簡(jiǎn)要說(shuō)明:
1)receivers 用于配置 Collector 的數(shù)據(jù)來(lái)源,這里是從 prometheus 的 mysqld_exporter 抓取數(shù)據(jù);
2)exporters 用于配置要將接收到的數(shù)據(jù)發(fā)送到哪里,這里是發(fā)送到 SkyWalking OAP ;
3)processors 指定如何處理接收到的數(shù)據(jù);
4)service 配置將整個(gè) pipelines 串起來(lái)。
docker compose 部署
我們這里使用 docker compose 部署,docker-compose.yml 完整配置如下:
version: '3.8' services: mysqld-exporter: image: prom/mysqld-exporter:v0.14.0 container_name: mysqld-exporter ports: - 9104:9104 environment: - DATA_SOURCE_NAME=mysql_exporter:mysql_exporter@(mysql地址:3306)/ - TZ=Asia/Shanghai otel-collector: image: otel/opentelemetry-collector:0.50.0 container_name: otel-collector command: [ "--config=/etc/otel-collector-config.yaml" ] volumes: - /opt/data/otel-collector-config.yaml:/etc/otel-collector-config.yaml expose: - 55678
將 docker-compose.yml 和otel-collector-config.yaml 配置文件上傳到服務(wù)器并放到 /data/opt/ 目錄下,執(zhí)行 docker compose up -d 即可啟動(dòng) mysqld-exporter 和 otel-collector 服務(wù)。
啟動(dòng)完成之后,我們可以通過(guò)訪問(wèn) mysqld-exporter 服務(wù)http://192.168.56.102:9104/metrics 查看 mysqld-exporter 采集了 MySQL 的哪些 metrics 數(shù)據(jù),比如下圖中的 mysql_global_status_uptime 指標(biāo)表示 MySQL Server 啟動(dòng)了多長(zhǎng)時(shí)間,單位是秒。
mysqld-exporter 和 otel-collector 服務(wù)能正常采集數(shù)據(jù)之后,我們可以訪問(wèn) SkyWalking UI,可以查看到 MySQL Sever 端的監(jiān)控信息了。
圖中每一項(xiàng)指標(biāo)的具體含義大家可以訪問(wèn)官網(wǎng)查看,這里就不一一贅述了 skywalking.apache.org/docs/main/v…
剛剛演示的 SkyWalking 中 MySQL Server 的監(jiān)控功能是一名大三學(xué)生貢獻(xiàn)的!,具體貢獻(xiàn)過(guò)程可以看下issue 鏈接 github.com/apache/skyw… 。之前看到過(guò)一句話,對(duì)技術(shù)有追求的開發(fā)者都應(yīng)該去參與開源項(xiàng)目。
相關(guān)鏈接
以上就是Apache SkyWalking 監(jiān)控 MySQL Server 實(shí)戰(zhàn)解析的詳細(xì)內(nèi)容,更多關(guān)于Apache SkyWalking監(jiān)控MySQL的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Skywalking-agent調(diào)試說(shuō)明以trace-ignore為例
- SpringCloudGateway使用Skywalking時(shí)日志打印traceId解析
- Apache?SkyWalking?修復(fù)TTL?timer?失效bug詳解
- 全鏈路監(jiān)控平臺(tái)Pinpoint?SkyWalking?Zipkin選型對(duì)比
- skywalking源碼解析javaAgent工具ByteBuddy應(yīng)用
- skywalking分布式服務(wù)調(diào)用鏈路追蹤APM應(yīng)用監(jiān)控
- skywalking容器化部署docker鏡像構(gòu)建k8s從測(cè)試到可用
- 解析Arthas協(xié)助排查線上skywalking不可用問(wèn)題
- python抓取skywalking中超過(guò)2s的告警接口
相關(guān)文章
JPA框架實(shí)現(xiàn)分頁(yè)查詢和條件查詢功能詳解
這篇文章主要介紹了JPA框架實(shí)現(xiàn)分頁(yè)查詢和條件查詢功能,JPA是Java Persistence API的簡(jiǎn)稱,在過(guò)去很多數(shù)據(jù)庫(kù)的增刪查改操作都是用這個(gè)框架操作的,感興趣想要詳細(xì)了解可以參考下文2023-05-05Java棧之鏈?zhǔn)綏4鎯?chǔ)結(jié)構(gòu)的實(shí)現(xiàn)代碼
這篇文章主要介紹了Java棧之鏈?zhǔn)綏4鎯?chǔ)結(jié)構(gòu)的實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-04-045種必會(huì)的Java異步調(diào)用轉(zhuǎn)同步的方法你會(huì)幾種
這篇文章主要介紹了5種必會(huì)的Java異步調(diào)用轉(zhuǎn)同步的方法你會(huì)幾種,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12SpringBoot如何統(tǒng)一處理返回結(jié)果和異常情況
這篇文章主要介紹了SpringBoot如何統(tǒng)一處理返回結(jié)果和異常情況問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05SpringBoot實(shí)現(xiàn)RabbitMQ監(jiān)聽消息的四種方式
本文主要介紹了SpringBoot實(shí)現(xiàn)RabbitMQ監(jiān)聽消息的四種方式,包括@RabbitListener,MessageListener接口,MessageListenerAdapter適配器,@RabbitHandler這幾種,感興趣的可以了解一下2024-05-05SpringBoot實(shí)現(xiàn)發(fā)送驗(yàn)證碼功能(圖片驗(yàn)證碼)
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)發(fā)送驗(yàn)證碼功能(圖片驗(yàn)證碼),本次內(nèi)容主要學(xué)習(xí)如何做一個(gè)發(fā)送驗(yàn)證碼和識(shí)別驗(yàn)證碼的功能,需要的朋友可以參考下2024-06-06java通過(guò)isAccessAllowed方法實(shí)現(xiàn)訪問(wèn)控制
在Web應(yīng)用開發(fā)中,使用Apache Shiro框架的isAccessAllowed方法可以有效管理用戶的訪問(wèn)權(quán)限,本文詳細(xì)解析了該方法的實(shí)現(xiàn)過(guò)程,包括用戶身份驗(yàn)證、權(quán)限判斷和安全性分析,下面就一起來(lái)了解一下2024-09-09IDEA下SpringBoot指定配置文件啟動(dòng)項(xiàng)目的全過(guò)程
我們?cè)谑褂胹pringboot項(xiàng)目開發(fā)的時(shí)候,每次切換環(huán)境跑項(xiàng)目的時(shí)候,都得修改配置文件的數(shù)據(jù)庫(kù)地址,這樣來(lái)回修改感覺很麻煩,這篇文章主要給大家介紹了關(guān)于IDEA下SpringBoot指定配置文件啟動(dòng)項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-06-06