请考虑以下情况:
- zabbixserver:httpd、mysql-server、带本地数据库的 zabbix 2.2.11
- 数据库服务器:mysql-server
- zabbixserver正确监控本地mysql数据库。
- zabbixserver 报告数据库服务器上的 mysql 已关闭,但实际上它已启动
- zabbixserver 报告数据库服务器上的其他服务工作正常
我已经做了以下工作来实现这一点,本指南. 在数据库服务器上安装了 zabbix-agent,它向 zabbixserver 报告。
- 创建 zabbixuser,授予所有数据库的使用权限并刷新权限
- 创建
/etc/zabbix/.my.cnf
该文件/etc/zabbix/.my.cnf
被忽略。如果我将其放入,/etc/zabbix/zabbix_agentd.d
则将使用它。
[mysql]
user=zabbixuser
password=123456
[mysqladmin]
user=zabbixuser
password=123456
这个 .my.cnf 有两个配置文件:mysql 和 mysqladmin,但我不明白它们链接到哪里以及为什么要使用它们。重新启动 zabbix-agent 会导致错误。
启动 Zabbix 代理:zabbix_agentd [12334]:配置文件 [/etc/zabbix/zabbix_agentd.d//.my.cnf] 中的无效条目 [[mysql]](未遵循“parameter=value”符号),第 1 行
报告/var/log/zabbix/zabbix_agentd.log
如下:
1077:20151125:170718.508 active check configuration
update from [10.2.3.4:10051] started to fail
(cannot connect to [[10.2.3.4]:10051]: [4] Interrupted system call)
mysqladmin: unknown variable 'USER=zabbixuser'
mysql: unknown variable 'USER=zabbixuser'
这个配置有什么问题?
答案1
您的配置存在以下问题:
- 您将
.my.cnf
文件放在了错误的位置。
Zabix 代理配置文件具有规定的格式和定义的参数。如果您可以使用Include
选项来加载其他配置文件,请确保它遵循相同的格式。zabbix文档明确指出:
从 1.8.6 版本开始,如果无效(不遵循参数=值表示法) 或配置文件中存在未知参数条目。
因此,在您的情况下,.my.cnf
当您将文件放在 下时,文件将无法加载/etc/zabbix/zabbix_agentd.d
。
- 您缺少正确配置文件的部分
userparameter_mysql.conf
。
要解决这些问题,请执行以下操作:
.my.cnf
将文件从/etc/zabbix/zabbix_agentd.d
目录移动到/etc/zabbix
。同时删除所有Include
引用 .my.cnf 文件的条目(如果有)。文件内容可能如下所示:
[mysqld] user=username password=userpass [mysqladmin] user=username password=userpass
请确保此处列出的用户存在并在mysql中具有必要的权限。
编辑
/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
文件:您需要用 替换HOME=/var/lib/zabbix
以HOME=/etc/zabbix
指向正确的文件(应该出现三次),如文件第一行所述。最后重新启动代理:
service zabbix-agent restart