跳转至

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 常用操作


5分钟,开启你的跨云监控之旅 (`⌄´ )


常见问题