У меня есть сервер zabbix и агент на двух разных компьютерах. Агент работает в активном режиме, например У меня это в конфигурационном файле:
StartAgents=0
ServerActive=my.zabbix.server.com
Hostname=my.zabbix.agent.com
К серверу zabbix можно получить доступ с машины с агентом, например:
telnet my.zabbix.server.com 10051
Trying 111.111.111.111...
Connected to my.zabbix.server.com.
Escape character is '^]'.
Connection closed by foreign host.
Более того, на сервере была включена автоматическая регистрация хоста, и агент успешно зарегистрировал хост, когда я впервые его запустил. Значит, соединение должно быть живым. Вот что я вижу в журнале агента, когда запускаю его:
83074:20171128:082440.324 Starting Zabbix Agent [my.zabbix.agent.com]. Zabbix 3.4.1 (revision 71734).
83074:20171128:082440.324 **** Enabled features ****
83074:20171128:082440.324 IPv6 support: YES
83074:20171128:082440.324 TLS support: YES
83074:20171128:082440.324 **************************
83074:20171128:082440.324 using configuration file: /usr/local/etc/zabbix34/zabbix_agentd.conf
83074:20171128:082440.324 agent #0 started [main process]
83076:20171128:082440.325 agent #1 started [collector]
83077:20171128:082440.326 agent #2 started [active checks #1]
Другими словами, агент мог подключиться к серверу, он даже распознал его версию. Больше в журнале агента ничего не происходит.
На сервере по-прежнему пишет, что хост недоступен!
В чем может быть проблема?
ОБНОВИТЬ: в интерфейсе я вижу это сообщение:
Я не уверен, почему он хочет подключиться к 10050? Он используется для пассивных агентов. Мой агент должен быть активен.
ОБНОВЛЕНИЕ2: Если я удалю хост с сервера zabbix и перезапущу агент, то произойдет следующее:
Хост снова автоматически регистрируется на сервере. Журнал агента:
14551:20171128:193954.483 Starting Zabbix Agent [my.zabbix.server.com]. Zabbix 3.4.1 (revision 71734).
14551:20171128:193954.484 **** Enabled features ****
14551:20171128:193954.484 IPv6 support: YES
14551:20171128:193954.484 TLS support: YES
14551:20171128:193954.484 **************************
14551:20171128:193954.484 using configuration file: /usr/local/etc/zabbix34/zabbix_agentd.conf
14551:20171128:193954.484 agent #0 started [main process]
14553:20171128:193954.485 agent #1 started [collector]
14554:20171128:193954.485 agent #2 started [active checks #1]
14554:20171128:193954.614 no active checks on server [my.zabbix.server.com:10051]: host [my.zabbix.agent.com] not found
где:
Кажется, что агент успешно регистрирует хост, но по какой-то причине сервер пытается получить информацию от агента в пассивном режиме. Несмотря на то, что агент был настроен в активном режиме.
ОБНОВЛЕНИЕ 3: Хотя агенты отправляют данные, в списке хостов по-прежнему отображается проблема:
Доступность / ZBX имеет красный флаг и сообщение о том, что «Не удалось получить значение от агента: невозможно подключиться к [[ip_address_here]: 1050]: [4] прерванный системный вызов». Я проверил каждый элемент и каждое обнаружение для этих хостов, и все они имеют type = "Zabbix Agent Active". Поэтому я не понимаю, почему сервер пытается подключиться к ним в пассивном режиме ??? Это не вызывает реальной "проблемы" (например, что-то, что генерирует действие и отправляет уведомления с сервера zabbix), но очень неприятно видеть красные флажки на экране.
Пока эта проблема не будет полностью решена, я даже не приму свой ответ.
ОБНОВЛЕНИЕ 4: после изменения всех типов элементов, типов обнаружения и типов прототипов элементов правил обнаружения низкого уровня всех шаблонов, подключенных к моим хостам, и всех связанных с ними шаблонов, красные флаги ZBX наконец исчезли. Я считаю, что я опытный пользователь программного обеспечения, но мне было довольно сложно понять, что происходит, и изменить все параметры, чтобы это работало.
Чтобы активные проверки работали, имя хоста агента должно совпадать с именем хоста на Zabbix сервере. «Имя хоста агента» не обязательно является именем хоста системы - оно зависит от параметров конфигурации «Имя хоста» и «HostnameItem». Имя хоста в Zabbix - это не DNS или IP-адрес - это содержимое поля «Хост» в свойствах хоста.
Когда агент запускается, он распечатывает имя хоста, которое отправляет на сервер. В вашем примере: Starting Zabbix Agent [my.zabbix.server.com]
- то есть агент идентифицирует себя для сервера как my.zabbix.server.com
. Убедитесь, что это значение соответствует правильному имени хоста (обратите внимание, что оно чувствительно к регистру), и активные проверки начнут работать. Обратите внимание, что другой хост мог иметь неверные значения, если два или более агента отправляли данные, идентифицируя их.
Обратите внимание, что версия, напечатанная в журнале агента, является версией агента, а не версией сервера - агент не может определить версию сервера.
Краткий ответ: проблема заключалась в том, что все элементы имели Type = "Zabbix Agent" вместо Type = "Zabbix Agent Active".
Длинный ответ: хост будет либо активным агентом, либо пассивным агентом. (Ну, может быть, если вы попытаетесь запустить два агента на одной машине, тогда вы сможете сделать оба на одном хосте, но это кажется бессмысленным.) Логично, правда?
Таким образом, в действительности активность или пассивность - это свойство хоста, а не предмета. Несмотря на это, режим сбора данных (например, пассивный или активный) привязан к элементу, а не к хосту. Я считаю это недостатком дизайна в zabbix. Это очень противоречит интуиции. ЕДИНСТВЕННЫЙ способ преодоления этой проблемы заключается в следующем:
Вам необходимо клонировать практически все шаблоны в системе. У вас не может быть одного триггера для одного элемента, который не зависит от типа элемента, потому что такого нет. Если вы хотите что-то изменить в среде, где пассивные и активные агенты смешаны, вам придется сделать все дважды.
Наконец, когда вы добавляете хост, вам необходимо назначить активную или пассивную версию шаблона, в зависимости от того, какой режим вы хотите использовать для этого конкретного хоста.
Все это потому, что активный / пассивный режим не может быть собственностью хоста. Это должно быть свойство предмета. Хуже того: это также свойство правил обнаружения и прототипов правил обнаружения (а элементы прототипа не могут быть обновлены массово, вы должны делать это один за другим вручную). Серьезно, такой элемент, как "cpu.load", абсолютно не связан с тем, как были собраны данные. Я имею в виду, давай, ты мог бы передумать и переключиться из активного режима в пассивный или обратно. Это не должно заставлять вас удалять все старые элементы, создавать новые. Но если вы решите сделать это, вы потеряете всю историю, потому что вы не просто меняете элементы, вы заменяете их. Это действительно очень раздражает!
Я надеюсь, что они исправят это в следующей версии 4.0.
измените значение /etc/zabbix/zabbix_agentd.conf и поместите IP-адрес zabbix