Короткий ответ

Active items на WS-042 живут только если агент сам забирает список с ServerActive (обычно 10.0.20.50:10051 или IP proxy) и представляется именем точно как Host name в UI. Пассивный zabbix_get на 10050 может быть зелёным при мёртвых active — это не противоречие. Сверьте ServerActive, Hostname=WS-042, TLS PSK psk-ws042, исходящий TCP 10051. Не открывайте 10050 в мир «чтобы active заработали» — active на вход агента не нужен. Общая недоступность: агент. Путь через proxy: proxy.

Симптомы и как отличить

Типичная картина:

  • agent.ping passive свежий, system.cpu.util из active-шаблона пуст;
  • лог агента: no active checks on server [10.0.20.50:10051];
  • cannot connect to [10.0.20.50]:10051;
  • два хоста с Hostname WS-042 после клона образа.

Отличия:

Passive getActive itemsВывод
failпустосначала 10050/PSK, агент
OKпусто, лог hostnameимя
OKпусто, connect 10051firewall исходящий / ServerActive
OKчасть ключей unsupportedключ

Возможные причины

  1. Нет ServerActive= или указан DNS, который не резолвится с WS-042.
  2. Hostname агента ≠ Host name (WS-042 vs WS-042.zabbix.example).
  3. Item type «Zabbix agent», не «Zabbix agent (active)».
  4. Хост на proxy, а ServerActive указывает на server; proxy не отдаёт checks этому имени.
  5. PSK active: TLSConnect=psk на агенте, server ждёт PSK.
  6. RefreshActiveChecks большой, только что создали item — подождите, или рестарт агента.
  7. Редко: StartAgents=0 и ошибки конфига; IPv6 AAAA на zabbix.example ведёт в никуда.

Диагностика

1. Конфиг агента WS-042

Linux:

sudo grep -E '^(Server|ServerActive|Hostname|TLS|RefreshActiveChecks)' /etc/zabbix/zabbix_agent2.conf
sudo journalctl -u zabbix-agent2 -n 80 --no-pager
sudo grep -iE 'active check|hostname|10051|psk' /var/log/zabbix/zabbix_agent2.log | tail -n 40

Windows: тот же набор ключей в zabbix_agent2.conf, лог в каталоге агента / Event Log.

Ожидание: Hostname=WS-042, ServerActive=10.0.20.50 или 10.0.20.50:10051. Если мониторит proxy — IP proxy.

2. Исходящий 10051

С WS-042:

nc -vz 10.0.20.50 10051

Timeout — ACL исходящий с сервера или входящий на Zabbix server. На 10.0.20.50 должен слушать zabbix-server (или proxy).

# на 10.0.20.50
ss -lntp | grep 10051
systemctl status zabbix-server --no-pager

3. Имя в UI

Configuration → Hosts: Host name WS-042, не только Visible name. Visible name может быть любым; Host name — то, что шлёт агент.

4. Тип item

Items: Type = Zabbix agent (active). Passive type никогда не ходит путём ServerActive.

5. Сообщение «no active checks»

Значит TCP/TLS к серверу есть, но сервер не нашёл хост с таким именем или нет active items. Это не firewall. Сверяйте имя, регистр, пробел, дубль хоста.

Решение

Сценарий A. ServerActive пуст или неверный

# фрагмент /etc/zabbix/zabbix_agent2.conf
ServerActive=10.0.20.50
Hostname=WS-042
sudo systemctl restart zabbix-agent2

Если хост за proxy:

ServerActive=IP_PROXY
Server=IP_PROXY

Server= для passive, ServerActive= для active — оба на proxy, когда Monitored by proxy.

Сценарий B. Hostname

Приведите к одному виду. Клоны: смените Hostname до включения в LAN, иначе воруете checks чужого WS-042.

Сценарий C. TLS

TLSConnect=psk, identity psk-ws042, тот же файл, что для passive. Для active исходящий handshake к 10051. Несовпадение — в логе TLS, не «no active checks».

Сценарий D. Неверный тип шаблона

Link «Windows by Zabbix agent active» только при рабочем ServerActive. Смешение: часть ключей passive (нужен 10050 с 10.0.20.50), часть active.

Сценарий E. Сервер не running

Агент не получит список. См. server не запускается.

После смены хоста в UI:

sudo zabbix_server -R config_cache_reload

Как проверить, что проблема устранена

Лог агента: active check configuration update from [10.0.20.50:10051] is working (формулировка близкая, смотрите фактическую строку вашей 6.0/7.0). Latest data active-ключей с новым timestamp. nc -vz 10.0.20.50 10051 с WS-042 успешен. Passive get по-прежнему не обязателен, если политика только active.

Если не помогло

  • Список checks пуст: на хосте действительно нет active items.
  • Несколько ServerActive через запятую: агент ходит на первый живой; неверный порядок.
  • BufferSend/BufferSize: значения копятся, UI отстаёт при обрыве — не «checks не работают».
  • SELinux запретил агенту connect 10051 — audit, не setenforce 0 навсегда.

Профилактика

  • В golden image Hostname из inventory, ServerActive из DHCP/GPO.
  • Запрет клонирования без sysprep/cloud-init смены имени.
  • Мониторинг лог-item на строку active check fail.
  • Для Windows фермы — шаблон сервера сразу с выбранной моделью passive или active, не «оба вслепую».

Клон VM — главный враг active checks. Образ с Hostname=WS-042 и тем же PSK psk-ws042 на двух машинах: одна ворует список проверок, вторая пишет в того же хоста, графики пилят. Перед включением клона в сеть смените Hostname, ключ и при необходимости identity. Контроль: agent.hostname через пассивный get, если 10050 ещё открыт с poller, иначе строка active configuration в логе.

Если политика «только active, 10050 закрыт», zabbix_get с 10.0.20.50 обязан падать. Не открывайте порт «на пять минут» и не забывайте закрыть. Диагностика — лог агента и Latest data. Аварийно ACL с jump host, потом возврат.

RefreshActiveChecks=120 и кэш сервера объясняют, почему новый item появляется не мгновенно. Это не баг линий 6.0/7.0. Рестарт агента на WS-042 форсирует запрос списка после массового link template; не превращайте это в рестарт каждые пять минут «для верности».

FAQ

Нужно ли открывать 10050 при только active?

Нет, если нет passive items и вы не диагностируете get. Многие оставляют 10050 с ACL на proxy для отладки. Не в интернет.

Почему zabbix_get работает, active нет?

get = пассив, порт 10050. Active = исходящий 10051 + имя. Разные сокеты.

HostnameItem вместо Hostname?

Можно брать имя из system.hostname. Тогда Host name в UI должен совпасть с выводом. Смена hostname ОС без смены UI ломает checks на следующий refresh.

RefreshActiveChecks=120 — долго ждать новый item

Да. Рестарт агента форсирует запрос списка. Не ставьте 1s.

Два Zabbix сервера в ServerActive

Кластер/миграция. Оба должны знать хост или будет периодический «no active checks». Не указывайте стенд и прод вместе.

Agent 1 vs 2

Директива ServerActive есть у обоих. Ставьте agent 2 на 6.0/7.0, не держите два сервиса.