分布式 | zabbix 监控 dble
source link: https://segmentfault.com/a/1190000041168889
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
作者:邓润钦
系统运维工程师,目前就职于互联网教育行业,负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
一、简介DBLE
是企业级开源分布式中间件,本文通过 zabbix 监控 dble 的运行状态等参数。官方网站:https://opensource.actionsky....
二、环境配置
1、主机信息
2、软件信息
操作系统centos7.5dbleactiontech-dble-2.19.11.0mysqlmsyql5.7.26zabbix-agent3.0三、环境搭建
1、搭建 mysql 主从
参考:https://www.cnblogs.com/zyxnh...
2、搭建 dble
参考:https://www.jianshu.com/p/cd5... 或者官网配置读写读写分离
3、搭建 zabbix 监控
四、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、添加监控项原型
六、主机添加模板,测试
查看后端数据库类型
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK