阿里云官网镜像站:MySQ 镜像源
https://developer.aliyun.com/…
前言
MySQL 是最风行的数据库之一,在大多零碎的后端的存储都有 MySQL 的身影,MySQL 运行的是否衰弱,间接影响着整个零碎的运行,数据库的瓶颈往往也是整个零碎的瓶颈,其重要性显而易见,所以对于 MySQL 的监控必不可少,及时发现 MySQL 运行中的异样,能够无效进步零碎的可用性和用户体验。
本文次要介绍下 MySQL 如何做监控,以及对 Datadog 的 Database Monitoring 的一些简略调研。
监控类型
Google 提出在系统监控中的黄金指标,别离是 Latency,Traffic,Saturation,Errors,MySQL 个别作为资源类服务零碎呈现,在 MySQL 监控中也能够以这些指标为指引来进行指标收集和监控。
黄金指标
- Latency 提早:比方 MySQL 中的查问的提早,一条 Select 语句的提早可能会间接影响用户体验,监控 SQL 语句的均匀提早,P99 提早能够提前发现对系统的影响。
- Traffic:在 MySQL 中,查问的 QPS 是吞吐量的一种指标,比方 MySQL 服务器每秒能够反对多少查问,多少更新,吞吐量的指标也会影响到用户体验。
- Saturation 饱和度:饱和度是指零碎的资源被耗费殆尽的水平,比方在 MySQL 最大连接数为 300,以后连接数曾经达到 240 的状况可能须要引起留神,因为可能在不久的未来会将连接数打满,导致新的连贯进不来,影响下层服务的可用性。
-
Errors 谬误:MySQL 中的 Aborted_clients 和 Aborted_connects 的减少往往象征了应用方在应用的时候呈现了一些谬误,须要引起留神,比方客户端在退出时没有调用 mysql_close 会导致 Aborted_clients 指标的减少,所以监控这个指标对于问题的排查很有帮忙。
MySQL 要害指标类型
黄金指标对于指标的监控有很大的指导意义,然而选取哪些指标,也是值得考量的,这里借用 Datadog 的一篇 MySQL 监控文章来形容 MySQL 监控中的要害指标。从性能和资源应用角度大抵分为 4 类:
• Query throuput:查问吞吐量,次要包含查问的 QPS 和更新 QPS,用来示意提早。
• Query performance: 查问性能,次要包含查问的耗费的均匀工夫,查问谬误指标,慢查问数量,别离蕴含吞吐量和谬误。
• Connections: 连贯,次要包含以后关上连接数和运行连接数示意饱和度。谬误连接数用来示意谬误。
• Buffer pool usage: 缓冲池应用状况,innodb_buffer_pool_reads 示意 InnoDB 缓冲池无奈满足的申请数,计算出的缓冲池中的页面应用数量使用率能够用示意资源的饱和度。
MySQL 监控流程
MySQL 的监控跟其余零碎的监控相似,个别会蕴含指标日志类的数据收集,指标的可视化展现,指标告警,问题的排查等流程。
指标收集
MySQL 的指标类型有很多,能够通过两种形式获取
• 服务外部状态 / 外部变量:个别通过 show status 或者 show variable 来获取,示意全局的一些指标。
• peformance shema 和 sys schema,提供了更加底层的运行时的具体的指标信息。
可视化展现
通过 Agent 将指标数据采集到后端存储中,而后进行可视化展现,可视化仪表盘会将指标的历史值和以后值绘制成曲线,便于查看指标的变动,指标如果有显著的变动,从图表中能够显著的看进去,对于排查问题有肯定的参考意义。
指标异样告警
在某个指标出现异常时,能够配置相应的告警,告警监控能够应用阈值设定或者 AI 算法来自动识别指标的异样,产生的告警能够分不同的重大等级,不同的等级能够配置不同的告诉渠道,比方重大度低的发邮件揭示既能够,对于高重大度的指标异样,配置电话告诉。
通过仪表盘或者告警,能够找到哪个指标呈现了异样,而后依据不同的指标进行不同的排查形式,比方连接数超过最大连接数报警,能够调大数据库的最大连接数或者缩小客户端的连接数。对于更简单的场景,可能须要借助问题产生时其余的日志或者指标进行根因剖析。
接下来以 Datadog 的数据库监控为例,来调研 Datadog 是如何做数据库监控的,文中图片来自 Datadog 官网。
Datadog 数据库监控
指标采集
Agent 端采集
Datadog 的指标采集是通过装置 Agent 来采集,Agent 能够部署在自建机器或者云服务器上,能够连贯到服务器即可。
指标数据
通过装置 Datadog Agent 到数据库所在服务器或者能连贯到数据的服务器上,而后创立一个 datadog 用户,并且给 datadog 赋予肯定的权限如 REPLICATION CLIENT,PROCESS 和 SELECT ON performance_schema.* 的权限。Datadog 为了收集 explain plan 还会创立几个存储过程 explain_statement,enable_events_statements_consumers。
日志数据
Datadog Agent 反对采集 MySQL 服务器端 General 日志、谬误日志、慢日志等,当然前提是 MySQL 服务端开启这些日志存储。
仪表盘
总体指标
MySQL 总览,次要展现了收集的 MySQL 指标的整体态势。
Query Metrics
次要用来展现标准化查问(normalized query)的历史性能指标,能够依照查问数,均匀提早,耗费总工夫,返回行数进行排序。
同时也能够依据标签或聚合维度来展现耗费了最多查问工夫的 Top 查问和提早。依据不同的维度来分组展现每个组的查问数,均匀提早,耗费总工夫。
Query Details
在 Query Metrics 页面搜寻特定的 query,能够查看其 Query Detail 页面,在其中能够查看语句的均匀提早和查问总工夫,同时页面还会展现查问关联的 Datadog 中标签,
查问页面除了提早和耗费工夫等,还会展现执行打算,时序和执行这条查问的主机散布。
• 执行打算页面,会展现不同的执行打算及其提早和均匀耗费。
• 性能指标页面,展现了一些常见指标的性能历史。
• 执行查问的主机散布页面,会展现执行以后查问的主机散布,通过菜单能够链接到主机的相干页面,这对于排查问题比拟不便,比方某个主机上的查问提早十分高,能够间接跳转到改主机的相干仪表盘页面进行查看。
Query Samples
次要蕴含采样查问的性能数据,提早,耗费和执行打算,同时也反对依照 Table 来展现 Top 耗费的查问语句。
告警
Datadog 提供了对于指标的监控告警,次要反对五种监控类型,包含:
• Thresold Alert:阈值监控。
• Change Alert: 事件变更监控。
• Anomaly Dectection:异样检测,应用机器学习算法来判断指标的异样。
• Outlier Alert:离群点检测告警。
• Forecast Alert:预测告警。
总结
本文首先介绍了数据库监控的要害指标和 MySQL 监控的个别流程次要包含指标收集,可视化展现,指标异样告警。而后通过对 Datadog 的数据库监控产品做介绍,除了惯例的总体指标展现,Datadog 的数据库监控还提供了 Query 相干的指标,别离包含 Query Metrics,Query Detail 和 Query Samples,从查问的角度进行监控和剖析统计,除了 Query 级别的指标展现,还包含对执行打算的展现,同时也反对从仪表盘 Drill down 到主机级别查看资源指标,通过这些仪表盘能够比拟不便的看出指标的异样。
本文转自:https://developer.aliyun.com/…