南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具

360影视 2024-12-05 14:35 4

摘要:将gcluster_process.sh,always.sh脚本和node_ip.list文件放在该目录下,在gcluster_process.sh脚本中修改登陆集群的用户和口令。在node_ip.list中存放coor节点ip; 将always.sh 挂在后


更多精彩内容尽在南大通用GBase技术社区,南大通用致力于成为用户最信赖的数据库产品供应商。

设计背景

在linux端,GBase 8a由于缺少对sql进程的有效监控和跟踪,致使维护工作不便。本工具的设计宗旨即解决该类维护问题。

设计目的

(1) 实时监控集群所有节点上sql任务并发执行情况

(2) 监控信息可压缩存档,便于追溯

(3) 监控范围可调节

(4) 监控信息含有分类统计功能

(5) 监控信息按照详细和简单分类,简单用于排查问题,详细用于追溯

工具说明

(1)该脚本用于记录和实时监控数据库中正在执行的sql,包括sql的执行时间,执行状态,sql下发源头等信息。

(2)使用前赋予可执行权限。如: chmod +x always.sh chmod +x gcluster_process.sh

(3)该脚本只部署在集群主节点上(集群层)即可。

(4)用gbase用户新建目录 /opt/gbasetools/always

(5)将gcluster_process.sh,always.sh脚本和node_ip.list文件放在该目录下,在gcluster_process.sh脚本中修改登陆集群的用户和口令。
在node_ip.list中存放coor节点ip; 将always.sh 挂在后台执行即可: sh always.sh &

(6)脚本正常会生成 always_result.txt和always_result.txt.full两个文件。full中存放着完整的sql,便于追溯,不带full的日志尾部有sql截断

便于运维监控时使用。日常运维时直接tail -f always_result.txt即可,可作为日常运维集群的监控页面使用。

(7)显示结果中区分加载、非加载、普通sql的分类统计

(8)文件大小超过50万行或500MB会自动打包归档,并形成新的文件

工具详情

always.sh内容如下

#!/bin/bashwhile [ 1 ]doecho " `date +%F.%T >> always_result.txtsh gcluster_process.sh | grep -v Sleep | grep -v "show full processlist" > tmp.gcluster_p.log# catch full processlist logecho " `date +%F.%T >> always_result.txt.fullcat tmp.gcluster_p.log | grep -viE 'Info$|event_scheduler.*Waiting for next activation' |sort -k 8,8nr >> always_result.txt.fullcat tmp.gcluster_p.log| grep -v Info |sed s/"checking permissions"/" "/g | awk '{print $1,$2,$3,$8,$9,$10,$11,$12,substr($13,1,500),substr($14,1,500),$15,$16,$17,$18}' |sort -k 5,5nr >> always_result.txtecho non-load process number: `grep -v 'processlist' tmp.gcluster_p.log |grep -viE 'LOAD DATA INFILE' | grep -v Host | wc -l` >> always_result.txtecho load process number: `grep -iE 'LOAD DATA INFILE' tmp.gcluster_p.log| wc -l` >> always_result.txtecho sql-stmt number: `grep -iE 'insert|delete|select|update|drop|create' tmp.gcluster_p.log|grep -v 'LOAD DATA INFILE'| wc -l` >> always_result.txtsleep 10if [ `cat always_result.txt|wc -l` -gt 500000 ] || [ `du -sk always_result.txt.full | awk '{print $1}'` -gt 500000 ] ;then tar cvfz `pwd`/logbakup/always_result_`date +%F.%H%M%S`.tar.gz always_result.txt tar cvfz `pwd`/logbakup/always_result_full_`date +%F.%H%M%S`.tar.gz always_result.txt.full echo >always_result.txt echo >always_result.txt.fullfidone

gcluster_process.sh内容如下:

#!/bin/bash. /home/gbase/.gbase_profilecmd="$GCLUSTER_HOME/bin/gbase -ugbase -pgbase20110531"while read node_ipdo $cmd -h $node_ip -P5258 -e "show full processlist" |sed 's/\\n/ /g'|sed 's/\\t/ /g'| while read line do dtime=`date +%Y-%m-%d' '%H:%M:%S` echo "#$dtime#HOST:$node_ip---------" "$line" donedone

node_ip.list 内容如下:

192.168.56.101192.168.56.102

来源:无比科技

相关推荐