Похожая проблема возникла у меня. Так же, как и у вас, имя агента прописывается в конфигурации = IP. Проблема возникала из-за копирования сотрудниками агента с узла на узел, либо клонирования образа OS с имплементированным агентом. Тут же появлялся узел с уже известным именем агента "Вася Пупкин" (задано жёстко в конфигурации агента) и все свои метрики активный агент начинал складывать в уже известный узел с таким же именем. И, конечно же, добавлял свой интерфейс к "первородному" узлу Вася Пупкин. Сначала у меня была идея использовать HostnameItem=system.run[ask_ip.bat], чтобы при изменении IP узла менялось и имя агента. Идея потерпела фиаско. Обсуждение можно посмотреть https://support.zabbix.com/browse/ZBX-21227 Суть -это не работает, агент стабильно падает. Пришлось жёстко прописать Hostname=IP Для этого написал батник, который на этапе установки спрашивал IP и прописывал в конфиг агента. И получил то, что описано выше.
Создал метрику активный zabbix agent - agent.hostname. Её значение равно IP узла при развёртывании агента. Далее создал метрику активный zabbix agent, определяющую собственный IP wmi.getall["root\cimv2","select IPAddress from Win32_NetworkAdapterConfiguration where IpEnabled=TRUE and DHCPEnabled=FALSE"] У нас все IP - статика, потому DHCPEnabled=FALSE. Далее предобработка для выделения нужных IP Обсуждение здесь . Добавил триггер сравнения этих метрик и тут же получил ворох событий несовпадения имени и IP, поскольку все активные агенты с одинаковым именем, но разными интерфейсами асинхронно складывают метрику в метрику "первородного" узла. Что делать с событиями, порождаемыми триггером, решите сами. Если же у вас динамический IP, получаемый по DHCP, то описанная вами ситуация - штатное поведение. В этом случае есть несколько путей - либо настроить DNS и обращаться по DNS имени, либо зарезервировать все адреса узлов на DHCP сервере, чтобы они не менялись, либо по событию несовпадения IP и имени менять имя агента в конфигурации через выполнение батника system.run[change_name_agent.bat] Пропишите имя агента в отдельном конфигурационном файле и меняйте его перезаписью, что-то типа echo.Hostname=xx.xx.xx.xx>new_name.conf. Не забудьте после этого вставить в батнике команду перестартовки агента.
Создал метрику активный zabbix agent - agent.hostname. Её значение равно IP узла при развёртывании агента. Далее создал метрику активный zabbix agent, определяющую собственный IP wmi.getall["root\cimv2","select IPAddress from Win32_NetworkAdapterConfiguration where IpEnabled=TRUE and DHCPEnabled=FALSE"] У нас все IP - статика, потому DHCPEnabled=FALSE. Далее предобработка для выделения нужных IP Обсуждение здесь . Добавил триггер сравнения этих метрик и тут же получил ворох событий несовпадения имени и IP, поскольку все активные агенты с одинаковым именем, но разными интерфейсами асинхронно складывают метрику в метрику "первородного" узла. Что делать с событиями, порождаемыми триггером, решите сами. Если же у вас динамический IP, получаемый по DHCP, то описанная вами ситуация - штатное поведение. В этом случае есть несколько путей - либо настроить DNS и обращаться по DNS имени, либо зарезервировать все адреса узлов на DHCP сервере, чтобы они не менялись, либо по событию несовпадения IP и имени менять имя агента в конфигурации через выполнение батника system.run[change_name_agent.bat] Пропишите имя агента в отдельном конфигурационном файле и меняйте его перезаписью, что-то типа echo.Hostname=xx.xx.xx.xx>new_name.conf. Не забудьте после этого вставить в батнике команду перестартовки агента.
Comment