zabbix监控Mysql中的QPS/TPS

QPS(Questions Per second:):每秒查询处理量,表示每秒能处理多少次请求,这里是指是Mysql每秒处理查询数,同时适用于InnoDB和MysqlSAM引擎

MySQL如何计算QPS呢?

很简单,通过"msyqladmin status" 就是先获取到Questions和uptime对应的数值,随后通过Questions/Uptime即可获取

question=mysqladmin status |awk '{print $6}

uptime= mysqladmin status |awk '{print $2}'

QPS=question/uptime

zabbix监控Mysql中的QPS/TPS

zabbix监控Mysql中的QPS/TPS

TPS(Transactions Per Second)

每秒处理事务数,简单的来说就是数据库传输事务处理个数,这是指单台数据库服务器在单位时间内处理的事务的个数。 支持事务的存储引擎如InnoDB等特性指标

基于com_commit和com_rollback相加并除以uptim计算出TPS

rollback=mysqladmin extended-status | awk '/\<Com_rollback\>/{print $4}'
commit=mysqladmin extended-status | awk '/\<Com_commit\>/{print $4}'

tps=(com_rollback+com_commit)/uptime

ok~知道如何计算QPS和TPS之后,就好办了,我们将其写成脚本,在这里直接用shell即可

# mkdir /usr/local/zabbix/script -p

vim /usr/local/zabbix/script/monitor.sh 

#!/bin/bash
#Script time:2018-07-30
#Contact information Email:m18810455501@163.com
Uptime=`mysqladmin status | awk '{print $2}'`
QPS() {
 Questions=`mysqladmin status | awk '{print $6}'`
 awk 'BEGIN{printf "%.2f\n",'$Questions'/'$Uptime'}'
}
#TPS
TPS() {
 rollback=`mysqladmin extended-status | awk '/\<Com_rollback\>/{print $4}'`
 commit=`mysqladmin extended-status | awk '/\<Com_commit\>/{print $4}'`
 awk 'BEGIN{printf "%.2f\n",'$(($rollback+$commit))'/'$Uptime'}'
}
$1

# chmod 755 -R /usr/local/zabbix/script/monitor.sh 

# vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/performance.conf

UserParameter=mysql.status[*],/usr/local/zabbix/script/monitor.sh "$1"

# egrep -v "#|^$" /usr/local/zabbix/etc/zabbix_agentd.conf   #zabbix-agent配置如下

LogFile=/tmp/zabbix_agentd.log
Server=192.168.2.129
ServerActive=192.168.2.129
Hostname=192.168.2.144
Timeout=8
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/performance.conf

Server端测试:可以获取key值

zabbix监控Mysql中的QPS/TPS

【添加监控项】

zabbix监控Mysql中的QPS/TPS

zabbix监控Mysql中的QPS/TPS

zabbix监控Mysql中的QPS/TPS

zabbix监控Mysql中的QPS/TPS

zabbix监控Mysql中的QPS/TPS

zabbix监控Mysql中的QPS/TPS

zabbix监控Mysql中的QPS/TPS

 

上述便是QPS和TPS监控值状态,因为是自己测试,没有太多事务查询和事务处理量,所以,监控值很小

思路总结:

1)首先我们的zabbix是没有监控mysql这些性能指标的,因此我们要自定义,我们要通过mysql status获取到Quetions和uptime的的数值计算出QPS,随后我们在获取commit和rollback的的数值相加在除以uptime的的时间值,这样既能获取QPS和TPS的每秒事务查询数和处理数

2)写入脚本定义在key值(在UserParameter中定义)

3)模板创建

上一篇:JavaWeb基础


下一篇:基于TimeScaleDB(PG时序数据库)离线部署Zabbix5.4