分布式 | zabbix 监控 dble

作者:邓润钦
系统运维工程师,目前就职于互联网教育行业,负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
一、简介DBLE 是企业级开源分布式中间件,本文通过 zabbix 监控 dble 的运行状态等参数。官方网站:https://opensource.actionsky....
二、环境配置 1、主机信息 分布式 | zabbix 监控 dble
文章图片

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 配置参数
  1. dble.status
    • dble_version 版本
    • dble_up 状态
    • front_conn 前端连接数
  2. dble.mysql_type 后端数据库的类型:RW
  3. dble.mysql_active 后端数据库的存活
  4. mysql_read_load 后端数据的reload数
  5. mysql_write_load 后端数据的write数
  6. 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 Nov1 18:47 xm_external_dble_datasource.sh -rwxr-xr-x 1 zabbix zabbix765 Nov1 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、添加应用集和监控项 分布式 | zabbix 监控 dble
文章图片

2、添加自动发现 分布式 | zabbix 监控 dble
文章图片

3、添加监控项原型 分布式 | zabbix 监控 dble
文章图片

六、主机添加模板,测试 分布式 | zabbix 监控 dble
文章图片

查看后端数据库类型
分布式 | zabbix 监控 dble
文章图片

【分布式 | zabbix 监控 dble】分布式 | zabbix 监控 dble
文章图片

    推荐阅读