zabbix 监控各个库的慢查询数量

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

[root@xx scripts]# ls

table.txt  testslownum.py  testslowtable.py


[root@xx scripts]# cat testslowtable.py 

#!/usr/bin/python

# coding:utf-8

import subprocess

import json

file='/usr/local/zabbix/scripts/table.txt'

tables=[]

with open(file,'r') as f:

    for i in f.readlines():

        table = i.strip('\n')

        tables.append({'{#TABLE_NAME}': table})

print json.dumps({'data': tables}, indent=4, separators=(',', ':'))


结合lepus库

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@ct1 scripts] # cat testslownum.py 
#!/usr/bin/python
# coding:utf-8
import  datetime,time
import  sys
import  MySQLdb
import  sys
from  ConfigParser  import  ConfigParser
conf  =  ConfigParser()
timenow  =  time.localtime()
datenow  =  time.strftime( '%Y-%m-%d 00:00:00' , timenow)
logstr  =  "%s"  %  datenow
#datefmt='%Y-%m-%d %H:%M:%S'
 
con  =  MySQLdb.connect( 'ip' 'root' 'xx' 'lepus' )
 
def  select(table):
     cursor  =  con.cursor()
     sql  =  "SELECT sum(t2.ts_cnt) as ts_cnt_sum FROM ( SELECT a.CHECKSUM,a.fingerprint,a.sample,a.first_seen,a.last_seen,b.serverid_max,b.db_max,b.user_max,b.ts_min,b.ts_max,sum(b.ts_cnt) AS ts_cnt,sum(b.Query_time_sum) / sum(b.ts_cnt) AS Query_time_avg,max(b.Query_time_max) AS Query_time_max,min(b.Query_time_min) AS Query_time_min,b.Query_time_sum AS Query_time_sum,max(b.Lock_time_max) AS Lock_time_max,min(b.Lock_time_min) AS Lock_time_min,sum(b.Lock_time_sum) AS Lock_time_sum FROM mysql_slow_query_review a JOIN mysql_slow_query_review_history b WHERE a. CHECKSUM = b. CHECKSUM AND b.serverid_max = '276' GROUP BY a. CHECKSUM) t2 WHERE t2.last_seen >= '%s' and t2.db_max='%s' ORDER BY t2.ts_cnt DESC"  % (datenow,table)
     ##print sql
     cursor.execute(sql)
     template_list  =  cursor.fetchall()
     res  =  template_list
     for  in  res:
         print  int (m[ 0 ])
     cursor.close()
 
 
if  __name__  = =  '__main__' :
     table  =  sys.argv[ 1 ]
     result  =  select(table)


[root@xx zabbix_agentd.conf.d]# cat slow_num.conf 

UserParameter=slowtable.discovery,/usr/bin/python /usr/local/zabbix/scripts/testslowtable.py

UserParameter=slowtable.nums[*],sudo /usr/bin/python /usr/local/zabbix/scripts/testslownum.py $1


#chmod g-wx,o-wx ~/.cache/Python-Eggs


zabbix添加


主要是每天的慢查询各个库的查询数量,做这个,主要看下每个库的查询数量,目前发现读比写多。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
SELECT
     sum (t2.ts_cnt) as ts_cnt_sum
FROM
     (
         SELECT
             a. CHECKSUM,
             a.fingerprint,
             a.sample,
             a.first_seen,
             a.last_seen,
             b.serverid_max,
             b.db_max,
             b.user_max,
             b.ts_min,
             b.ts_max,
             sum (b.ts_cnt) AS ts_cnt,
             sum (b.Query_time_sum)  /  sum (b.ts_cnt) AS Query_time_avg,
             max (b.Query_time_max) AS Query_time_max,
             min (b.Query_time_min) AS Query_time_min,
             b.Query_time_sum AS Query_time_sum,
             max (b.Lock_time_max) AS Lock_time_max,
             min (b.Lock_time_min) AS Lock_time_min,
             sum (b.Lock_time_sum) AS Lock_time_sum
         FROM
             mysql_slow_query_review a
         JOIN mysql_slow_query_review_history b
         WHERE
             a. CHECKSUM  =  b. CHECKSUM
         AND b.serverid_max  =  '276'  AND b.ts_min > =  '2017-11-21 00:00:00'
         GROUP BY
             a. CHECKSUM
     ) t2
WHERE
     t2.last_seen > =  '2017-11-21 00:00:00'
AND t2.db_max  =  'o2oservice'
AND t2.Query_time_min >  1
- -  AND t2.ts_cnt >  50 
ORDER BY
     t2.ts_cnt DESC




本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1980016,如需转载请自行联系原作者

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
存储 SQL 监控
修改Zabbix源码实现监控数据双写,满足业务需求!
虽然对接Elasticsearch后有诸多好处,但是它不往数据库写历史数据了,同时还不再计算趋势数据了。有这么一个场景...
修改Zabbix源码实现监控数据双写,满足业务需求!
|
4月前
|
数据采集 监控 数据库
OceanBase社区版可以通过Zabbix监控
OceanBase社区版可以通过Zabbix监控
78 4
|
4月前
|
监控 关系型数据库 机器人
小白带你学习linux的监控平台zabbix
小白带你学习linux的监控平台zabbix
138 0
|
7月前
|
监控 前端开发 JavaScript
Zabbix分布式监控Web监控
Zabbix分布式监控Web监控
85 0
|
6月前
|
监控 关系型数据库 MySQL
企业实战(8)CentOS 6.8安装Zabbix-agent 5.0监控主机性能与Mysql数据库
企业实战(8)CentOS 6.8安装Zabbix-agent 5.0监控主机性能与Mysql数据库
|
1月前
|
数据采集 监控 数据库
请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
【2月更文挑战第25天】请问OceanBase社区版能否通过zabbix监控,然后将报错信息展现到grafana?
25 2
|
6月前
|
监控
zabbix如何添加自定义监控项
zabbix如何添加自定义监控项
265 0
|
2月前
|
监控 Cloud Native 关系型数据库
使用 Grafana 统一监控展示 - 对接 Zabbix
使用 Grafana 统一监控展示 - 对接 Zabbix
|
4月前
|
监控 Docker 容器
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
Zabbix【部署 03】zabbix-agent2安装配置使用(zabbix-agent2监控docker实例分享)
246 0
|
4月前
|
监控 Java
Zabbix【部署 02】Zabbix-Java-Gateway安装配置使用(使用Zabbix-Java-Gateway通过JMX监控Java应用程序实例分享)
Zabbix【部署 02】Zabbix-Java-Gateway安装配置使用(使用Zabbix-Java-Gateway通过JMX监控Java应用程序实例分享)
90 0

推荐镜像

更多