美文网首页
zabbix自定义监控mysql性能

zabbix自定义监控mysql性能

作者: 小慕先森 | 来源:发表于2017-10-18 16:18 被阅读0次

    查看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帐号:

    [root@localhost ~]# mysqladmin -uroot -h 127.0.0.1 password 123456
    [root@localhost ~]# mysql -u root -p
    Enter password:
    mysql>GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO zabbix@'127.0.0.1' IDENTIFIED BY 'zabbix';                              
    mysql> FLUSH PRIVILEGES;
    Query OK, 0 rows affected (0.00 sec)
    mysql> quit
    Bye
    

    3、mysql监控脚本chk_mysql.sh

    #!/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脚本权限:
    [root@localhost~]#chmod u+x /root/chk_mysql.sh
    [root@localhost~]#chown -R zabbix.zabbix chk_mysql.sh

    4、去zabbix服务器上面检查基本mysql服务器信息是否能正常获取到:
    [root@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

    zabbix web设置

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

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

      

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

      

    附:查看zabbix web管理段工程下面的数据库配置信息
    [root@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;
    ?>
    

    相关文章

      网友评论

          本文标题:zabbix自定义监控mysql性能

          本文链接:https://www.haomeiwen.com/subject/nkreuxtx.html