zoukankan      html  css  js  c++  java
  • Zabbix通过percona监控MySQL

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

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

     1:系统需求

    Client上安装 zabbix-agent, php, php-mysql
    1. [root@linux-node1 ~]# yum install zabbix-agent php php-mysql
    2. [root@linux-node1 ~]# rpm -qa zabbix-agent php php-mysql
    3. php-mysql-5.4.16-36.1.el7_2.1.x86_64
    4. php-5.4.16-36.1.el7_2.1.x86_64
    5. zabbix-agent-3.0.3-1.el7.x86_64

    2:安装percona-zabbix-templates

    1. # 安装 percona-zabbix-templates
    2. yum install https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm
    3. # 也可配置 Percona yum 仓库后安装
    4. [root@linux-node1 ~]# yum install https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-3.noarch.rpm
    5. # 直接 yum install percona-zabbix-templates
    6. # 配置 Zabbix Agent
    7. [root@linux-node1 ~]# cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
    8. # 启动zabbix-agent
    9. [root@linux-node1 ~]# systemctl restart zabbix-agent

    2.1:重要配置文件

    1. [root@linux-node1 ~]# ls /var/lib/zabbix/percona/
    2. scripts templates
    3. [root@linux-node1 ~]# ls /var/lib/zabbix/percona/scripts/
    4. get_mysql_stats_wrapper.sh ss_get_mysql_stats.php
    5. [root@linux-node1 ~]# ls /var/lib/zabbix/percona/templates/
    6. userparameter_percona_mysql.conf zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.5.xml
    /var/lib/zabbix/percona/scripts/这里面的两个文件,sh的脚本是监控获取MySQL状态的,php文件是配置连接数据库用户名密码的。用shell来调用PHP。
    /var/lib/zabbix/percona/templates/这里面的两个文件,conf文件是要放在agent端/etc/zabbix/zabbix_agentd.d/下面的,XML文件是模版文件。

    3:Agent上配置MySQL的连接

    1. # 创建 .cnf 文件指定 MySQL 用户名和密码
    2. # 生产环境请一定要设置复杂密码
    3. [root@linux-node1 ~]# cat /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf
    4. <?php
    5. $mysql_user ='zabbixmoniter';
    6. $mysql_pass ='123456';
    7. # 测试脚本
    8. [root@linux-node1 ~]#/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg

    4:配置 Zabbix Server

    1、去 https://www.percona.com/downloads/percona-monitoring-plugins/ 下载 Percona Monitoring Plugins 最新 tar.gz 源码包(如果使用 Zabbix 3.0,自带模板有点旧了,并不能导入使用,后面给出解决办法)
    2、解压获取 zabbix/templates/ 目录
    3、通过 Zabbix Web 界面 (Configuration -> Templates -> Import) 导入 XML 模板,注意要另外选择上 Screens.
    4、配置主机关联上 Percona MySQL Server Template 模板。

    5:配置salve的监控

    1、先在mysql slave的agent里面需要check下看是否生效:
    1. [root@linux-node1 ~]# sh /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave
    2. ERROR 1045(28000):Access denied for user 'root'@'localhost'(using password: NO)
    3. 0
    2、配置访问mysql的基本参数:
    1. #在my.cnf配置用户名密码、sock路径
    2. [root@linux-node1 ~]# vim /usr/local/mysql/etc/my.cnf
    3. [mysql]
    4. user=zabbixmoniter
    5. password=123456
    6. socket=/usr/local/mysql/mysql.sock
    3、再次check
    4、最好在zabbix管理界面,进入Hosts的mysql从库里面,进入triggers选项栏下面会看到从percona模版加载进来的slave监控项“Slave isstopped on {HOST.NAME}”,过几分钟,就会看到slave监控生效了

    QA

    1、zabbix版本为3.0,导入模版报错

    1. Invalid tag “/zabbix_export/date”:YYYY-MM-DDThh:mm:ssZ is expected.
    2. Invalid tag “/zabbix_export/templates/template(1)/items/item(1)”: the tag snmp_community is missing.
    解决:重新导入一个针对3.0的模版
    下载地址:

    2、无图

    1. # zabbix_get 能获取数据,但是不出图。
    2. [root@linux-node1 ~]# zabbix_get -s 192.168.56.11-k "MySQL.max-connections"
    3. 151
    4. # 查看状态文件权限,为之前测试脚本时的 root 权限,zabbix 用户并不能读写,所以获取不到数据
    5. [root@linux-node1 ~]# ll /tmp/localhost-mysql_cacti_stats.txt
    6. -rw-r--r--1 root root 1374Jun2211:33/tmp/localhost-mysql_cacti_stats.txt
    7. # 删除 root 用户测试时生成的 mysql 状态文件
    8. [root@linux-node1 ~]# rm -f /tmp/localhost-mysql_cacti_stats.txt
    9. # 会自动生成 zabbix用户权限的 mysql 状态文件
    10. [root@linux-node1 ~]# ll /tmp/localhost-mysql_cacti_stats.txt
    11. -rw-rw-r--1 zabbix zabbix 1374Jun2211:41/tmp/localhost-mysql_cacti_stats.txt
    12. # 过一会儿就可以看到出图了

    3、执行脚本连接不上MySQL或者命令未找到

    /var/lib/zabbix/percona/scripts/下面的get_mysql_stats_wrapper.sh中配置的变量HOST、CMD、RES等是否正确。主机名若使用localhost,是否已经在mysql中授权,最好是重新启用一个用户名来专门用作zabbix监控使用。
    1. mysql> GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'zabbixmoniter'@'localhost' IDENTIFIED BY "123456";
    2. Query OK,0 rows affected (0.06 sec)
     
     
  • 相关阅读:
    小波变换的引入,通俗易懂
    Leetcode 437. Path Sum III
    Leetcode 113. Path Sum II
    Leetcode 112 Path Sum
    Leetcode 520 Detect Capital
    Leetcode 443 String Compression
    Leetcode 38 Count and Say
    python中的生成器(generator)总结
    python的random模块及加权随机算法的python实现
    leetcode 24. Swap Nodes in Pairs(链表)
  • 原文地址:https://www.cnblogs.com/caoxiaojian/p/5706992.html
Copyright © 2011-2022 走看看