乐趣区

关于阿里云:统一观测丨如何使用-Prometheus-监控-MySQL

作者:在峰

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 监控服务

退出移动版