MySQL 运维实战课
张新铭(俊达)
云掣科技资深数据库专家,前淘宝网、支付宝数据库专家
1177 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 46 讲/共 50 讲
MySQL 运维实战课
15
15
1.0x
00:00/00:00
登录|注册

44|如何搭建一个 MySQL 监控平台?

你好,我是俊达。
整个专栏到这儿,差不多也快结束了。这一讲中,我们来聊一聊,MySQL 的监控怎么做。把监控放到专栏的最后,其实也有一定的原因。当你对整个 MySQL 的体系结构和运行环境有了全面的了解后,就能更好地理解 MySQL 需要监控什么。

监控什么?

我们期望一个监控系统,能给我们提供哪些价值呢?
首先是可用性监控。如果数据库无法连接上,或者无法正常执行基本的 SQL 语句,或者执行 SQL 的速度很慢,或者有大量业务 SQL 积压,要能及时通知到运维人员,以便于运维人员快速响应并恢复服务,减少对业务的影响。
其次,监控系统要将数据库运行环境和内部的一些关键运行信息采集下来。这里的运行信息,包括 MySQL 运行环境(操作系统)的监控数据,也包括 MySQL Server 层和 InnoDB 存储引擎的一些状态变量、数据库的会话信息、事务和锁的信息、数据库中执行过的 SQL 语句等。当应用程序访问数据库出现异常后,我们要分析出问题背后的根本原因。对于一些偶发的问题,如果缺少详细的监控数据,有时会很难分析出问题的真正原因。
最后,从监控数据也能分析出业务的一些运行趋势,我们可以对业务的增长做出一些评估,规划数据库系统的容量。
我们先来看一下上面提到的这些监控数据,具体怎么采集。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. MySQL监控的重要价值包括可用性监控、数据库运行环境和内部关键运行信息的采集、分析业务运行趋势以及规划数据库系统容量。 2. 可用性监控通过定时连接数据库、执行简单SQL语句来检测数据库连接和执行速度,及时通知运维人员以减少对业务的影响。 3. 通过采集MySQL的状态变量和一些系统命令,可以获取数据库的内部运行信息,包括操作系统监控数据、MySQL Server层和InnoDB存储引擎的状态变量、数据库的会话信息、事务和锁的信息等。 4. 备库状态和复制延迟监控可以通过show slave status或show replica status命令采集,同时需要关注MGR集群成员的状态、角色以及事务接收和应用延迟。 5. 会话和事务信息的监控对于排查一些问题具有重要作用,可以采集ProcessList中运行时间超过一定阈值的会话以及InnoDB存储引擎中的长事务信息。 6. SQL语句的监控对于深入了解业务流程在数据库层面的执行情况和确定引起数据库性能问题的原因至关重要,可以通过采集慢SQL日志或使用performance_schema来获取SQL运行信息。 7. 通过performance_schema的events_statements_summary_by_digest表,可以获取SQL语句的一些汇总信息,包括SQL文本的Hash值、执行次数、执行时间等。 8. 监控系统需要采集更多的指标,以帮助分析问题和评估业务增长,但需要注意对采集的数据进行合理处理和解析。 9. 监控系统的建立需要综合考虑数据库的整体运行环境和业务需求,以便更好地发现和解决问题,提高数据库的稳定性和性能. 10. 使用Prometheus和Grafana搭建MySQL监控系统,以及使用Percona PMM监控MySQL是两种基于开源工具的监控方案。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《MySQL 运维实战课》
新⼈⾸单¥59
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部