阿里云官网镜像站: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/...