作者:邓润钦

零碎运维工程师,目前就任于互联网教育行业,负责保护并确保整个服务的高可用性,同时一直优化零碎架构晋升部署效率、优化资源利用率。

本文起源:原创投稿

*爱可生开源社区出品,原创内容未经受权不得随便应用,转载请分割小编并注明起源。


一、简介DBLE

是企业级开源分布式中间件,本文通过 zabbix 监控 dble 的运行状态等参数。官方网站:https://opensource.actionsky....

二、环境配置

1、主机信息

2、软件信息

操作系统centos7.5
dbleactiontech-dble-2.19.11.0
mysqlmsyql5.7.26
zabbix-agent3.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.confUserParameter=hfy.xm_external.dble.status[*],sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble.sh $1UserParameter=hfy.xm_external.dble.datasource,sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble_datasource.sh data_sourceUserParameter=hfy.xm_external.dble.mysql_type[*],sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble_datasource.sh mysql_type $1UserParameter=hfy.xm_external.dble.mysql_active[*],sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble_datasource.sh mysql_active $1UserParameter=hfy.xm_external.dble.mysql_read_load[*],sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble_datasource.sh mysql_read_load $1UserParameter=hfy.xm_external.dble.mysql_write_load[*],sh /data/sh/zabbix_scripts/xm_external/dble/xm_external_dble_datasource.sh mysql_write_load $1UserParameter=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]# lltotal 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、增加监控项原型

六、主机增加模板,测试

查看后端数据库类型