我们正在使用AWS CloudFormation和静态专用IP来部署服务,即每次部署时,我们都会使用IP关闭实例并生成具有相同IP的新实例。我们使用Zabbix进行监控,实例的主机名是ip-aaa-bbb-ccc-ddd.us-west-2.compute.internal(其中aaa-bbb-ccc-ddd是IP)。第一次部署时,一切正常,但是从第二次部署开始,zabbix-agent注册开始失败,说明Zabbix中存在具有相同主机名的主机。有办法解决这个问题吗?
答案 0 :(得分:2)
我假设您在Zabbix中使用自动注册。 Zabbix中主机的唯一ID是(技术)name,IP地址实际上不必是每个主机唯一。
因此,您面临的问题是AWS实际上在实例的命名方案中使用IP。重用IP意味着重用主机名。
有办法解决这个问题:
zabbix_agentd.conf
文件中的hostname参数设置为你可以控制的更独特的东西,更合乎逻辑。 (即web-server-001)。 HostnameItem
代理配置参数使用system.run[]
项密钥从系统本身获取唯一标识符,例如使用{{1}的ec2 instance-id } cli工具。然后,您可以通过在Zabbix中提供人类可读的可见名称来使主机更易于识别。答案 1 :(得分:1)
没有zabbix的经验,但有时与其他工具(udeploy / centrify)有类似的问题。由于您正在重新使用ip和hostname,因此当实例终止时,您应该查看从zabbix取消注册实例,如果有api调用,那么您可以将其添加到自动扩展生命周期组中自动取消注册(假设您使用缩放)
答案 2 :(得分:0)
您的计算机和zabbix配置文件可以有不同的名称
因此,如果您的(真实)计算机名称为ip-aaa-bbb-ccc-ddd.us-west-2.compute.internal
,您可以在zabix_agentd.conf中编写另一个名称(zabbix代理配置文件,如:
Hostname=new1.ip-aaa-bbb-ccc-ddd.us-west-2.compute.internal
在启动服务器之后和启动zabbix代理
之前更改此名称如果您不想更改Zabbix中的主机名,则必须禁用自动注册功能或尝试在zabbix_agentd.conf上注释HostMetadata和HostMetadataItem