一、使用Zabbix监控MySQL服务器方法

从Zabbix 2.2开始,Zabbix官方已经支持了MySQL监控,但是MySQL监控默认是不可用的,需要经过额外的设置才可以使用。Kaijia将Zabbix换到了新的服务器时候性能绰绰有余,于是决定充分发挥剩余的内存和SSD性能,把MySQL、Apache、PHP-FPM等的监控也开起来。

Google了一下后找到了一篇《How to Monitor MySQL using the new Zabbix Template App MySQL》,大部分内容都可用,可惜这位老兄最后的步骤写错了。。。于是参照此篇文章Kaijia整理了一下使用Zabbix监控MySQL服务器的方法。

首先要确定Zabbix服务有MySQL的监控模板。MySQL模板默认包含在了Zabbix 2.2中,但如果是从较旧版本的Zabbix升级而来的话可能这个模板并没有导入。这种情况的话需要访问Zabbix官方的Wiki页面下载此模板Template_App_MySQL-2.2.0.xml。然后在Zabbix服务器的前端Web界面的组态->模板页面中选择汇入(各种神翻译),在新的页面中导入下载的模板文件。

接下来就是客户端的设置了,首先要建立一个MySQL帐户用于Zabbix Agent登录获取MySQL状态,这个帐户不需要任何权限,因此实质上可以使用debian-sys-maint也是可以的,另外如果在被监控的机子上本身就安装有Zabbix Server,那么可以直接使用zabbix帐户(密码可以在/etc/zabbix/zabbix_server.conf中找到)。当然可以登录被监控端的MySQL新建一个帐户:

MySQL

GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY '密码';

FLUSH PRIVILEGES;

设置完帐户之后在被监控端新建/etc/zabbix/.my.cnf以提供Zabbix Agent访问数据库,内容类似如下:

# Zabbix Agent

[mysql]

host= localhost

user = zabbix

password = 密码

socket= /var/run/mysqld/mysqld.sock

[mysqladmin]

host= localhost

user = zabbix

password = 密码

socket= /var/run/mysqld/mysqld.sock

保存此文件然后修改/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf,这个文件用于制定Zabbix Agent如何获取MySQL数据,我们需要将所有的/var/lib/zabbix修改为当前.my.cnf文件的路径/etc/zabbix。设置完成之后保存并重启Zabbix Agent:

Shell

service zabbix-agent restart

6月9日更新:Ubuntu 14.04官方源中提供的zabbix-agent包不会直接在/etc/zabbix/zabbix_agentd.d/中释放userparameter_mysql.conf,你需要手动运行以下命令将参考的userparameter_mysql.conf复制到该目录下:

Shell

cp /usr/share/doc/zabbix-agent/examples/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.conf.d/