「MySQL」- 配置 Zabbix 监控

  CREATED BY JENKINSBOT

本笔记记录如何使用 Zabbix 监控 MySQL 数据库,虽然 Zabbix 内置开箱即用的 MySQL 监控模板,但是“开箱”本身也是有些困难的。

我们没有记录 Zabbix 添加及使用模板的方法,内容多为使用 MySQL 监控模板需要的准备工作。

CentOS Linux release 7.5.1804 (Core) with Zabbix 4.0.1

操作步骤

1)为主机添加 Teamplate DB MySQL 监控模板;
2)在被监控主机中创建 /var/lib/zabbix/.my.cnf 配置文件以用于连接数据库获取信息:

[client]
user='username'
password='password'

注意事项

1)参考 /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf 文件;
2)对于用于监控的 MySQL 用户,文档也没有说明,需要自行分析 userparameter_mysql.conf 文件。我们直接使用 root 帐号,但是不推荐如此。在 Zabbix 4.0 中,稳定具有详细描述,但也存在其他问题。

CentOS release 6.5 (Final) with Zabbix 4.4.3

参考官方 Zabbix Documentation 4.4/Requirements for MySQL by Zabbix agent template 文档。

常见问题汇总

#1 sh: mysql: command not found

当执行 zabbix_get -s 127.0.0.1 -k 'mysql.get_status_variables["localhost","3306"]‘ 命令时,提示:

sh: mysql: command not found

这是因为 zabbix agent 默认环境变量为 PATH=/sbin:/usr/sbin:/bin:/usr/bin,而 mysql 命令没有在该路径中。

创建 /etc/sysconfig/zabbix-agent 文件,追加 PATH=$PATH:/path/to/mysql/bin

#2 ERROR 1045 (28000): Access denied for user ‘zabbix’@’x.x.x.x’ (using password: NO)

Preprocessing failed for: ERROR 1045 (28000): Access denied for user 'zabbix'@'10.10.50.188' (using password: NO)
1. Failed: cannot extract XML value with xpath "/resultset/row[field/text()='Aborted_clients']/field[@name='Value']/text()": cannot parse xml value: Start tag expected, '<' not found

数据库检查使用被动模式。由于 Zabbix Agent 地址配置错误而导致 Zabbix Server 无法连接 Zabbix Agent,转而连接本地 Zabbix Agent 服务(通常不会遇到该错误)。