gerfw 发表于 2015-8-18 09:24:36

zabbix监控mysql多实例和mariadb自定义脚本及其部署

最近新部署zabbix监控,发现有很多DB服务器都是mysql多实例的状态,mpm默认的mysql监控无法有效的监控mysql的运行状态和复制关系,故针对双实例的mysql制作的手工的zabbix脚本监控如下
首先新建新的zabbix的mysql多实例监控模板,操作如下



名称 为模板信息名称
类型 因为使用的脚本出发所以修改成zabbix捉捕器
键值 脚本返回的信息,可以为数值,也可以是字元,这里定义为字元
数据类型 字元


同时也可以设置主动捕捉,如下:监控多实例端口状态

名称 为模板信息名称
类型 因为是master去触发,所以设置成断点代理程式(主动式)
键值 脚本返回的信息
数据类型 数字的


之后去针对相应的模板设置报警信息即 触发器


根据脚本中获得以及master主动触发获得的状态值定义触发器,根据取值的不同变更状态,如上图,slave状态分为
0   正常
null slave复制停止
>1000   复制延迟,显示延迟时间
端口状态 0为异常报警   up为正常。


脚本内容如下
################################### 3359 ##################################
### SLAVE STATUS ###
status59=`mysql -uzabbix -pzabbix --sock '路径' -e "show slave status \G" | grep Behind | awk -F ':' '{print $2}'`
if [ ${status59} = 0 ]
then
   zabbix_sender --zabbix-server zabbix-master-ip--port 10051 --host hostname --key MySQL.3359slave-check--value '0'
else
if [ ${status59} = null ]
then
      zabbix_sender --zabbix-server zabbix-master-ip --port 10051 --host hostname --key MySQL.3359slave-check--value '99999999'
else
       zabbix_sender --zabbix-server zabbix-master-ip --port 10051 --host hostname --key MySQL.3359slave-check--value "$status59"
fi
fi
################################### 3360 ##################################
### SLAVE STATUS ###
status60=`mysql -uzabbix -pzabbix --sock '路径' -e "show slave status \G" | grep Behind | awk -F ':' '{print $2}'`
if [ ${status60} = 0 ]
then
       zabbix_sender --zabbix-server zabbix-master-ip--port 10051 --host hostname --key MySQL.3360slave-check--value '0'
else
      if [ ${status60} = null ]
      then
               zabbix_sender --zabbix-server zabbix-master-ip--port 10051 --host hostname --key MySQL.3360slave-check--value '99999999'
      else
            zabbix_sender --zabbix-server zabbix-master-ip--port 10051 --host hostname --key MySQL.3360slave-check--value "$status60"
      fi
fi






也可以监控mariadb的多源复制状态,在脚本内容中先指定set @@default_master_connection='name';之后获得单个slave的状态信息,同mysql。

页: [1]
查看完整版本: zabbix监控mysql多实例和mariadb自定义脚本及其部署