我有一台运行良好的 Zabbix 1.8.2 服务器,用于为我们的办公室和托管设施收集数据。但是托管设施和办公室之间的连接不稳定。我试图在托管设施端设置一个代理,以便缓存 1 小时并将数据转发到我们办公室的主服务器。我们的 zabbix 服务器是从源代码编译的,并使用 mysql 数据库
我按照 zabbix 文档中的说明使用 sqlite3 数据库编译代理。我在 Administration->DM->Proxies 下将代理添加到 zabbix。zabbix 服务器“看到”代理,因为“上次看到”字段始终低于 60 秒。但是,当我将 colo 主机分配给代理时,我停止从它接收数据。colo 主机的 zabbix_agentd.log 文件显示以下内容:
29343:20100622:124847 Timeout while answering request
29343:20100622:124847 Getting list of active checks failed. Will retry after 60 seconds
zabbix_proxy.log 说明了这一点。
2041:20100622:123131.760 Deleted 0 records from history [0.000994 seconds]
2028:20100622:124131.671 Error while receiving answer from server [ZBX_TCP_READ() failed
我也无法接收任何对我来说比 zabbix 代理数据更重要的 SNMP 数据。有人遇到过这个问题吗?
Zabbix 服务器操作系统:CentOS5.4 Zabbix 服务器版本:1.8.2(来自源代码) Zabbix 代理操作系统:CentOS5.4 Zabbix 代理版本:1.8.2(来自源代码)
PS zabbix 代理上的 SQLite 数据库从未写入任何数据,它与我从 zabbix-1.8.2/create/schema 中的空白模式创建它时相同。 (是的,我已经检查了权限)
答案1
几周前我在一台主机上遇到了同样的问题。
使用 zabbix-agent 安装新主机后,我在 Zabbix webpannel 中收到了“ZBX_TCP_READ()”。
解决方案是将 zabbix_agentd.conf 中的 Server 值更改为 IP 而不是 HOSTNAME。
该问题源于 /etc/resolv.conf 中定义的名称服务器由于某种原因而滞后。
我不知道这是否与您的问题有关,但值得一试。
答案2
如果您正在使用主动项目,则必须将代理 IP 设置为 agentd 守护进程配置文件“服务器”指令中的第一个条目。如果它是被动检查,那么代理 IP 仍然必须在“服务器”指令中,以便允许来自它的连接。
snmp 是不同的东西,但总的来说我有两种猜测:
- snmp 设备应该允许来自 zabbix 代理主机的传入连接;
- zabbix 代理应该使用 snmp 支持进行编译 - 请参阅其日志文件中的代理启动消息,它对 snmp 支持说了什么?