mysql监控详解

一、监控采集依据:主要基于show global status对数据进行采集:

二、对用户进行授权,然后使用show global status进行采集分析。

mysql -uroot -p”xxxx” -e “show global status” ###查看所有的值

监控项注释:

Aborted_clients ##客户端不能正常连接,失败的连接数量。

Aborted_connects ##客户端中断数量,可能有恶意连接。

###吞吐量

Bytes_received ##从所有客户端接收到的字节数。

Bytes_sent ##发送给所有客户端的字节数。

###com admin 语句执行数量

Com_commit ##统计提交语句次数

com_delete ##统计删除语句

com_delete_multi ##最小

com_insert ##统计插入语句

com_rollback ##事务回滚

Connections ##不管是否成功连接到mysql的个数

###临时表数量

Created_tmp_disk_tables ##服务器创建的临时表数量

Created_tmp_files ##已经创建的临时文件数量

Created_tmp_tables ##服务器执行语句时自动创建的内存中的临时表的数量。如果Created_tmp_disk_tables较大,你可能要增加tmp_table_size值使临时表基于内存而不基于硬盘。

##后台预读线程读取到Innodb缓冲池的页的数量

Innodb_buffer_pool_reads ##不能满足InnoDB必须单页读取的缓冲池中的逻辑读数量。

Innodb_buffer_pool_read_ahead ##预读的次数

Innodb_buffer_pool_read_requests ##从缓冲池中读取的页的次数

*缓冲池的命中率=

innodb_buffer_pool_read_requests/(innodb_buffer_pool_read_requests+innodb_buffer_pool_read_ahead+innodb_buffer_pool_reads)

innodb_data_read 总共读入的字节数;

innodb_data_reads 发起读取请求的次数,每次读取可能需要读取多个页。

*平均每次读取的字节数=innodb_data_read/innodb_data_reads

Innodb_rows_deleted ##执行deleted操作的次数

Innodb_rows_inserted ##执行insert操作的次数

Innodb_rows_read ##执行select操作的次数

Innodb_rows_updated ##执行update操作的次数

###针对MyISAM引擎:

key_buffer_size ##缓冲池大小

Key_blocks_unused ##未使用的缓存簇(blocks)数

Key_blocks_used ##表示曾经用到的最大的blocks数

* 这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过渡索引了,把缓存占满了,理想设置:

Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 80%

Key_reads ##在内存中没有找到直接从硬盘读取索引

Key_read_requests ##一共索引请求

* 计算索引未名字概率:

key_cache_miss_rate = Key_reads / Key_read_requests * 100%

###Qcache查询缓冲区:

Qcache_free_blocks ##Query Cache 中目前还有多少剩余的blocks

Qcache_free_memory ##Query Cache 剩余的内存大小

Qcache_hits ##多少次命中

Qcache_inserts ##多少次未命中的插入: Qcache_hits / ( Qcache_hits + Qcache_inserts )

Qcache_lowmem_prunes ##多少条Query 因为内存不足而被清除出Query Cache

Qcache_not_cached ##因为query_cache_type 的设置或者不能被cache 的Query 的数量;

Qcache_queries_in_cache ##当前Query Cache中的cache 的Query数量

Slow_queries ##慢查询

Sort_range ##通过range scan 完成的排序总次数

Sort_rows ##排序总行数

Sort_scan ##通过扫描完成的排序总次数

Table_locks_immediate ##可以立即获取锁的查询次数。

Table_locks_waited ##不能立即获取锁的查询次数。

Uptime ##mysql 运行时长

三、zabbix agnet自定义key:

UserParameter=mysql[*],mysql -uroot -pxxx -e “show global status”|grep “$1” | cut -f2

Mysql[Uptime]

Grep uptime | cut -f2

Myslq[Table_locks_waited]

注释:通过key传回的值,$1筛选出我们要的值。

本文内容整理自龙果学院《Zabbix3.0入门生产环境应用实战》课程资料

    原文作者:清风
    原文地址: https://zhuanlan.zhihu.com/p/22928114
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞