• zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程


    zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程


    因为Zabbix自带的MySQL监控没有提供可以直接使用的Key,所以一般不采用,业界的同学们都使用Percona Monitoring Plugins 监控 MySQL的方式

    Percona 为 MySQL 数据库服务器进行了改进,在功能和性能上较 MySQL 有着很显著的提升。该版本提升了在高负载情况下的 InnoDB 的性能、为 DBA 提供一些非常有用的性能诊断工具;另外有更多的参数和命令来控制服务器行为。

    对线上的MySQL服务器实现监控,percona监控插件是php开发,因此要在agent安装php环境

    一、zabbix-agent端操作(即被监控的Mysql服务器)
    1.安装php环境和插件

    ①安装php环境
    percona监控插件是php开发,因此要在agent安装php环境

    # yum install zabbix-agent php php-mysql
    [root@centossz008 ~]# rpm -qa zabbix-agent php php-mysql
    php-5.3.3-49.el6.x86_64
    zabbix-agent-1.8.22-1.el6.x86_64
    php-mysql-5.3.3-49.el6.x86_64

    ②安装percona插件

    [root@centossz008 ~]# rpm -ivh https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.7/binary/redhat/6/x86_64/percona-zabbix-templates-1.1.7-2.noarch.rpm

    ③配置参数

    # mkdir -p /etc/zabbix/zabbix_agentd.d
    # cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf

    将模板include到配置文件中
    # vim /etc/zabbix/zabbix_agentd.conf
    添加如下:

    Include=/etc/zabbix/zabbix_agentd.d/

    重启生效

    service zabbix-agent restart

    2.修改监控相关的脚本:

    ①编辑监控的php配置文件(通过该配置文件获取Mysql的账号密码)

    单独添加一个较低权限的用户zabbix专门用于对数据库进行监控

    mysql> GRANT PROCESS,SUPER,REPLICATION CLIENT ON *.* TO zabbix@'localhost' IDENTIFIED BY 'zabbixpassword'; 
    mysql> flush privileges;

     mysql8.0授权,用户,指定 mysql_native_password 加密方式,否则无法取到数据
    create user 'monitor'@'localhost' identified with mysql_native_password by 'pass';
    GRANT RELOAD, PROCESS, SUPER, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE ON *.* TO 'monitor'@'localhost';
    flush privileges;

    # vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf
    
    <?php
    $mysql_user = 'zabbix'; 
    $mysql_pass = 'zabbixpassword';

    ②编辑ss_get_mysql_stats.php文件,修改具体的用户名、密码、socket、Mysql端口等参数

    # vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php
    $mysql_user = 'zabbix';
    $mysql_pass = 'zabbixpassword';
    $mysql_port = 3306;
    $mysql_socket = "/tmp/mysql.sock";

     

    ③在zabbix-agent客户端进行测试(一定要能获取数据,否则服务端会无法获取监控数据)

    # /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh nj
    276671
    
    # /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gw
    1

    二、zabbix-server web端操作
    1.导入监控模板


    报错:
    nvalid tag "/zabbix_export/date": "YYYY-MM-DDThh:mm:ssZ" is expected.

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

    2.修改日志权限

    chown -R zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt

    3.添加客户端模板

    4.通过服务端验证是否生效,并查看图像

    客户端/var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf 文件可以看到支持的监控项

    [root@node2 scripts]# zabbix_get -s 192.168.3.12 -k MySQL.file-reads
    171
    [root@node2 scripts]# zabbix_get -s 192.168.3.12 -k MySQL.os-waits
    2

     

    三、监控mysql主从
    需要在slave的节点上配置

    修改slave上的监控脚本,添加账号、密码、socket等参数

    # vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh
    RES=`HOME=~zabbix mysql -h192.168.3.13 -uzabbix -pzabbixpassword -S /tmp/mysql.sock -e 'SHOW SLAVE STATUSG' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '
    ' ','`
    监控主从同步

      监控主从同步的主要项目:
      # Slave_IO_Running和Slave_SQL_Running是否为yes即这两个线程是否在工作
      UserParameter=MySQL.running-slave,/usr/local/zabbix_agents_3.2.0/scripts/get_mysql_stats_wrapper.sh running-slave
      # 主从延迟多少秒Seconds_Behind_Master
      UserParameter=MySQL.slave-lag,/usr/local/zabbix_agents_3.2.0/scripts/get_mysql_stats_wrapper.sh jj


    要注意php的路径
    CMD="/usr/local/php/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items gg"
    默认是这样 RES
    =`HOME=~/usr/local/mysql/bin/mysql -S /tmp/mysql.sock -e 'SHOW SLAVE STATUSG' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr ' ' ','` 监控slave的时候,客户端在shell中是可以获取支持参数的RES= yes,yes的 执行的时候发出警告 [root@Europe_DB1:~]# /usr/local/zabbix_agents_3.2.0/scripts/get_mysql_stats_wrapper.sh running-slave mysql: [Warning] Using a password on the command line interface can be insecure. 1 zabbix_server服务端在监控的时候就获取警告了 [root@aliyun-american-guigu-zabbix:~]# zabbix_get -s 1.1.1.1 -p 10050 -k 'MySQL.running-slave' mysql: [Warning] Using a password on the command line interface can be insecure. 1 会报错: 不支持的key 解决办法: RES=`HOME=/usr/local/zabbix_agents_3.2.0/scripts /usr/local/mysql/bin/mysql -S /tmp/mysql.sock -e 'SHOW SLAVE STATUSG' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr ' ' ','` 语句中接入HOME目录,并且在该目录下创建.my.cnf文件,将账户密码写入这个文件,mysql在连接数据库的时候就会去读取这个文件,就绕过了不安全的提示 # cat /usr/local/zabbix_agents_3.2.0/scripts/.my.cnf [client] user=zabbix password=zabbix

    测试报警是否生效
    mysql> stop slave;
    Query OK, 0 rows affected (0.13 sec)

    调试技巧:

    有时候用zabbix_get获取不到监控端的值,本机执行也为空,可以用如下命令(补全)进行调试,就把问题暴露出来了

    CMD="/usr/local/php/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items gg"

  • 相关阅读:
    几维安全SDK应用加固,全线5折为APP保驾护航
    物联网渗透测试威胁建模,捕捉应用相关安全风险
    【几维安全】Android代码混淆,代码混淆工具,Android版使用详细说明
    畅想物联网安全未来,几维安全让万物互联更安全
    域起网络携手几维安全,护航互联网游戏业务安全
    Android 加密, Android 常用加密, Android So 库高强度加密
    车联网安全威胁分析及防护思路,几维安全为智能汽车保驾护航
    C#实现基于ffmpeg加虹软的人脸识别
    OSX 下搭建Asp.Net vNext的开发环境
    验证码识别记录
  • 原文地址:https://www.cnblogs.com/reblue520/p/6874372.html
Copyright © 2020-2023  润新知