MySQL
MySQL 是一个开放源码的小型关系型数据库管理系统。由于其体积小、速度快、总体拥有成本低,尤其是开源这一特点,目前被广泛地应用在中小型网站中。
Cloud Insight 通过授权监控 MySQL 数据库的操作情况,可视化 MySQL 性能状态。
性能指标
Cloud Insight 采集 MySQL 以下性能指标:
指标 | 单位 | 具体含义 |
---|---|---|
mysql.galera.wsrep_cluster_size | nodes | 在 Galera 集群中的节点数. |
mysql.innodb.buffer_pool_free | pages | InnoDB 缓冲池空闲页面数 |
mysql.innodb.buffer_pool_total | pages | InnoDB 缓冲池的总页数 |
mysql.innodb.buffer_pool_used | pages | InnoDB 缓冲池中已使用的页数 |
mysql.innodb.buffer_pool_utilization | fractions | InnoDB 的缓冲池的利用率 |
mysql.innodb.current_row_locks | locks | The number of current row locks. |
mysql.innodb.data_reads | reads/second | 数据的读取速率 (读的次数/s) |
mysql.innodb.data_writes | writes/second | 数据的写速率 (写的次数/s) |
mysql.innodb.mutex_os_waits | events/second | The rate of mutex OS waits. |
mysql.innodb.mutex_spin_rounds | events/second | The rate of mutex spin rounds. |
mysql.innodb.mutex_spin_waits | events/second | The rate of mutex spin waits. |
mysql.innodb.os_log_fsyncs | writes/second | fsync 写入日志文件的速率(写的次数/s) |
mysql.innodb.row_lock_time | fractions | 花费在 acquring 行锁上的时间(millisecond/s) |
mysql.innodb.row_lock_waits | events/second | 行锁每秒要等待的次数(event/s) |
mysql.net.connections | connections/second | 连接到服务器的速率(连接数量/s) |
mysql.net.max_connections | connections | 服务器启动同时使用的最大数目连接数 |
mysql.performance.com_delete | queries/second | 删除语句的速率(次数/s) |
mysql.performance.com_delete_multi | queries/second | 删除多语句的速率(次数/s) |
mysql.performance.com_insert | queries/second | 插入语句的速率(次数/s) |
mysql.performance.com_insert_select | queries/second | 插入 SELECT 语句的速率(次数/s) |
mysql.performance.com_replace_select | queries/second | 代替 SELECT 语句的速度(次数/s) |
mysql.performance.com_select | queries/second | SELECT 语句的速度(次数/s) |
mysql.performance.com_update | queries/second | 更新语句的速度(次数/s) |
mysql.performance.com_update_multi | queries/second | 更新多语句的速度(次数/s) |
mysql.performance.created_tmp_disk_tables | tables/second | 执行语句时每秒创建的服务器内部磁盘上的临时表的数量 (表数量/s) |
mysql.performance.created_tmp_files | files/second | 每秒创建临时文件的数量 (文件数/s) |
mysql.performance.created_tmp_tables | tables/second | 每秒执行语句时创建的服务器内部临时表的数量(表数量/s) |
mysql.performance.kernel_time | percent | MySQL 在内核空间中花费的 CPU 时间占比 |
mysql.performance.key_cache_utilization | fractions | 键缓存利用率 (百分比) |
mysql.performance.open_files | files | 打开的文件数 |
mysql.performance.open_tables | tables | 打开的表数量 |
mysql.performance.qcache_hits | hits/second | 查询缓存命中率 |
mysql.performance.queries | queries/second | 查询的速率 (次数/s) |
mysql.performance.questions | queries/second | 服务器执行的语句的速率(次数/s) |
mysql.performance.slow_queries | queries/second | 慢查询的速率(次数/s) |
mysql.performance.table_locks_waited | 由于表锁定请求无法处理需要等待的总次数 | |
mysql.performance.threads_connected | connections | 当前打开的连接的数量 |
mysql.performance.threads_running | threads | 正在运行的线程数 |
mysql.performance.user_time | percent | MySQL 在用户空间中花费的 CPU 时间占比 |
mysql.replication.seconds_behind_master | seconds | 主服务器(master)和从服务器(slave)之间的滞后时间 |
mysql.replication.slave_running | 一个布尔值,判断该服务器是否为连接到主服务器(master)的从服务器(slave) |
配置 MySQL 监控
创建 Cloud Insight 访问权限
为您的 MySQL 服务器建立 Cloud Insight 访问权限。
sudo mysql -e "CREATE USER 'cloudinsight'@'localhost' IDENTIFIED BY 'YourPassword';"
sudo mysql -e "GRANT PROCESS, REPLICATION CLIENT ON *.* TO 'cloudinsight'@'localhost' WITH MAX_USER_CONNECTIONS 5;"
sudo mysql -e "GRANT SELECT ON performance_schema.* TO 'cloudinsight'@'localhost';"
您可以通过以下指令,查看用户是否创建成功,权限是否正确。
mysql -u cloudinsight --password=YourPassword -e "SHOW /*!50000 ENGINE*/ INNODB STATUS" | \
grep Uptime && echo -e "\033[0;32mMySQL user - OK\033[0m" || \
echo -e "\033[0;31mCannot connect to MySQL\033[0m"
mysql -u cloudinsight --password=YourPassword -e "show slave status" && \
echo -e "\033[0;32mMySQL grant - OK\033[0m" || \
echo -e "\033[0;31mMissing REPLICATION CLIENT grant\033[0m"
编辑配置文件
编辑配置文件 conf.d/mysql.yaml,使 Cloud Insight Agent 可以与 MySQL 通信。
init_config:
instances:
- server: localhost
user: cloudinsight
pass: YourPassword
tags:
- tag_key1:tag_value1
- tag_key2:tag_value2
options:
replication: 0
galera_cluster: 1
重启 Agent
重启 Cloud Insight Agent,使配置生效。
您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功。
Checks
======
[...]
mysql
-----
- instance #0 [OK]
- Collected 8 metrics & 0 events
有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作。
常见问题
- 配置
yaml
文件出错导致数据一直在加载中 - MySQL 异常报错
- MySQL 主从复制
- 若要在同一个服务器上监控多个相同的平台服务,参考如何监控多个平台服务。
- 有任何关于产品的使用疑惑,参考常见问题。