龙果开源运维项目地址:https://github.com/roncoo/roncoo-cmdb


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