MySQL¶
视图预览¶
MySQL 指标展示,包括 MySQL 的基础信息、链接信息、存储空间信息、innoDB 信息、性能信息、锁信息以及日志信息等。
版本支持¶
操作系统支持:Windows/AMD 64, Windows/386, Linux/ARM, Linux/ARM 64, Linux/386, Linux/AMD 64, Darwin/AMD 64
安装部署¶
MySQL 指标采集,收集以下数据:
- MySQL global status 基础数据采集
- Scheam 相关数据
- InnoDB 相关指标
- 支持自定义查询数据采集
说明:示例 MySQL 版本为 MySQL 5.7(CentOS),各个不同版本指标可能存在差异。
前置条件¶
- MySQL 版本 5.7+ <安装 DataKit>
- 创建监控账号(一般情况,需用 MySQL
root
账号登陆才能创建 MySQL 用户)
CREATE USER 'datakit'@'localhost' IDENTIFIED BY '<UNIQUEPASSWORD>';
FLUSH PRIVILEGES;
-- MySQL 8.0+ create the datakit user with the native password hashing method
CREATE USER 'datakit'@'localhost' IDENTIFIED WITH mysql_native_password by '<UNIQUEPASSWORD>';
- 授权
GRANT PROCESS ON *.* TO 'datakit'@'localhost';
show databases like 'performance_schema';
GRANT SELECT ON performance_schema.* TO 'datakit'@'localhost';
GRANT SELECT ON mysql.user TO 'datakit'@'localhost';
GRANT replication client on *.* to 'datakit'@'localhost';
FLUSH PRIVILEGES;
以上创建、授权操作,均限定了 datakit
这个用户的只能在 MySQL 主机上(localhost
)访问 MySQL,如果对 MySQL 进行远程采集,建议将 localhost
替换成 %
(表示 DataKit 可以在任意机器上访问 MySQL),也可用特定的 DataKit 安装机器地址。
注意,如用
localhost
时发现采集器有如下报错,需要将上面的localhost
换成::1
配置实施¶
指标采集 (必选)¶
1、 开启 DataKit MySQL 插件,复制 sample 文件
2、 修改 mysql.conf
配置文件
- host:要采集的 MySQL 所在的服务器
- user:MySQL 数据库用户名(填写前置条件中创建的用户名)
- pass:MySQL 数据库密码 (填写前置条件中创建的用户密码)
- port:MySQL 数据库链接端口
- sock:MySQL 数据库安全认证文件
- charset:MySQL 数据字符集(默认 utf8 可以不做修改)
- connect_timeout:链接超时时间
- interval:指标采集频率
- innodb:开启 innodb 采集
- tables:想要采集 table 的名称(默认不填写全部采集)
- users:想要采集的用户名称(默认不填写全部采集)
[[inputs.mysql]]
host = "localhost"
user = "datakit"
pass = "<PASS>"
port = 3306
# sock = "<SOCK>"
# charset = "utf8"
## @param connect_timeout - number - optional - default: 10s
# connect_timeout = "10s"
## Deprecated
# service = "<SERVICE>"
interval = "10s"
## @param inno_db
innodb = true
## table_schema
tables = []
## user
users = []
- Binlog 开启
默认情况下,MySQL binlog 是不开启的。如果要统计 binlog 大小,需要开启 MySQL 对应 binlog 功能:
3、 重启 DataKit (如果需要开启日志,请配置日志采集再重启)
4、 MySQL 指标采集验证 /usr/local/datakit/datakit -M |egrep "最近采集|mysql"
5、 指标预览
日志采集 (非必选)¶
1、 如需采集 MySQL 的日志,将配置中 log 相关的配置打开,如需要开启 MySQL 慢查询日志,需要开启慢查询日志,在 MySQL 中执行以下语句:
SET GLOBAL slow_query_log = 'ON';
-- 未使用索引的查询也认为是一个可能的慢查询
set global log_queries_not_using_indexes = 'ON';
注意:在使用日志采集时,需要将 DataKit 安装在 MySQL 服务同一台主机中,或使用其它方式将日志挂载到 DataKit 所在机器
2、 修改 mysql.conf
配置文件
参数说明
- files:日志文件路径 (通常填写访问日志和错误日志)
- ignore:过滤 *.log 中不想被采集的日志(默认全采)
- character_encoding:日志文件的字符集(默认 utf-8)
- match:该配置为多行日志采集规则配置,开启 MySQL 慢查询日志请打开注释
- pipeline:日志切割文件(内置),实际文件路径 /usr/local/datakit/pipeline/mysql.p
- 相关文档 <Pipeline 文本数据处理>
[inputs.mysql.log]
## required, glob logfiles
files = ["/var/log/mysql/*.log"]
## glob filteer
#ignore = [""]
## optional encodings:
## "utf-8", "utf-16le", "utf-16le", "gbk", "gb18030" or ""
#character_encoding = ""
## The pattern should be a regexp. Note the use of '''this regexp'''
## regexp link: https://golang.org/pkg/regexp/syntax/#hdr-Syntax
match = '''^(# Time|\d{4}-\d{2}-\d{2}|\d{6}\s+\d{2}:\d{2}:\d{2}).*'''
## grok pipeline script path
pipeline = "mysql.p"
3、 重启 DataKit (如果需要开启自定义标签,请配置插件标签再重启)
4、 MySQL 日志采集验证 /usr/local/datakit/datakit -M |egrep "最近采集|mysql_log"
5、 日志预览
插件标签 (非必选)¶
参数说明
- 该配置为自定义标签,可以填写任意 key-value 值
- 以下示例配置完成后,所有 MySQL 指标都会带有
service = "MySQL"
的标签,可以进行快速查询。 - 相关文档 <TAG 在观测云中的最佳实践>
重启 DataKit
场景视图¶
<场景 - 新建仪表板 - 模板库 - 系统视图 - MySQL 监控视图>
监控规则¶
<监控 - 监控器 - 从模板新建 - MySQL 检测库>
指标详解¶
故障排查¶
<无数据上报排查>