• zabbix-使用percona mysql插件来监控mysql


    概述

           zabbix自带的mysql插件来监控mysql数据库,但是太过简陋了,为了更详细的监控,业界的同学们都使用Percona Monitoring Plugins 监控 MySQL的方式。

    安装php脚本运行环境

    percona监控zabbix的脚本使用php写的,所以需要准备好php运行环境,这里直接用yum安装就可以满足要求了:

    yum install -y php php-mysql

     

    安装官方percona插件

    官网:https://www.percona.com/doc/percona-monitoring-plugins/1.1/index.html

    image

    1,安装percona的yum源

    yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm

    2,安装percona监控插件

    yum install percona-zabbix-templates

    3,查看percona-zabbix-templates 安装后的脚本位置和模板位置

    [root@mysql03 home]# rpm -ql  percona-zabbix-templates-1.1.8-1.noarch
    /var/lib/zabbix/percona
    /var/lib/zabbix/percona/scripts
    /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
    /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
    /var/lib/zabbix/percona/templates
    /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf
    /var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml

    注:安装后会生成2个目录,/var/lib/zabbix/percona/scripts是监控脚本目录,/var/lib/zabbix/percona/templates是监控mysql的xml模版目录,然后把/var/lib/zabbix/percona/templates/目录下的模版文件zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6_1.xml复制出来,在zabbix的管理界面import导入进去,但是报如下错误:

    image

    解决办法:

    将zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml导入zabbix2.4中再导出。之后将新的导出xml导入到3.2中问题解决。

    4,拷贝userparameter_percona_mysql.conf文件到被监控的mysql服务器上

    cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/

    5,修改客户端的zabbix_agentd.conf文件, 把userparameter_percona_mysql.conf 所在的目录Include增加进去

    Include=/etc/zabbix/zabbix_agentd.d/*.conf

    6,修改监控脚本

    # 修改用户名,密码,端口,sock文件路径
    vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
    $mysql_user = 'zabbix';
    $mysql_pass = 'Ab.12345';
    $mysql_port = 3306;
    $mysql_socket = "/tmp/mysql.sock";

    注:若mysql没有使用默端口3006,则还需要修改如下脚本文件:

    # 1,这里要先建好这个文件,否则会报rm权限错误
    vim /tmp/localhost-mysql_cacti_stats.txt:3317
    chown -R zabbix.zabbix /tmp/$HOST-mysql_cacti_stats.txt:3317
     
    #2,修改端口脚本
    vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
    CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt "
    换成:
    CACHEFILE="/tmp/$HOST-mysql_zabbix_stats.txt:3317"
     
    TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt`
    换成:
    TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_zabbix_stats.txt:3317`
     
    #3,修改mysql执行命令路径
    #RES=`HOME=~zabbix mysql -e 'SHOW SLAVE STATUSG' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '
    ' ','`
    换成:
    RES=`/usr/local/mysql/bin/mysql -e 'SHOW SLAVE STATUSG' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '
    ' ','`

    登陆mysql创建监控要用的账号

    mysql> GRANT USAGE,SELECT,PROCESS,SUPER,REPLICATION CLIENT ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY "Ab.12345";
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    

    测试监控项

    agent端测试

    [root@mysql01 home]# /usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg
    gg:20
    [root@mysql01 scripts]# ./get_mysql_stats_wrapper.sh gm
    1
    [root@mysql01 scripts]# ./get_mysql_stats_wrapper.sh gw
    1819813

    zabbix-server端测试监控项

    [root@SMP tmp]# zabbix_get -s 192.230.4.11 -k 'MySQL.Handler-commit'
    rm: 无法删除"/tmp/localhost-mysql_cacti_stats.txt": 不允许的操作
    18041875

    注:权限问题解决方法

    登录zabbix-agent服务器,执行:

    [root@mysql01 tmp]# cd /tmp
    [root@mysql01 tmp]# chown -R zabbix.zabbix localhost-mysql_cacti_stats.txt 
    [root@mysql01 tmp]# /etc/init.d/zabbix-agent restart

    再次测试:

    [root@SMP tmp]# zabbix_get -s 192.230.4.11 -k 'MySQL.Handler-commit'
    18041956

    主机关联模板

    image

    查看数据:

    image

    mysql从库监控slave配置

    先在mysql slave的agent里面需要check下看是否生效:

    [root@mysql01 scripts]# ./get_mysql_stats_wrapper.sh running-slave
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    0

    需要配置下访问mysql的一些基本参数:

    在my.cnf配置用户名密码、sock路径 

    [mysql]
    no-auto-rehash
    user=zabbix
    password=Ab.12345
    socket=/var/lib/mysql/mysql.sock

    再次测试:

    [root@mysql03 scripts]# sh /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave 
    1

    结束!

  • 相关阅读:
    Web测试与App测试的区别
    unittest参数化
    算法-python
    冒泡排序算法-python
    mysql基础知识
    Web自动化-浏览器驱动chromedriver安装方法
    Selenium-三种等待方式
    C++中进制转换问题
    C++11新特性,对象移动,右值引用,移动构造函数
    C++ 拷贝控制和资源管理,智能指针的简单实现
  • 原文地址:https://www.cnblogs.com/snailshadow/p/9153429.html
Copyright © 2020-2023  润新知