共计 4097 个字符,预计需要花费 11 分钟才能阅读完成。
作者:邓润钦
零碎运维工程师,目前就任于互联网教育行业,负责保护并确保整个服务的高可用性,同时一直优化零碎架构晋升部署效率、优化资源利用率。
本文起源:原创投稿
* 爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。
一、简介 DBLE
是企业级开源分布式中间件,本文通过 zabbix 监控 dble 的运行状态等参数。官方网站:https://opensource.actionsky….
二、环境配置
1、主机信息
2、软件信息
操作系统 | centos7.5 |
---|---|
dble | actiontech-dble-2.19.11.0 |
mysql | msyql5.7.26 |
zabbix-agent | 3.0 |
三、环境搭建
1、搭建 mysql 主从
参考:https://www.cnblogs.com/zyxnh…
2、搭建 dble
参考:https://www.jianshu.com/p/cd5… 或者官网配置读写读写拆散
3、搭建 zabbix 监控
参考:https://www.zabbix.com/
四、zabbix 脚本
1、zabbix dble 配置参数
-
dble.status
- dble_version 版本
- dble_up 状态
- front_conn 前端连接数
- dble.mysql_type 后端数据库的类型:RW
- dble.mysql_active 后端数据库的存活
- mysql_read_load 后端数据的 reload 数
- mysql_write_load 后端数据的 write 数
- mysql_execute 后端数据库的 execute 数
2、zabbix 的 conf 配置
[root@vm-11c-02gt4 xm_external]# cat zbx_xm_external_dble.conf
UserParameter=hfy.xm_external.dble.status[*],sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble.sh $1
UserParameter=hfy.xm_external.dble.datasource,sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble_datasource.sh data_source
UserParameter=hfy.xm_external.dble.mysql_type[*],sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble_datasource.sh mysql_type $1
UserParameter=hfy.xm_external.dble.mysql_active[*],sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble_datasource.sh mysql_active $1
UserParameter=hfy.xm_external.dble.mysql_read_load[*],sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble_datasource.sh mysql_read_load $1
UserParameter=hfy.xm_external.dble.mysql_write_load[*],sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble_datasource.sh mysql_write_load $1
UserParameter=hfy.xm_external.dble.mysql_execute[*],sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble_datasource.sh mysql_execute $1
3、zabbix 的脚本配置
[root@vm-11c-02gt4 dble]# pwd
/data/sh/zabbix_scripts/xm_external/dble
[root@vm-11c-02gt4 dble]# ll
total 8
-rwxr-xr-x 1 zabbix zabbix 2027 Nov 1 18:47 xm_external_dble_datasource.sh
-rwxr-xr-x 1 zabbix zabbix 765 Nov 1 18:48 xm_external_dble.sh
[root@vm-11c-02gt4 dble]# cat xm_external_dble.sh $1
#!/bin/bash
#阐明:通过 dble 的治理地址,将 dble 的根底数据采集到
#须要本地有 mysql 命令 或者运行 xm_external_dble_datasource.sh 的 program_exists() 外面的命令
DBLE_USER='man1'
DBLE_PASS='654321'
DBLE_HOST='127.0.0.1'
DBLE_PORT='9066'
#连贯命令
dble_conn="mysql -P${DBLE_PORT} -h${DBLE_HOST} -u${DBLE_USER} -p${DBLE_PASS}"
case $1 in
dble_version) #dble 版本
result=`${dble_conn} 2>/dev/null -BNe "show @@version" |grep dble|awk -F - '{print $3}'`
echo $result
;;
dble_up) #dble 状态
${dble_conn} 2>/dev/null -BNe "show @@version"|echo $?
;;
front_conn) #dble 前端的连接数
result=`${dble_conn} 2>/dev/null -BNe "show @@connection" |grep 8066 | wc -l`
echo $result
;;
esac
[root@vm-11c-02gt4 dble]# cat xm_external_dble_datasource.sh
#!/bin/bash
#阐明:通过 dble 的治理地址,将 dble 的根底数据采集到
#须要本地有 mysql 命令 或者运行 xm_external_dble_datasource.sh 的 program_exists() 外面的命令
DBLE_USER='man1'
DBLE_PASS='654321'
DBLE_HOST='127.0.0.1'
DBLE_PORT='9066'
program_exists() {
mysql_command=`command -v mysql`
# fail on non-zero return value
if [-z ${mysql_command} ]; then
rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
yum -y install mysql-community-client.x86_64
fi
}
#连贯命令
dble_conn="mysql -P${DBLE_PORT} -h${DBLE_HOST} -u${DBLE_USER} -p${DBLE_PASS}"
dble_datasouce(){${dble_conn} 2>/dev/null -NBe 'show @@datasource' >/tmp/dble_datasouce.txt
array_ip=($(cat /tmp/dble_datasouce.txt |awk '{print $3}'))
length=${#array_ip[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=0;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#HOSTIP}\":\"${array_ip[$i]}\"}"
if [$i -lt $[$length-1] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n"
}
dble_mysql_type(){cat /tmp/dble_datasouce.txt |grep $1|awk '{print $5}'
}
dble_mysql_active(){result=`cat /tmp/dble_datasouce.txt |grep $1|awk '{print $6}'`
if [[$result != 0]];then
echo "up"
else
echo "down"
fi
}
dble_mysql_execute(){result=`cat /tmp/dble_datasouce.txt |grep $1|awk '{print $9}'`
echo $result
}
dble_mysql_read(){result=`cat /tmp/dble_datasouce.txt |grep $1|awk '{print $10}'`
echo $result
}
dble_mysql_write(){result=`cat /tmp/dble_datasouce.txt |grep $1|awk '{print $11}'`
echo $result
}
case $1 in
data_source)
dble_datasouce
;;
mysql_type)
dble_mysql_type $2
;;
mysql_active)
dble_mysql_active $2
;;
mysql_read_load)
dble_mysql_read $2
;;
mysql_write_load)
dble_mysql_write $2
;;
mysql_execute)
dble_mysql_execute $2
;;
esac
五、配置 zabbix 模板
1、增加利用集和监控项
2、增加主动发现
3、增加监控项原型
六、主机增加模板,测试
查看后端数据库类型
正文完