zoukankan      html  css  js  c++  java
  • [zabbix] zabbix检测mysql主从状态

    环境说明:

    zabbix-proxy 172.16.2.95(zabbix-server同理)
    zabbix-agent111 172.16.2.111 mysql从机
    

      1.mysql从机添加用户权限,避开root权限

    mysql> grant replication client on *.* to 'zabbix'@'localhost' identified by 'password';
    

      2.将用户名密码写入/var/lib/zabbix/.my.cnf,不建议写在/etc/my.cnf,各系统用户都可直接调用该配置文件。至于为何是在/var/lib/zabbix底下,因为zabbix-agent配置文件/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf中定义了zabbix的HOME路径在该目录HOME=/var/lib/zabbix。

    [root@zabbix-agent111 ~]# cat /var/lib/zabbix/.my.cnf
    [client]
    default-character-set  = utf8
    user=zabbix
    password=password
    
    [mysqladmin]
    user=zabbix
    password=password

      3.往zabbix-agent机器上添加UserParameter(版本:zabbix-agent-3.4.10-1.el7.x86_64)

    [root@zabbix-agent111 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
    ...省略
    UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
    UserParameter=mysql.version,mysql -V
    UserParameter=mysql.slave.status1,echo "show slave statusG" | HOME=/var/lib/zabbix mysql | grep Running | grep -c Yes
    UserParameter=mysql.slave.status2,echo "show slave statusG" | HOME=/var/lib/zabbix mysql | awk '/Seconds_Behind_Master/{print $2}'
    重启zabbix-agent
    [root@zabbix-agent111 ~]# systemctl restart zabbix-agent

      4.确认zabbix-agent机器上zabbix用户可以直接执行mysql命令,如果该机器上的mysql安装在/usr/local/mysql,要么在UserParameter指定mysql完整路径,要么在机器给mysql软链接到/usr/local/bin等PATH环境变量中

    [root@zabbix-agent111 ~]# which mysql
    /usr/local/bin/mysql
    [root@zabbix-agent111 ~]# ll /usr/local/bin/mysql
    lrwxrwxrwx 1 root root 26 Sep 6 14:04 /usr/local/bin/mysql -> /usr/local/mysql/bin/mysql

      5.zabbix-proxy机器上确认可以获取两个新值

    [root@zabbix-proxy ~]# zabbix_get -s 172.16.2.111 -k 'mysql.slave.status1'
    2
    [root@zabbix-proxy ~]# zabbix_get -s 172.16.2.111 -k 'mysql.slave.status2'
    0

      6.登录zabbix web控制台添加监控项、触发器,这里我选择将监控项和触发器添加到默认的模板“Template DB MySQL”

     

    添加一个监控项,未尾不启用是出于模板“Template DB MySQL”在我环境中会应用到多台mysql服务器,如mysql主、无主从的mysql等;它们不需要获取主从状态,默认不启用,待模板链接到主机后,有需要检测主从状态的主机再单独点击启用。

    未尾不启用,理由同上

    添加触发器,show slave statusG的结果中Running的Yes数量不等于2个或者mysql.slave.status2最后两次结果最小的值大于60,就认为主从状态异常。

    未尾同样不启用,理由同上

    {mysql.slave.status1.last(0)}<>2
    最后一次“Yes的数量”不等于2,触发
    or {mysql.slave.status2.min(#2)}>60
    或者最后两次“Seconds_Behind_Master”中的最小值大于60,触发

  • 相关阅读:
    selenium iframe 定位 qq空间说说
    单个 进程网速 消耗 网路 带宽
    网页加速
    baidu 验证网站 一一映射
    内容原发网站seo不重视2个标签,导致seo效果不如转发网站
    vi shell 的水平 决定了 手机shell 办公的效率
    键盘控制鼠标
    seo 谷歌去年悄然收购这家英国硬件公司
    视频 爬虫
    python 深浅 拷贝
  • 原文地址:https://www.cnblogs.com/hjfeng1988/p/9638759.html
Copyright © 2011-2022 走看看