zabbix_proxy 启动报错 ... wrong value of "ServerPort" in config ...

今天部署一个新的proxy,启动报错:”正在启动 Zabbix Proxy:zabbix_proxy [2242]: wrong value of “ServerPort” in config file”。当时一脸茫然,难道配置参数”ServerPort”不支持,仔细看了说明,确定是支持的(ps:由于我改了server的端口,故需要设置”ServerPort”这个参数,默认不用设置)。后来Google了一遍,没有找到解决方案,可能是我打开Google的方式不对😄,再zabbix官网翻翻也没有找到解决方法。
用这个参数试试默认的10051端口,验证下”ServerPort”是不是有效的参数,最后验证是有效的。然后灵感乍现,翻翻zabbix的源码看看这个参数到底如何定义的:

1
2
3
4
5
6
# grep -rl "ServerPort" ./
./ChangeLog
./src/zabbix_proxy/proxy.c
./src/zabbix_proxy/zabbix_proxy-proxy.o
./src/zabbix_proxy/zabbix_proxy
./conf/zabbix_proxy.conf

找到的文件不多,在文件./src/zabbix_proxy/proxy.c中找到了有价值的信息:

1
2
{"ServerPort",                  &CONFIG_SERVER_PORT,                    TYPE_INT,
PARM_OPT, 1024, 32767},

到这里就很清楚发生问题的原因了,原因是参数”ServerPort”的范围有限制,在1024至32767区间。
如果自定义的端口超过这个范围启动就会报错正在启动 Zabbix Proxy:zabbix_proxy [2242]: wrong value of "ServerPort" in config file。修改这个参数的范围,重新编译安装zabbix proxy即可解决问题。

----------------本文结束 感谢阅读----------------