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.-.el6.x86_64
zabbix-agent-1.8.-.el6.x86_64
php-mysql-5.3.-.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 = ;
$mysql_socket = "/tmp/mysql.sock";

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

# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh nj

# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gw

二、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

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

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

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

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

监控主从同步的主要项目:
  # 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 STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','` 监控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. zabbix_server服务端在监控的时候就获取警告了
[root@aliyun-american-guigu-zabbix:~]# zabbix_get -s 1.1.1.1 -p -k 'MySQL.running-slave'
mysql: [Warning] Using a password on the command line interface can be insecure. 会报错:
不支持的key 解决办法:
RES=`HOME=/usr/local/zabbix_agents_3.2.0/scripts /usr/local/mysql/bin/mysql -S /tmp/mysql.sock -e 'SHOW SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr '\n' ','` 语句中接入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"

zabbix3.0.4使用percona-monitoring-plugins插件来监控mysql5.6的详细实现过程的更多相关文章

  1. 关于 percona monitoring plugins插件报slave is stoped on ip地址

    思路:肯定是某个item触发了触发器 去看触发器,找到 slave is stoped,如下图 看到键是mysql.running-slave ,然后去定义key的文件中查看该键对应的脚本,修改脚本. ...

  2. Docker部署Zabbix监控MariaDB主从同步(Percona Monitoring Plugins for Zabbix)

    一.安装Docker并部署Zabbix 建议先配置清华大学的docker-ce yum源,速度有保障:清华大学repo源 1.Zabbix Server节点配置 部署环境: [root@server0 ...

  3. Zabbix 3.2.6-Mysql多实例监控-Percona Monitoring Plugins自动发现

    mysql多实例监控实录   系统环境: cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 内核版本: uname -r 3.1 ...

  4. 修正Percona Monitoring Plugins for Zabbix的一处脚本Bug

    今天小试了一把Percona Monitoring Plugins for Zabbix模板,自己辛辛苦苦写的那一大堆Python脚本,貌似用这个模板全都覆盖到了.但是,我也发现最新的版本percon ...

  5. Zabbix 3.x中使用Percona Monitoring Plugins监控MySQL

    1.下载安装percona-zabbix-templates-1.1.7-2.noarch.rpm 下载地址:https://www.percona.com/downloads/percona-mon ...

  6. 分布式监控系统Zabbix-3.0.3-完整安装记录(3)-监控nginx,php,memcache,Low-level discovery磁盘IO

    前段时间在公司IDC服务器上部署了zabbix3.0.3监控系统,除了自带的内存/带宽/CPU负载等系统资源监控模板以及mysql监控模板外,接下来对诸如nginx.php.memcache.磁盘IO ...

  7. zabbix系列(七)zabbix3.0添加对tcp连接数及状态的监控

    原理: netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}' TIME_WAIT 79 ESTABLISHED 6 LISTE ...

  8. zabbix系列(二)zabbix3.0.4添加对mysql数据库性能的监控

    zabbix3.0.4添加Mysql的监控 zabbix3.0 server已自带mysql的模板了,只需安装agent端,然后在web端给主机增加模板就行了. Agent端操纵 /etc/zabbi ...

  9. 实战zabbix3.0.2 使用percona mysql插件监控mysql5.7

    1.系统环境 [root@shard0 templates]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.2 ...

随机推荐

  1. GC ROOT

    (GC Root有哪些) 基本思想是通过一系列称为“GC roots”的对象作为起始点,可以作为根节点的是: 虚拟机栈(栈帧中的本地变量表)中引用的对象(即所有Java线程当前活跃的栈帧里指向GC堆里 ...

  2. solr插件导入数据库中的数据

    solr插件导入数据库中的数据 1:自定义与数据库对应的域: 1.1. 设置业务系统Field 如果不使用Solr提供的Field可以针对具体的业务需要自定义一套Field. 例如:如下是商品信息Fi ...

  3. idea搭建Spring Boot+MyBatis

    需要准备的环境: idea 2017.2 jdk1.8.0_144 Maven 3.5.0 请提前将idea与Maven.jdk配置好,本次项目用的都是比较新的. 步骤: 一.首先使用idea新建一个 ...

  4. Silverlight 样式的灵活使用

    众所周知,Silverlight将界面设计与代码实现分开.即便如此,如果不能灵活地运用样式Style,开发的效率依然会比较低.比如,针对类似的TextBlock,你可能需要反复地在设计器xaml中复制 ...

  5. SpringBoot系列: 集成MyBatis

    本文主要修改自下面博客:http://www.ityouknow.com/springboot/2016/11/06/spring-boo-mybatis.htmlhttp://tengj.top/2 ...

  6. vue插件 使用use注册Vue全局组件和全局指令

    插件一般会注册到全局使用 官方编辑插件介绍:https://vuefe.cn/v2/guide/plugins.html 全局组件: .首先建一个自定义组件的文件夹,比如叫loading,里面有一个i ...

  7. gai_strerror函数

    一.函数原型 #include <netdb.h> const char *gai_strerror(int error); 返回:指向错误描述消息字符串的指针 二.由getaddrinf ...

  8. 【解题报告】SRM-08

    A Description 给一个 01 串设为其 S,询问是否存在只出现两次的 01 串 T. 这里的出现定义为存在一串下标 ,满足  且 . Input 一行,一个 01 串 Output 一行, ...

  9. 自己对Java的一点看法

    作为一个理论性比较强的学生,谈一下这段时间对java以及对程序设计的理解 java相对于其它语言有几个特点,一个是面向对象,一个是强类型           首先谈谈面向对象,关于类和对象,这个一定要 ...

  10. Python的参数类型

    参数类型: 1.必填参数,位置参数(positional arguments,官方定义,就是其他语言所说的参数) 2.默认值参数,非必传 3.可变参数,非必传,不限制参数个数,比如说给多个人发邮件,发 ...