设为首页 收藏本站
查看: 1175|回复: 0

[经验分享] zabbix-3.2.4监控mysql服务器性能

[复制链接]

尚未签到

发表于 2017-12-12 13:57:27 | 显示全部楼层 |阅读模式
  环境:centos7
  已安装
  zabbix-agent-3.2.4-2.el7.x86_64
  zabbix-server-mysql-3.2.4-2.el7.x86_64
  zabbix-web-3.2.4-2.el7.noarch
  zabbix-web-mysql-3.2.4-2.el7.noarch
  zabbix-release-3.2-1.el7.noarch
  zabbix-get-3.2.4-2.el7.x86_64
  查看zabbix_agentd.conf配置文件:
  

PidFile=/var/run/zabbix/zabbix_agentd.pid  
LogFile
=/var/log/zabbix/zabbix_agentd.log  
LogFileSize
=0  
Server=127.0.
0.1    //当系统设置有多个IP时,需要指定一个IP与二级代理或服务端通信,若系统只有一个IP,也建议指定一个IP  
ListenPort=
10050  
ServerActive
=127.0.0.1   //在主动模式下,ServerActive为二级代理服务器或服务器,默认端口为10051  
Hostname
=127.0.0.1    //手工自定义一个主机名,可以和系统的主机名一样,也可以不一样,此参数可根据实际情况启用或关闭,建议关闭此参数,并启用HostnameItem参数
  
Include
=/etc/zabbix/zabbix_agentd.d/*.conf  

  开始mysql性能监控
  这里可以采用zabbix自带的mysql模版,但是也需要在mysql服务器上准备获取mysql status的脚本chk_mysql.sh,zabbix通过调用这个脚本来获取mysql的运行信息。
  1、在配置文件zabbix_agentd.conf里面添加mysql监控信息:
  

# vim /etc/zabbix/zabbix_agentd.conf  
UserParameter
=mysql.version,mysql -V  
UserParameter
=mysql.status
  • ,/root/chk_mysql.sh $1         //chk_mysql.sh路径根据实际情况  
    UserParameter
    =mysql.ping,mysqladmin -uzabbix -pzabbix -P3306 -h127.0.0.1  ping | grep -c alive  //mysql数据库名:zabbix,密码:zabbix;主机地址和zabbix_agentd.conf中Hostname一致
      

      2、初始化数据库并添加一个mysql帐号:
    [iyunv@localhost ~]# mysqladmin -uroot -h 127.0.0.1 password 123456

    [iyunv@localhost ~]# mysql -u root -p

      Enter password:
      mysql>GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO zabbix@'127.0.0.1'>  mysql> FLUSH PRIVILEGES;
      Query OK, 0 rows affected (0.00 sec)
      mysql> quit
      Bye
      3、mysql监控脚本chk_mysql.sh  

    DSC0000.gif DSC0001.gif
      

    #!/bin/bash  
    #
    -------------------------------------------------------------------------------  
    # FileName:    check_mysql.sh
      
    # Revision:   
    1.0  
    # Date:        
    2015/06/09  
    # Author:      DengYun
      
    # Email:       dengyun@ttlsa.com
      
    # Website:     www.ttlsa.com
      
    # Description:
      
    # Notes:      
    ~  
    #
    -------------------------------------------------------------------------------  
    # Copyright:   
    2015 (c) DengYun  
    # License:     GPL
      
    # 用户名
      
    MYSQL_USER
    ='zabbix'  
    # 密码
      
    MYSQL_PWD
    ='zabbix'  
    # 主机地址
    /IP  
    MYSQL_HOST
    ='127.0.0.1'  
    # 端口
      
    MYSQL_PORT
    ='3306'  
    # 数据连接
      
    MYSQL_CONN
    ="/usr/bin/mysqladmin -u${MYSQL_USER} -p${MYSQL_PWD} -h${MYSQL_HOST} -P${MYSQL_PORT}"  
    # 参数是否正确
      

    if [ $# -ne "1" ];then  echo
    "arg error!"  
    fi
      
    # 获取数据
      

    case $1 in  Uptime)
      result
    =`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"`  echo $result
      ;;
      Com_update)
      result
    =`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3`  echo $result
      ;;
      Slow_queries)
      result
    =`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"`  echo $result
      ;;
      Com_select)
      result
    =`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3`  echo $result
      ;;
      Com_rollback)
      result
    =`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3`  echo $result
      ;;
      Questions)
      result
    =`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"`  echo $result
      ;;
      Com_insert)
      result
    =`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3`  echo $result
      ;;
      Com_delete)
      result
    =`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3`  echo $result
      ;;
      Com_commit)
      result
    =`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3`  echo $result
      ;;
      Bytes_sent)
      result
    =`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3`  echo $result
      ;;
      Bytes_received)
      result
    =`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3`  echo $result
      ;;
      Com_begin)
      result
    =`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3`  echo $result
      ;;
    *)  echo
    "Usage:$0(Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)"  ;;
      
    esac
      


    check_mysql.sh  添加check脚本权限:
    [iyunv@localhost~]#chmod u+x /root/chk_mysql.sh

    [iyunv@localhost~]#chown -R zabbix.zabbix

      4、去zabbix服务器上面检查基本mysql服务器信息是否能正常获取到:
    [iyunv@localhost~]# zabbix_get -s 127.0.0.1 -p10050 -k "system.cpu.load[all,avg15]";         //127.0.0. 1 与zabbix_agentd.conf 中 server一致                     

      0.050000
    [iyunv@localhost~]#

      zabbix web设置
      1,建立mysql host groups组
      模板是 zabbix系统提供的,进入 zabbix web 后台,Configuration-->Hosts groups-->点击“Create host group”-->选择template选项卡,选择模板“TemplateApp MySQL,Templdate OS Linux”,最后点击update 即可
    DSC0002.jpg

      2,建立hosts
      模板是 zabbix系统提供的,进入zabbix web 后台,configuration-->hosts-->点击你的主机 name-->选择template选项卡,选择模板“Template App MySQL”,最后点击左边的“Add”按钮,最后点击“update”按钮即可
    DSC0003.jpg

      3,监控性能视图
      监控脚本运行正常后,就会在zabbix-server的host下面的graph里面看到mysql的监控性能视图,monitoring-->Graphs-->Host(选择mysql服务器) Graph(选择mysql选项),可以看到性能监控视图,zabbix自带模版默认有2个性能图,这些图要等运行一段时间后才能画出来
    DSC0004.jpg

      附:
      查看zabbix web管理段工程下面的数据库配置信息
    [iyunv@localhost~]# vim /xxxx/zabbix.conf.php                                            

      

    <?php  

    // Zabbix GUI configuration file.  
    global $DB;
      
    $DB['TYPE']                              = 'MySQL';
      
    $DB['SERVER']                         = '127.0.0.1';
      
    $DB['PORT']                              = '3306';
      
    $DB['DATABASE']                       = 'zabbix';
      
    $DB['USER']                              = 'zabbix';
      
    $DB['PASSWORD']                       = 'zabbix';
      
    // Schema name. Used for IBM DB2 and PostgreSQL.
      
    $DB['SCHEMA']                   = '';
      
    $ZBX_SERVER                     = 'localhost';
      
    $ZBX_SERVER_PORT                = '10051';
      
    $ZBX_SERVER_NAME                = '';
      
    $IMAGE_FORMAT_DEFAULT   = IMAGE_FORMAT_PNG;
      
    ?>
      

  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-423345-1-1.html 上篇帖子: 同步mysql数据到ElasticSearch的最佳实践 下篇帖子: MySQL分页优化中的“INNER JOIN方式优化分页算法”到底在什么情况下会生效?
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表