pangxia75 发表于 2019-1-24 09:45:17

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

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

http://s3.运维网.com/wyfs02/M00/71/77/wKioL1XRf9vhva2WAAHJ_mhsLvI251.jpg
  名称 为模板信息名称
  类型 因为使用的脚本出发所以修改成zabbix捉捕器
  键值 脚本返回的信息,可以为数值,也可以是字元,这里定义为字元
  数据类型 字元
  

  

  同时也可以设置主动捕捉,如下:监控多实例端口状态
http://s3.运维网.com/wyfs02/M00/71/7A/wKiom1XRffPhtZIlAAHSoKHadRo386.jpg
  名称 为模板信息名称
  类型 因为是master去触发,所以设置成断点代理程式(主动式)
  键值 脚本返回的信息
  数据类型 数字的
  

  

  之后去针对相应的模板设置报警信息即 触发器
http://s3.运维网.com/wyfs02/M02/71/77/wKioL1XRgB-QM5p7AADI6pXtlY8274.jpg
  

  根据脚本中获得以及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自定义脚本及其部署