一、监控采集依据:主要基于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筛选出我们要的值。