![Zabbix:MySQL 服务监视器-重新启动 zabbix-agent 时出现无效条目](https://linux22.com/image/671376/Zabbix%EF%BC%9AMySQL%20%E6%9C%8D%E5%8A%A1%E7%9B%91%E8%A7%86%E5%99%A8-%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%20zabbix-agent%20%E6%97%B6%E5%87%BA%E7%8E%B0%E6%97%A0%E6%95%88%E6%9D%A1%E7%9B%AE.png)
请考虑以下情况:
- 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