使用Zabbix监控MySQL数据库

Posted 运维社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Zabbix监控MySQL数据库相关的知识,希望对你有一定的参考价值。



运维社区 · 每日干货

https://unixhot.com


前言


mysql的监控有很多种方案,如果你已经使用了Zabbix作为监控系统,那么集成进来就非常合适。而且使用Zabbix监控MySQL是比较容易的,Zabbix官方也自带了MySQL监控模板,但是生产环境推荐使用percona的监控插件。

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


下面让我们动手来完成添加一台MySQL数据库的监控工作。



1.安装percona仓库

# rpm -ivh

 

2.部署监控环境

percona的监控插件是php编写的。通过php连接mysql来获取相关的数据,所以需要你在本地安装zabbix agent的同时,部署phpphp-mysql

[root@linux-node1 ~]# yum install zabbix22-agentphp php-mysql

 

3.安装perconazabbix模版

[root@linux-node1 ~]# yum install -ypercona-zabbix-templates

[root@linux-node1 ~]# rpm -qlpercona-zabbix-templates  

/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.6.xml

    可以看到他的组成部分有一个shell脚本,一个php脚本,一个zabbix的配置文件,和一个Zabbix 模版的xml。下面我们需要引用配置文件,并在Zabbix上来导入该模版。

# vim /etc/zabbix_agentd.conf

Include=/etc/zabbix_agentd.conf.d/

# mkdir/etc/zabbix_agentd.conf.d/

 

4.复制用户自定义配置项到Zabbix配置目录

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

 

5.PHP可以连接到MySQL

# vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php.cnf


<?php

$mysql_user = 'root';

$mysql_pass = 's3cret';   //设置为你mysql的相关用户名和密码。

 

6.测试监控脚本

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

 

7.修改监控脚本

默认情况下,监控MySQL主从的,直接是硬编码在get_mysql_stats_wrapper.sh中。如果你的mysql安装路径或者socket不同,需要手动修改下才可以使用。如果是从库,测试,返回1,证明该脚本正常。

# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave

1

 

8.导入zabbix模版

/var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6.xml下载到本地,然后在zabbix上导入

Configuration -> Templates -> Import

使用Zabbix监控MySQL数据库


下面你就可以给你的MySQL数据库指定监控模板了,由于篇幅原因就不在截图,相信这难不倒你!


生产环境的注意事项



MySQL监控用户授权

在我们监控MySQL的时候,需要连接到MySQL数据库,但是在进行用户授权的时候,要遵循权限最小化的原则,分配最简单够用的权限即可,下面是我给生产MySQL的监控用户授权。

mysql> grant select,process,replicationclient on *.* to monitor@'192.168.1.11' identified by 'monitor@xx';

mysql> flush privileges;

 

  • process通过这个权限,用户可以执行SHOWPROCESSLISTKILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。

  • replication client拥有此权限可以查询master serverslave server状态。

 

彻底清除MySQL Slave信息

在生产环境,MySQL MasterSlave进行主从切换的时候,Slave成功升级为主库,那么这个时候就需要彻底清理从库的信息,不然监控系统会认为这台服务器是Slave,而且会报主从同步失败。

    其实非常的简单,只需要以下两步:

stop slave;

reset slave all;

   RESET SLAVE ALL是清除从库的同步复制信息、包括连接信息和二进制文件名、位置。

   从库上执行这个命令后,使用show slave status将不会有输出。


分享嘉宾



赵舜东

   江湖人称“赵班长”,曾在武警某部负责指挥自动化架构和运维,曾带团队负责国内知名电商运维工作,SaltStack中国用户组发起人、运维社区发起人、《saltstack入门与实践》作者,《运维知识体系》作者



牛人并不可怕,可怕的是牛人比我们还努力!

以上是关于使用Zabbix监控MySQL数据库的主要内容,如果未能解决你的问题,请参考以下文章

zabbix使用percona插件监控mysql数据库(十九)

如何实施zabbix对mysql全面监控

ZABBIX利用自带模板监控mysql数据库

zabbix监控数据库

zabbix2.4.5自带mysql监控

zabbix 2.2 使用自带的模板监控mysql