今天部署一个新的proxy,启动报错:”正在启动 Zabbix Proxy:zabbix_proxy [2242]: wrong value of “ServerPort” in config file”。当时一脸茫然,难道配置参数”ServerPort”不支持,仔细看了说明,确定是支持的(ps:由于我改了server的端口,故需要设置”ServerPort”这个参数,默认不用设置)。后来Google了一遍,没有找到解决方案,可能是我打开Google的方式不对😄,再zabbix官网翻翻也没有找到解决方法。
用这个参数试试默认的10051端口,验证下”ServerPort”是不是有效的参数,最后验证是有效的。然后灵感乍现,翻翻zabbix的源码看看这个参数到底如何定义的:
1 | # grep -rl "ServerPort" ./ |
找到的文件不多,在文件./src/zabbix_proxy/proxy.c中找到了有价值的信息:
1 | {"ServerPort", &CONFIG_SERVER_PORT, TYPE_INT, |
到这里就很清楚发生问题的原因了,原因是参数”ServerPort”的范围有限制,在1024至32767区间。
如果自定义的端口超过这个范围启动就会报错正在启动 Zabbix Proxy:zabbix_proxy [2242]: wrong value of "ServerPort" in config file
。修改这个参数的范围,重新编译安装zabbix proxy即可解决问题。