Короткий ответ
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.pingpassive свежий,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 get | Active items | Вывод |
|---|---|---|
| fail | пусто | сначала 10050/PSK, агент |
| OK | пусто, лог hostname | имя |
| OK | пусто, connect 10051 | firewall исходящий / ServerActive |
| OK | часть ключей unsupported | ключ |
Возможные причины
- Нет
ServerActive=или указан DNS, который не резолвится сWS-042. - Hostname агента ≠ Host name (
WS-042vsWS-042.zabbix.example). - Item type «Zabbix agent», не «Zabbix agent (active)».
- Хост на proxy, а ServerActive указывает на server; proxy не отдаёт checks этому имени.
- PSK active:
TLSConnect=pskна агенте, server ждёт PSK. RefreshActiveChecksбольшой, только что создали item — подождите, или рестарт агента.- Редко:
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 40Windows: тот же набор ключей в 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 10051Timeout — ACL исходящий с сервера или входящий на Zabbix server. На 10.0.20.50 должен слушать zabbix-server (или proxy).
# на 10.0.20.50
ss -lntp | grep 10051
systemctl status zabbix-server --no-pager3. Имя в 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-042sudo systemctl restart zabbix-agent2Если хост за proxy:
ServerActive=IP_PROXY
Server=IP_PROXYServer= для 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, не держите два сервиса.