作者:在峰
MySQL 作为最风行的关系型数据库管理系统之一,十分多零碎的后端存储都有着 MySQL 的身影,堪称是广泛应用于各行各业。与此同时,数据库作为应用服务的外围组件,间接影响着应用服务运行。数据库的瓶颈往往也是整个零碎的瓶颈,其重要性显而易见,所以对于 MySQL 的监控必不可少,及时发现 MySQL 运行中的异样,能够无效进步零碎的可用性和用户体验。因而,观测 MySQL 要害指标,实时关注数据库的可用性与性能,成为运维团队的重要工作。
要害指标解读
在构建 MySQL 的指标观测体系前,咱们须要梳理在日常运维过程中所关注的维度与指标,做到对症下药。Google 提出系统监控的 Latency,Traffic,Saturation,Errors 作为黄金指标。而 MySQL 作为资源类服务零碎呈现,咱们将之进行细化,从可用性、数据库连贯、查问、流量、文件五大维度动手。
基于 Prometheus 的指标观测 & 告警体系搭建
在设计好所需观测指标后,咱们就能够抉择相应的观测工具。作为最风行的数据库,MySQL 有着十分丰盛的监控工具抉择,比方 MySQL Enterprise Monitor、Prometheus 等数据库自带、商业、开源不同属性的工具。
而云原生时代,为了开源敌对、防止厂商锁定、构建多云全栈可观测体系等企业级诉求,Prometheus 成为了 MySQL 指标监控的最佳抉择,并领有社区专门为采集 MySQL 数据库监控指标而设计开发的 MySQL Exporter。
相较于自建 Prometheus,须要部署 Exporter、传入 MySQL 实例的连贯信息,配置服务发现,再建设大盘。阿里云 Prometheus 监控一键集成 MySQL Exporter,并提供开箱即用的专属监控大盘、告警,将诸多配置与操作实现白屏化,尽可能简化配置服务接入工作量。
并基于阿里云本身实际,将常见的 MySQL 告警规定制作成预置模板,帮忙运维团队疾速搭建起指标看板与告警体系,不必再苦恼于提炼本身教训或告警指标的抉择上。
- MySQL 停机 :如果该指标值是 0 示意以后数据库未在失常运行,为 1 示意失常,能够通过 ${instance} 针对具体的实例告警;
mysql_up{${instance}} != 1
- MySQL 实例运行时长 :Prometheus 监控服务提供了默认的告警阈值,监控运行少于半小时的 MySQL 实例,用户能够依据本人的须要批改阈值;
-
mysql_global_status_uptime{${instance}} < 1800
- MySQL 实例慢查问 :该指标能够作为判断以后数据库是否存在 sql 语句须要优化等问题;
rate(mysql_global_status_slow_queries{${instance}}[5m]) > 0
- MySQL 谬误连接数 :连贯谬误是数据库中的次要谬误之一,通过 Prometheus 监控服务提供的告警规定,当触发告警时,用户可能承受谬误类型、查问次数等告警信息;
rate(mysql_global_status_connection_errors_total{${instance}}[5m]) > 0
- MySQL 连贯使用率 :当呈现时连贯谬误告警时,大部分起因是因为连接数有余,能够通过查看 MySQL 连贯使用率进一步排查问题。
100 * mysql_global_status_threads_connected{${instance}}
/ mysql_global_variables_max_connections{${instance}} > 90
注:当使用率达到肯定的阈值时,MySQL 实例开始回绝连贯,能够通过扩充连接数来解决问题。但在进步连接数之前,请务必通过以下语句查看以后零碎可关上的文件数:
mysql_global_variables_open_files_limit - mysql_global_variables_innodb_open_files
- MySQL 日志等待时间
rate(mysql_global_status_innodb_log_waits{${instance}}[5m])
最佳实际
前置条件
- 开明阿里云 Prometheus 监控服务;
- 装置阿里云 Prometheus 实例 (Prometheus for 容器服务、Prometheus for ECS),详情参见:创立 Prometheus 实例;
- 筹备 MySQL 实例连贯信息,包含 Mysql 地址、MySQL 端口、用户名和明码;
集成核心装置 MySQL 监控
- 登录 Prometheus 控制台
- https://common-buy.aliyun.com…
- 单击具体的 Prometheus 实例并进入到集成核心,抉择装置 MySQL;
- 输出 Mysql 地址、MySQL 端口、用户名和明码;
注:能够通过连贯测试查看连通性
- 装置胜利后,能够查看大盘、指标、target 等信息,并且配置相干告警;
MySQL 监控告警配置
阿里云 Prometheus 监控服务针对 MySQL 集成,围绕着热点指标提供了若干项默认的 Prometheus 告警规定。
- 装置 MySQL 监控之后,能够通过 MySQL 集成 – 告警 – 创立告警规定进行创立;
- 填写告警名称、抉择告警分组、所需的告警指标以及筛选条件。
MySQL 监控大盘
Prometheus 监控服务围绕热点指标创立了 MySQL 监控大盘,通过监控大盘用户能够查看可用性、数据库查问、网络流量、连贯、内存等监控数据;
- 可用性、QPS 和数据库连贯
- 数据库查问
- 流量和内存应用
- 文件
对于阿里云 Prometheus 监控
阿里云 Prometheus 服务是基于云原生可观测事实标准 – Prometheus 开源我的项目构建的全托管观测服务。默认集成常见云服务,兼容支流开源组件,全面笼罩业务观测 / 应用层观测 / 中间件观测 / 零碎层观测。通过开箱即用的 Grafana 看板与智能告警性能,并全面优化探针性能与零碎可用性,帮忙企业疾速搭建一站式指标可观测体系。助业务疾速发现和定位问题,加重故障给业务带来的影响,并免去零碎搭建与日常保护工作量,无效晋升运维观测效率。
与此同时,阿里云 Prometheus 作为阿里云可观测套件的重要组成部分,与 Grafana 服务、链路追踪服务,造成指标存储剖析、链路存储剖析、异构构数据源集成的可观测数据层,同时通过规范的 PromQL 和 SQL,提供数据大盘展现,告警和数据摸索能力。为 IT 老本治理、企业危险治理、智能运维、业务连续性保障等不同场景赋予数据价值,让可观测数据真正做到不止于观测。
点击此处查看 Prometheus 监控服务