从Zabbix 2.2开始,Zabbix官方已经支持了MySQL监控,但是MySQL监控默认是不可用的,需要经过额外的设置才可以使用。Kaijia将Zabbix换到了新的服务器时候性能绰绰有余,于是决定充分发挥剩余的内存和SSD性能,把MySQL、Apache、PHP-FPM等的监控也开起来。
Google了一下后找到了一篇《》,大部分内容都可用,可惜这位老兄最后的步骤写错了。。。于是参照此篇文章Kaijia整理了一下使用Zabbix监控MySQL服务器的方法。
首先要确定Zabbix服务有MySQL的监控模板。MySQL模板默认包含在了Zabbix 2.2中,但如果是从较旧版本的Zabbix升级而来的话可能这个模板并没有导入。这种情况的话需要访问Zabbix官方的下载此模板。然后在Zabbix服务器的前端Web界面的组态->模板页面中选择汇入(各种神翻译),在新的页面中导入下载的模板文件。
接下来就是客户端的设置了,首先要建立一个MySQL帐户用于Zabbix Agent登录获取MySQL状态,这个帐户不需要任何权限,因此实质上可以使用debian-sys-maint也是可以的,另外如果在被监控的机子上本身就安装有Zabbix Server,那么可以直接使用zabbix帐户(密码可以在/etc/zabbix/zabbix_server.conf中找到)。当然可以登录被监控端的MySQL新建一个帐户:
1 2 | GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY '密码'; FLUSH PRIVILEGES; |
设置完帐户之后在被监控端新建/etc/zabbix/.my.cnf以提供Zabbix Agent访问数据库,内容类似如下:
1 2 3 4 5 6 7 8 9 10 11 | # 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:
1 | service zabbix-agent restart |
6月9日更新:Ubuntu 14.04官方源中提供的zabbix-agent包不会直接在/etc/zabbix/zabbix_agentd.d/中释放userparameter_mysql.conf,你需要手动运行以下命令将参考的userparameter_mysql.conf复制到该目录下:
1 | cp /usr/share/doc/zabbix-agent/examples/userparameter_mysql.conf /etc/zabbix/zabbix_agentd.conf.d/ |
这样我们在被监控端的设置就完成了,现在只需要在Zabbix前端将MySQL模板添加到需要监控的主机项中就可以开始监控了。