parent
b0724c7288
commit
42dd7397b7
@ -0,0 +1,99 @@ |
|||||||
|
#!/usr/bin/bash |
||||||
|
|
||||||
|
# os check |
||||||
|
# build 2021-06-16 |
||||||
|
|
||||||
|
replPasswd=$1 # zabbix传参 |
||||||
|
replUser=root |
||||||
|
cmdPath=/usr/bin/mysql |
||||||
|
slowLog=/var/log/mysql/slow.log |
||||||
|
slowTmp=/tmp/.slowLog |
||||||
|
# mysql ms monitor |
||||||
|
|
||||||
|
#1、数据库存活 |
||||||
|
function Heartbeat() { |
||||||
|
$cmdPath -u$replUser -p$replPasswd -e 'select user' &>/dev/null |
||||||
|
echo $? |
||||||
|
} |
||||||
|
|
||||||
|
#7、主从同步情况 |
||||||
|
function Twins() { |
||||||
|
result=$($cmdPath -u$replUser -p$replPasswd -e 'show slave status\G' 2>/dev/null | grep 'Running:') |
||||||
|
echo $result | grep Yes >/dev/null && s=0 || s=1 && echo $s |
||||||
|
} |
||||||
|
|
||||||
|
#2、增删改查次数 QPS、TPS |
||||||
|
function Crud() { |
||||||
|
local _result _uptime |
||||||
|
_uptime=$($cmdPath -N -u$replUser -p$replPasswd -e "show global status like 'Uptime'" 2>/dev/null | awk '{print $2}') |
||||||
|
if [ $1 == 'QPS' ] || [ $1 == 'qps' ] || [ $1 == 'Qps' ]; then |
||||||
|
_select=$($cmdPath -N -u$replUser -p$replPasswd -e "show global status like 'Com_select'" 2>/dev/null | awk '{print $2}') |
||||||
|
_update=$($cmdPath -N -u$replUser -p$replPasswd -e "show global status like 'Com_update'" 2>/dev/null | awk '{print $2}') |
||||||
|
_insert=$($cmdPath -N -u$replUser -p$replPasswd -e "show global status like 'Com_insert'" 2>/dev/null | awk '{print $2}') |
||||||
|
_delete=$($cmdPath -N -u$replUser -p$replPasswd -e "show global status like 'Com_delete'" 2>/dev/null | awk '{print $2}') |
||||||
|
_result=$(($_select + $_update + $_insert + $_delete)) |
||||||
|
echo "scale=5;a=${_result}/${_uptime};if (length(a)==scale(a)) print 0;print a " | bc |
||||||
|
elif [ $1 == 'TPS' ] || [ $1 == 'tps' ] || [ $1 == 'Tps' ]; then |
||||||
|
_commit=$($cmdPath -N -u$replUser -p$replPasswd -e "show global status like 'Com_commit'" 2>/dev/null | awk '{print $2}') |
||||||
|
_rollback=$($cmdPath -N -u$replUser -p$replPasswd -e "show global status like 'Com_rollback'" 2>/dev/null | awk '{print $2}') |
||||||
|
_result=$(($_commit + $_rollback)) |
||||||
|
echo "scale=5;a=${_result}/${_uptime};if (length(a)==scale(a)) print 0;print a " | bc |
||||||
|
else |
||||||
|
_result=$($cmdPath -N -u$replUser -p$replPasswd -e "show global status like 'Com_${1}'" 2>/dev/null | awk '{print $2}') |
||||||
|
echo $_result |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
#4、慢查询日志 |
||||||
|
function SlowLog() { |
||||||
|
#slowlog config my.cnf |
||||||
|
#[mysqld] |
||||||
|
#slow_query_log = ON |
||||||
|
#slow_query_log_file = /var/log/mysql/slow.log |
||||||
|
#long_query_time = 5 |
||||||
|
newLines=$(cat $slowLog | wc -l) |
||||||
|
datetime=$(date +%y%m%d%H) |
||||||
|
if [ -f $slowTmp ]; then |
||||||
|
oldLines=$(cat $slowTmp) |
||||||
|
diff=$(($newLines - $oldLines)) |
||||||
|
tail -n $diff $slowLog |
||||||
|
else |
||||||
|
echo -n $newLines >$slowTmp |
||||||
|
fi |
||||||
|
if [ $(du -s $slowLog | awk '{print $1}') -ge 2000 ]; then |
||||||
|
cat $slowLog >/var/log/mysql/slow${datetime}.log && echo -n >$slowLog && echo -n 0 >$slowTmp |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
#5、数据库最大连接数 |
||||||
|
function Config() { |
||||||
|
_result=$($cmdPath -N -u$replUser -p$replPasswd -e "show variables like \"$1\"" 2>/dev/null | awk '{print $2}') |
||||||
|
echo $_result |
||||||
|
} |
||||||
|
|
||||||
|
#8、数据库登陆主机为%的用户 |
||||||
|
function RemoteUser(){ |
||||||
|
_result=$($cmdPath -N -u$replUser -p$replPasswd -e "select User from mysql.user where Host='%';" 2>/dev/null | awk '{print $2}') |
||||||
|
echo $_result |
||||||
|
} |
||||||
|
|
||||||
|
case $2 in |
||||||
|
heartbeat) |
||||||
|
Heartbeat |
||||||
|
;; |
||||||
|
crud) |
||||||
|
Crud $3 # insert update delete select commit rollback qps tps |
||||||
|
;; |
||||||
|
twins) |
||||||
|
Twins |
||||||
|
;; |
||||||
|
slowlog) |
||||||
|
SlowLog |
||||||
|
;; |
||||||
|
config) |
||||||
|
Config $3 # max_connections innodb_buffer_pool_size ... |
||||||
|
;; |
||||||
|
*) |
||||||
|
echo 999 |
||||||
|
;; |
||||||
|
esac |
Loading…
Reference in new issue