kingbase的采集脚本编写COLT_CMDB_collection_linux_kingbase.sh

#!/bin/bash
#IT_BEGIN
#IT_TYPE=1
#IT DATABASE_Kingbase_ip|ip
#IT DATABASE_Kingbase_PORT|port
#IT DATABASE_Kingbase_version|version
#IT DATABASE_Kingbase_USERNAME|user
#IT DATABASE_Kingbase_hostname|hostname
#IT DATABASE_Kingbase_INSTANCENAME|instancename
#IT DATABASE_Kingbase_PATH|dbpath
#IT DATABASE_Kingbase_DataPath|data_path
#IT DATABASE_Kingbase_maxconnections|max_connections
#IT DATABASE_Kingbase_passwordencryption|password_encryption
#IT DATABASE_Kingbase_sharedbuffers|shared_buffers
#IT DATABASE_Kingbase_maxstackdepth|max_stack_depth
#IT DATABASE_Kingbase_maxwalsize|max_wal_size
#IT DATABASE_Kingbase_minwalsize|min_wal_size
#IT DATABASE_Kingbase_logdirectory|log_directory
#IT DATABASE_Kingbase_installpath|installpath
#IT_END
dbusername=`ps aux | grep -i kingbase | grep -v grep | grep -v root | awk '{print $1 }'| sort -u | cut -d ':' -f 2 | tr "\n" "," |sed 's/.$//g'`
shname=`basename $0`
ATTR="_X(g=$shname,p=cmdb,t=script,f=0)"
version=`su - ${dbusername} -c 'kingbase -V' |awk '{ print $NF}'`
hostname=`hostname`
if command -v ifconfig >/dev/null 2>&1; then
    ip=`ifconfig -a | grep inet |grep -v 127.0.0.1 | grep -v "broadcast 0.0.0.0" | grep -v inet6 |awk '{print $2}' |cut -d ':' -f 2 | tr "\n" "," |sed 's/.$//g'`
elif command -v ip >/dev/null 2>&1; then
    ip=`ip addr show| grep inet |grep -v 127.0.0.1 | grep -v "broadcast 0.0.0.0" | grep -v inet6 |awk '{print $2}' |cut -d '/' -f 1 | tr "\n" " " |sed 's/.$//g'`
elif command -v hostname >/dev/null 2>&1; then
    ip=`hostname -I|tr " " ","| awk '{print substr($0, 1, length($0)-1)}'`
else
    echo "command ifconfig or ip or hostname not exist!!!"
fi
user=`ps aux | grep -i kingbase | grep -v grep | grep -v root | awk '{print $1 }'| sort -u | cut -d ':' -f 2 | tr "\n" "," |sed 's/.$//g'`
port=`ss -tulnp | grep kingbase | grep -oP ':\K\d+'|sort|uniq`
# 使用psql连接到Kingbase数据库,并执行查询以获取实例名称
#instancename=$(psql -U $user -d $Dbname -t -c "SELECT inet_server_addr()")
pid=`ps aux | grep -i kingbase | grep -v grep | grep -v root|grep -E "KESRealPro"|awk '{ print $2 }'`
#数据路径
data_path=`ls -al /proc/${pid}/cwd | awk '{print $NF}'`
#安装路径
installpath=`ls -al /proc/${pid}/exe|awk '{print $NF}'`
#配置文件
configfile=`find / -name kingbase.conf`
if [ -f ${configfile} ];then
	#cat /home/kingbase/DB/data/kingbase.conf |grep -v "^#"|grep -v  "^[[:space:]]*#"|grep -v ^$ >/tmp/$shname.txt 2>&1
	#最大并发连接数
	max_connections=$(cat ${configfile} |grep -v "^#"|grep -v  "^[[:space:]]*#"|grep max_connections|cut -d '=' -f 2|awk -F'#' '{print $1}'|sed 's/^[[:space:]]*//')
	#身份认证方法
	password_encryption=`cat ${configfile} |grep -v "^#"|grep -v  "^[[:space:]]*#"|grep password_encryption|cut -d '=' -f 2|awk -F'#' '{print $1}'|sed 's/^[[:space:]]*//'`
	#缓存数据的内存大小
	shared_buffers=`cat ${configfile} |grep -v "^#"|grep -v  "^[[:space:]]*#"|grep shared_buffers|cut -d '=' -f 2|awk -F'#' '{print $1}'|sed 's/^[[:space:]]*//'`
	#max_stack_depth
	max_stack_depth=`cat ${configfile} |grep -v "^#"|grep -v  "^[[:space:]]*#"|grep max_stack_depth|cut -d '=' -f 2|awk -F'#' '{print $1}'|sed 's/^[[:space:]]*//'`
	#max_wal_size
	max_wal_size=`cat ${configfile} |grep -v "^#"|grep -v  "^[[:space:]]*#"|grep max_wal_size|cut -d '=' -f 2|awk -F'#' '{print $1}'|sed 's/^[[:space:]]*//'`
	#min_wal_size
	min_wal_size=`cat ${configfile} |grep -v "^#"|grep -v  "^[[:space:]]*#"|grep min_wal_size|cut -d '=' -f 2|awk -F'#' '{print $1}'|sed 's/^[[:space:]]*//'`
	#log_directory
	log_directory=`cat ${configfile} |grep -v "^#"|grep -v  "^[[:space:]]*#"|grep log_directory |cut -d '=' -f 2|awk -F'#' '{print $1}'|sed 's/^[[:space:]]*//'|sed "s/'//g"`
else
	 echo "${configfile}文件不存在,获取配置文件失败,请检查"
	 exit 151
fi 
#多指标输出开始
echo COL_DETAIL_START:
echo "version[$ATTR]|+|$version"
echo "ip[$ATTR]|+|$ip"
echo "port[$ATTR]|+|$port"
echo "dbusername[$ATTR]|+|$dbusername"
echo "hostname[$ATTR]|+|$hostname"
echo "instancename[$ATTR]|+|$instancename"
#echo "dbpath[$ATTR]|+|$dbpath"
echo "datapath[$ATTR]|+|$data_path"
echo "max_connections[$ATTR]|+|$max_connections"
echo "passwordencryption[$ATTR]|+|$password_encryption"
echo "sharedbuffers[$ATTR]|+|$shared_buffers"
echo "maxstackdepth[$ATTR]|+|$max_stack_depth"
echo "maxwalsize[$ATTR]|+|$max_wal_size"
echo "minwalsize[$ATTR]|+|$min_wal_size"
echo "logdirectory[$ATTR]|+|$log_directory"
echo "installpath[$ATTR]|+|$installpath"
#多指标输出结束
echo COL_DETAIL_END:

运行结果如下说是服务器为10.14.1.4

COL_DETAIL_START:
version[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|V008R006C008B0020
ip[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|10.14.1.4
port[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|54321
dbusername[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|kingbase
hostname[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|dmzneo4j02
instancename[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|
dbpath[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|
data_path[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|/home/kingbase/DB/data
max_connections[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|100
passwordencryption[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|scram-sha-256
sharedbuffers[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|128MB
maxstackdepth[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|3MB
maxwalsize[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|1GB
minwalsize[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|80MB
logdirectory[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|sys_log
installpath[_X(g=kingbase.sh,p=cmdb,t=script,f=0)]|+|/home/kingbase/DB/KESRealPro/V008R006C008B0020/Server/bin/kingbase
COL_DETAIL_END:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值