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

  1. 云栖社区>
  2. 阿里云InfluxDB®>
  3. 博客>
  4. 正文

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

dengzhi 2019-11-01 14:43:26 浏览1464

目前阿里云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
选择机器执行上面命令安装采集工具,刷新后便可在采集源列表中看到该采集源,点击“选择采集配置”配置所要采集的对象:


9806a4b4e8d8f24f7be26642b108d61ea24e5e6cdd94f9aa0e669e0c9ba28b355af62e1a98b82820

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

自建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用户和数据源。


1018a272d6e712d0dc1944e1df395f6dfb8c0968ab7116b847e7eb680ea09d9e40dd2bf68a14333d

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

总结

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

参考文献

  1. 5分钟快速完成系统监控搭建实践
  2. 阿里云InfluxDB®数据采集服务介绍
  3. 从采集到分析-TSDB For InfluxDB®让你的数据产生价值
  4. MySQL采集指标说明