关于mysql:用SkyWalking监控MySQL一工具与方案

2次阅读

共计 1802 个字符,预计需要花费 5 分钟才能阅读完成。

本文实用于 SkyWalking v9.1.0。

SkyWalking 简介

SkyWalking 是一个分布式系统的应用程序性能监督(APM)工具,专为微服务、云原生架构和基于容器(K8s)架构而设计。以后版本具备了全门路跟踪、指标采集、日志记录等性能,并对多种编程语言及平台(Java/C/C++/Go/Rust/Node/PHP 等)提了采集代理(agent),并对 service mesh(stio + Envoy)提供反对。

SkyWalking 的比照其余罕用监控工具 Zabbix、Prometheus、ELK、Zipkin、Jaeger 等有以下特点:

长处

1,一站式全功能的解决方案,反对全门路跟踪、指标采集和日志记录。
以后版本仍需依赖内部存储组件(H2/MySQL/PostgreSQL/Elasticsearch)。我的项目自带的 BanyanDB 正在踊跃研发中,正式公布后可不再依赖内部存储。

2,非侵入式为主的指标采集形式,个别不须要代码级的调整,对几十种支流 java 组件都有官网插件反对。Java 程序通过 javaagent+bytebuddy 实现动静生成监控插件,Native 利用则通过 ebpf 实现相似性能。

3,标准协议的反对,反对 OpenTelemetry、Kafka、estapi、Zabbix 多种行业标准或者事实标准的接入,不便各种利用的对接。

4,微服务和云原生的反对,对基于容器(K8s+Java)的全链路监控,反对 ebpf agent 通过 sidecar 注入。

毛病

1 agent 不够欠缺,OpenTelemetry 采集形式目前须要用 Prometheus node expoter 采集,再通过 Opentelemetry collector 转换后导出传导 SkyWalking oap.

2 比 Zabbix 等传统监控工具短少主动探测和资产治理性能,减少自定义监控指标须要手工批改 MAL 配置文件,不能通过 UI 配置。

3 官网文档不欠缺,只是相当于参数手册加性能列表,但不足各种监控场景的配置指引。

4 ebpf agent 尽管是亮点但实现很高级,最新公布版(0.2.0)只反对 cpu profiling。git 最新代码已减少 network profiling。性能均为 go 和 c 混合的硬编实现,用户自行扩大不便。硬编码的 ebpf 代码也导致对 linux 内核的兼容性差。gcc4.5+ 在不同的优化级别(O?)产生的符号命名不一样,会导致 ebpf 启动失败。

MySQL 的监控计划

监控项类别 监控项 监控形式
主机或 vm 的 OS 指标 cpu 内存 磁盘 Zabbix agent/Prometheus exporter + otl collect
MySQL 日志 日志文件 Filebeat httpoutput + SkyWalking http json api
ebpf cpu/network profile, sql query, fs profile(etx4/xfs) ebpf agent(skeywalking ravor), 除 cpu profile 外要自行扩大
jdbc client virtual db, 连接池状态等 Java agent

通过以上各种维度的监控能够全面把握 MySQL 的运行状态,并能在呈现性能问题时通过 ebpf agent(Ravor)近程执行 profiling 剖析。基于 ebpf 的监控形式在 DBaaS-MySQL 容器化部署的形式下十分不便而且性能影响也最小。

限于篇幅起因,在后续的文章中会具体解说每种监控形式的配置和相干扩大代码。

Enjoy GreatSQL :)

文章举荐:

乏味的 SQL DIGEST

ulimits 不失效导致数据库启动失败和相干设置阐明
MGR 及 GreatSQL 资源汇总

GreatSQL MGR FAQ

在 Linux 下源码编译装置 GreatSQL/MySQL

## 对于 GreatSQL

GreatSQL 是由万里数据库保护的 MySQL 分支,专一于晋升 MGR 可靠性及性能,反对 InnoDB 并行查问个性,是实用于金融级利用的 MySQL 分支版本。

Gitee:
https://gitee.com/GreatSQL/GreatSQL

GitHub:
https://github.com/GreatSQL/GreatSQL

Bilibili:
https://space.bilibili.com/1363850082/favlist

技术交换群:

微信:扫码增加 GreatSQL 社区助手 微信好友,发送验证信息 加群

正文完
 0