zoukankan      html  css  js  c++  java
  • Zabbix低级主动发现之MySQL多实例

      接上篇:Zabbix自动发现与主动注册

      

      在一个agent安装一个maraidb

      拷贝一个原始配置文档并且修改配置用于开启多实例

      按照配置文件初始化数据库

    mysql_install_db --user=mysql --defaults-file=/etc/my3307.cnf
    mysql_install_db --user=mysql --defaults-file=/etc/my3308.cnf
    

      启动

    mysqld_safe --defaults-file=/etc/my3307.cnf &
    mysqld_safe --defaults-file=/etc/my3308.cnf &
    

      定义一个脚本/etc/zabbix/zabbix_agentd.d/discover_mysql.sh

    #!/bin/bash
    #mysql low-lever discovery
    res=`netstat -lntp|grep mysql |awk -F "[ :]+" '{print $5}'`
    port=($res)
    printf '{'
    printf '"data":['
    for key in ${!port[@]}
    do
            if [[ "${#port[@]}" -gt 1 && "${key}"  -ne "$((${#port[@]}-1))" ]];then
                    printf '{'
                    printf ""{#MYSQLPORT}":"${port[${key}]}"},"
            else [[ "${key}" -eq "((${#port[@]}-1))" ]]
                    printf '{'
                    printf ""{#MYSQLPORT}":"${port[${key}]}"}"
            fi
    done
    printf ']'
    printf '}'
    

      手动执行脚本

    sh discover_mysql.sh
    输出为
    {"data":[{"{#MYSQLPORT}":"3306"},{"{#MYSQLPORT}":"3307"},{"{#MYSQLPORT}":"3308"}]}
    

      判断是不是json格式使用python里面的一个工具(能排版出来就是json)

     sh discover_mysql.sh |python -m json.tool
    

      自定义key去调用脚本/etc/zabbix/zabbix_agentd.d/discover_mysql.conf

    UserParameter=discover_mysql, sh /etc/zabbix/zabbix_agentd.d/discover_mysql.sh
    

      重启zabbix agent

      在server上面查看

    zabbix_get -s 192.168.80.160 -k discover_mysql
    

       报错

      因为netstat -anlp加了参数p需要root权限,而在server上面获取使用zabbix用户执行

      在agent加修改

     chmod u+s `which netstat`
    

      取值正确了

      在web创建模板 本次直接在主机上面创建discover规则

      创建items的原型

      修改配置文件/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf

    UserParameter=mysql.status[*],echo "show global status where Variable_name='$2';" | HOME=/var/lib/zabbix mysql -uroot -p123456 -h127.0.0.1 -P $1 -N | awk '{print $$2}'
    

      这里把密码固定了

      设置多实例的密码

    mysqladmin -h 127.0.0.1 -uroot password '123456' -P3306
    mysqladmin -h 127.0.0.1 -uroot password '123456' -P3307
    mysqladmin -h 127.0.0.1 -uroot password '123456' -P3308
    

      修改完可以登录验证一下

      重启zabbix agent

      在zabbix server验证

     zabbix_get -s 192.168.80.160 -k mysql.status[3306,Bytes_sent]
    

      创建items原型(可以参考系统自定义的mysql模板)这里传递的两个参数第一个是端口号使用定义的变量代替

       添加完克隆多个,为了区分不同端口名称可以加端口变量

      创建完毕就自动发现了

       下一篇:Zabbix分布式监控

         

  • 相关阅读:
    【转】Android Hook框架Xposed详解
    【转】不需要 Root,也能用上强大的 Xposed 框架:VirtualXposed
    【转】手把手教你读取Android版微信和手Q的聊天记录(仅作技术研究学习)
    【转】关于音频焦点的理解
    test
    Linux只下载不安装软件包
    Linux用户创建/磁盘挂载相关命令
    telnet的安装配置及xinetd的讨论
    vsftp安装配置教程
    wordpress安装教程
  • 原文地址:https://www.cnblogs.com/minseo/p/8628212.html
Copyright © 2011-2022 走看看