阿里云InfluxDB®采集监控MySQL实践

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 阿里云InfluxDB®已经集成TIG(Telegraf/InfluxDB/Grafana)生态,正在开展首月一元购活动,广泛应用于DevOps监控、车联网、智慧交通、金融和IOT传感器数据采集等领域。

目前阿里云InfluxDB®已经集成TIG(Telegraf/InfluxDB/Grafana)生态,正在开展首月一元购活动。
image
MySQL采用TIG Stack监控架构如下,本文主要指导如何采集MySQL指标到阿里云InfluxDB®,通过Grafana仪表盘分析采集数据并展示。
image

数据采集

阿里云InfluxDB®的数据采集分为两种:阿里云InfluxDB®数据采集服务自建Telegraf数据采集

MySQL采集指标说明

Telegraf采集Mysql指标数据可以分为以下六类,在不同的MySQL服务器上所采集到的measurement或field会略有不同,具体可以参考官方文档

measurement 采集数据
mysql 记录在MySQL上执行SHOW GLOBAL STATUSES和SHOW SLAVE STATUSES后所得到的状态信息,包括global status和slave status(如有)。每个状态信息是mysql中的一个field,各个状态的解释可查看文档。
mysql_variables 记录在MySQL上执行SHOW GLOBAL VARIABLES后所得到的全局变量值。每个变量值是mysql_variables中的一个field,各个变量的解释可查看文档。
mysql_process_list 根据MySQL中的表格INFORMATION_SCHEMA.PROCESSLIST,采集每个用户在不同状态下的线程数量。可查考MySQL文档
mysql_users 采集每个用户的连接数。
mysql_user_statistics 采集每个用户的统计信息。
mysql_table_schema 采集自增(auto-increment)列的值。
mysql_innodb 采集MySQL的INFORMATION_SCHEMA.INNODB_METRICS表中状态为开启的计数器(counter)的值。INFORMATION_SCHEMA.INNODB_METRICS提供InnoDB的性能信息,该表包含很多计数器。

阿里云InfluxDB®采集服务

目前阿里云InfluxDB®的控制台提供了MySQL数据采集服务,用户提供采集源信息,根据提示安装相应插件,便可自动采集MySQL指标数据到阿里云InfluxDB®,详见文档

添加采集配置

image

  • 采集源连接串:格式是[protocol[(address)]]/[?tls=[true|false|skip-verify|custom],具体可以参考 https://github.com/go-sql-driver/mysql#dsn-data-source-name。如某需要采集的对象是云上MySQL实例,对外访问地址是:xxxx.mysql.rds.aliyuncs.com,采用https协议,则采集源连接串为:tcp(xxxx.mysql.rds.aliyuncs.com:3306)/?tls=false
  • 采集源用户名/密码:采集工具连接MySQL实例的用户名与密码,填写时需要保证在采集工具所安装的机器上,采集用户名通过采集源填写的连接方式能成功连接MySQL实例;
  • 授权帐号/密码:数据写入InfluxDB的用户名与密码;
  • 数据写入DB/存储策略:数据写入InfluxDB库名,填写时必须保证授权帐号对写入InfluxDB数据库有读写权限,相关设置可以参考文档

添加采集源

image
公网与专用网络的区别是采集工具向阿里云InfluxDB®发送数据数据走公网或者专有网络链路,在添加前需要在控制台网络白名单中添加采集工具安装工具机器出口IP,以确保采集工具能够成功与阿里云InfluxDB®建立连接。
image
选择机器执行上面命令安装采集工具,刷新后便可在采集源列表中看到该采集源,点击“选择采集配置”配置所要采集的对象:


9806a4b4e8d8f24f7be26642b108d61ea24e5e6c dd94f9aa0e669e0c9ba28b355af62e1a98b82820

最后点击“完成并启动采集”开启采集任务。

自建Telegraf采集

自建Telegraf采集需要下载Telegraf并配置相关采集信息,详见文档

Telegraf安装

Telegraf官方介绍了各种下载安装的方法,根据自己的系统版本和配置,下载对应的安装包安装。
image

Telegraf input配置

Telegraf input配置主要是配置采集源相关配置信息,填写时需要保证Mysql用户在Telegraf安装机器上能连接server中填写的mysql实例。

[[inputs.mysql]]
  servers = ["mysqlUser:mysqlPassword@tcp(xxxx.mysql.rds.aliyuncs.com:3306)/?tls=false"]
  metric_version = 2
  perf_events_statements_digest_text_limit  = 120
  perf_events_statements_limit              = 250
  perf_events_statements_time_limit         = 86400
  table_schema_databases                    = []
  gather_table_schema                       = false
  gather_process_list                       = true
  gather_user_statistics                    = false
  gather_info_schema_auto_inc               = true
  gather_innodb_metrics                     = true
  gather_slave_status                       = true
  gather_binary_logs                        = false
  gather_table_io_waits                     = false
  gather_table_lock_waits                   = false
  gather_index_io_waits                     = false
  gather_event_waits                        = false
  gather_file_events_stats                  = false
  gather_perf_events_statements             = false
  interval_slow                   = "30m"

Telegraf output配置

Telegraf output配置主要是配置写入阿里云InfluxDB®相关信息,填写时需要保证数据库已经创建,相应的用户对数据库有读、写权限。相关示例如下:

[[outputs.influxdb]]
 urls = ["https://xxxx.influxdata.rds.aliyuncs.com:3242"]
 database = "mysql"
 skip_database_creation = true
 retention_policy = "autogen"
 username = "InfluxDBUserName"
 password = "InfluxDBPassword"

数据展示

当前阿里云InfluxDB®的最新版本已经集成了TIG生态,用户可以在控制台添加Grafana用户和数据源。


1018a272d6e712d0dc1944e1df395f6dfb8c0968 ab7116b847e7eb680ea09d9e40dd2bf68a14333d

以上面采集MySQL指标为例,建立下面所示仪表盘:
image
用户可以自建或者在Grafana官方社区导入仪表盘模板,这里选取导入的模板ID为 2765,选择对应的数据源,生成的报表如下所示:
image

总结

目前阿里云InfluxDB®已经商业化一段时间,我们在优化性能的同时也保证提供稳定的服务。阿里云InfluxDB®在DevOps监控、车联网、智慧交通、金融和IOT传感器数据采集分析方面有广泛的用途,相比于开源InfluxDB也具有不少优势,欢迎用户购买体验

参考文献

  1. 5分钟快速完成系统监控搭建实践
  2. 阿里云InfluxDB®数据采集服务介绍
  3. 从采集到分析-TSDB For InfluxDB®让你的数据产生价值
  4. MySQL采集指标说明
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
安全 关系型数据库 MySQL
PHP与MySQL交互:从入门到实践
【9月更文挑战第20天】在数字时代的浪潮中,掌握PHP与MySQL的互动成为了开发动态网站和应用程序的关键。本文将通过简明的语言和实例,引导你理解PHP如何与MySQL数据库进行对话,开启你的编程之旅。我们将从连接数据库开始,逐步深入到执行查询、处理结果,以及应对常见的挑战。无论你是初学者还是希望提升技能的开发者,这篇文章都将为你提供实用的知识和技巧。让我们一起探索PHP与MySQL交互的世界,解锁数据的力量!
|
11天前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
18天前
|
关系型数据库 MySQL Java
MySQL索引优化与Java应用实践
【11月更文挑战第25天】在大数据量和高并发的业务场景下,MySQL数据库的索引优化是提升查询性能的关键。本文将深入探讨MySQL索引的多种类型、优化策略及其在Java应用中的实践,通过历史背景、业务场景、底层原理的介绍,并结合Java示例代码,帮助Java架构师更好地理解并应用这些技术。
22 2
|
29天前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
73 3
|
28天前
|
存储 监控 关系型数据库
MySQL自增ID耗尽解决方案:应对策略与实践技巧
在MySQL数据库中,自增ID(AUTO_INCREMENT)是一种特殊的属性,用于自动为新插入的行生成唯一的标识符。然而,当自增ID达到其最大值时,会发生什么?又该如何解决?本文将探讨MySQL自增ID耗尽的问题,并提供一些实用的解决方案。
37 1
|
7天前
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效交互:从基础到实践####
本文深入探讨了PHP与MySQL数据库之间的高效交互技术,涵盖了从基础连接到高级查询优化的全过程。不同于传统的摘要概述,这里我们直接以一段精简代码示例作为引子,展示如何在PHP中实现与MySQL的快速连接与简单查询,随后文章将围绕这一核心,逐步展开详细讲解,旨在为读者提供一个从入门到精通的实战指南。 ```php <?php // 数据库配置信息 $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "test_db"; // 创建连接 $conn = new mysqli($se
13 0
|
1月前
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
|
1月前
|
缓存 监控 关系型数据库
如何根据监控结果调整 MySQL 数据库的参数以提高性能?
【10月更文挑战第28天】根据MySQL数据库的监控结果来调整参数以提高性能,需要综合考虑多个方面的因素
78 1
|
1月前
|
监控 关系型数据库 MySQL
如何监控和诊断 MySQL 数据库的性能问题?
【10月更文挑战第28天】监控和诊断MySQL数据库的性能问题是确保数据库高效稳定运行的关键
87 1
|
2月前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:百万级数据统计优化实践
【10月更文挑战第21天】 在处理大规模数据集时,传统的单体数据库解决方案往往力不从心。MySQL和Redis的组合提供了一种高效的解决方案,通过将数据库操作与高速缓存相结合,可以显著提升数据处理的性能。本文将分享一次实际的优化案例,探讨如何利用MySQL和Redis共同实现百万级数据统计的优化。
97 9