Mysql的性能数据主要靠sql语句"show global status"来获取,获取的两百多个数据中,有很多是很有监控价值的,例如读写比例、sql语句执行次数、innodb相关性能、锁表等等,所以抱着玩玩的心态,自己写了个脚本,用以监控这些性能数据。
200多个数据,假设我们要监控其中的100个,每隔5分钟执行一次,如果一个一个的取,那每5分钟要连100次mysql,这个是比较不划算的,所以想了个办法,只去取一次,然后将取得的所有值保存在本地,再从本地选取需要监控的项。当本地文件过旧的时候,再去取一次,把它覆盖掉。那如果2分钟为过期时间的话,那5分钟内取100个值,只需要连两次mysql就够了。
使用之前,脚本前面的一段临时文件和状态文件的存储位置可根据自己需要修改。
-s参数意思是show status里的变量名,使用的是perl的正规表达式,例如‘Com_insert’代表‘Com_insert’和‘Com_insert_select’,如果只想要insert的话要写成‘Com_insert$’,可以有多个,以‘&’隔开,例如‘Com_insert$&Com_select’。
-w和-c比较复杂,因为监控的项可能不止一个。'
各个监控项之间用‘;’分隔,变量名和值用冒号分隔,‘-’表示范围。
例如:
-w 'Com_insert:200-250',表示当Com_insert在200/s到250/s之间时为warning值
-c 'Com_insert:400;Com_select:0-30',表示当insert在400/s以上的时候,为critical,或者Com_select在30/s以下的时候,为critical
如果一个监控有多个监控项,只要有一个监控项为critical,则脚本返回为critical,但是在output中会把ok、warning、critical各个监控项的值都打出来。同理,当多个监控项中没有critical,但是有一个warning的时候,则脚本返回为warning。
|
文件: | check_mysql_status.rar |
大小: | 2KB |
下载: | 下载 |
|
阅读(2624) | 评论(0) | 转发(0) |