Короткий ответ
Хосты за proxy «мертвы», а zabbix_get с proxy на WS-042 жив — чините канал proxy↔server, не агент. Сверьте: ProxyMode (0 active / 1 passive) с типом proxy в UI, Hostname proxy = имени в Administration → Proxies, PSK identity/ключ, TCP 10051 на 10.0.20.50 (active proxy исходит сам; passive — server стучится на порт proxy). Не удаляйте объект proxy в UI «и создайте заново» — потеряете привязку хостов. Агент: недоступен. Active агентов: active checks.
Симптомы и как отличить
Типичная картина:
- Administration → Proxies: Last seen минуты/часы назад;
- все хосты с Monitored by this proxy пустые;
- локально на proxy SQLite/MySQL растёт;
- прямой хост на сервере жив.
Отличия:
| Факт | Слой |
|---|---|
| Один WS-042 пуст, сосед за тем же proxy жив | агент этого хоста |
| Все хосты proxy пусты, Last seen свежий | очередь сервера / config |
| Last seen протух | канал/PSK/mode/имя |
| Server down | server |
Возможные причины
- Active vs passive перепутаны: в UI Active, в конфиге
ProxyMode=1. Hostname=proxy не совпал (регистр, FQDN).- PSK: другой identity чем в UI, файл не читает пользователь
zabbix. - Firewall: исходящий 10051 с proxy запрещён; или входящий на
ListenPortproxy для passive. Server=указывает не10.0.20.50/ неzabbix.example.- Локальная БД proxy (SQLite lock, диск full).
- Редко: два процесса proxy, старый pid держит сокет; часы сильно разъехались для TLS.
Диагностика
1. Процесс и лог proxy
systemctl status zabbix-proxy --no-pager
sudo tail -n 100 /var/log/zabbix/zabbix_proxy.log
sudo grep -E '^(Server|Hostname|ProxyMode|Listen|TLS|DB)' /etc/zabbix/zabbix_proxy.confИщите Unable to connect to the server, PSK, mismatch, cannot send.
2. Mode и порт
Active proxy (ProxyMode=0): исходящий TCP на 10.0.20.50:10051.
nc -vz 10.0.20.50 10051Passive proxy (ProxyMode=1): на proxy слушает ListenPort (часто 10051), server с 10.0.20.50 коннектится сюда. Тогда проверяйте с сервера nc -vz PROXY_IP 10051.
Не открывайте оба мира без нужды. В UI тип proxy = конфиг.
3. Имя и PSK
Administration → Proxies: имя = Hostname файла. Encryption PSK, identity как у агентов по смыслу, но свой ключ proxy, не psk-ws042 от хоста WS-042 (тот ключ — для агента). Путаница ключей — типичный handshake fail.
4. Конфиг сервера
Server должен знать proxy. После создания: zabbix_server -R config_cache_reload.
sudo zabbix_server -R config_cache_reload5. Локальная БД proxy
df -h /var/lib/zabbix
ls -l /var/lib/zabbix/*.sqlite 2>/dev/nullDisk full на proxy = буфер не пишется, Last seen может ещё «дышать» редко. Смотрите лог.
Решение
Сценарий A. Неверный mode
Выровняйте UI и ProxyMode. Рестарт proxy. Firewall под выбранный режим, не «открыть всё».
Сценарий B. Имя
Hostname=ZBX-PROXY-01 везде одинаково. Не IP в Hostname.
Сценарий C. PSK/TLS
Файлы ключа права zabbix, identity без пробела. В UI proxy Encryption = PSK. Сначала без смены имени.
Сценарий D. Сеть
Разрешить конкретный 10051 между proxy и 10.0.20.50. NAT: для active обычно проще (исходящий). Для passive нужен DNAT на ListenPort.
Сценарий E. Версии
Пакет proxy = линия server. Не держите proxy 7.0 против server 6.0.
Сценарий F. Агенты смотрят не туда
На WS-042: Server= / ServerActive= = IP proxy, не обязательно 10.0.20.50. Иначе агент шлёт на server, который его не опрашивает, а proxy ждёт. См. active checks и агент.
Как проверить, что проблема устранена
Proxies: Last seen секунды–минуты. Latest data WS-042 свежие. Лог proxy без reconnect-спама. Очередь на server не копит только этот proxy. С proxy:
zabbix_get -s 10.0.20.42 -p 10050 -k agent.ping \
--tls-connect psk --tls-psk-identity psk-ws042 \
--tls-psk-file /etc/zabbix/psk-ws042.pskget успех + UI успех = полный путь.
Если не помогло
- Last seen жив, данных нет: фильтр хостов, maintenance, очередь сервера.
- После смены IP server забыли
Server=на всех proxy. - Часовой пояс не ломает PSK; сильный clock skew может ломать сертификаты, не PSK.
- SQLite corrupt — restore proxy DB из копии, не rm вслепую без инструкции версии.
Профилактика
- Мониторинг Last seen proxy с сервера (trapper/internal).
- Одинаковый minor на proxy-ферме.
- Документ: какой proxy active/passive, какие ACL.
- PSK proxy в vault, ротация с процедурой.
Филиальная классика: на агенте WS-042 оставили ServerActive=10.0.20.50, а в UI хост «Monitored by proxy». Агент стучится на сервер, сервер не считает этот хост своим для выдачи checks, proxy ждёт агента у себя. Симптом: Last seen proxy свежий, Latest data WS-042 пустые. Лечение: и Server, и ServerActive агента смотрят на IP proxy.
Обратная ошибка: файрвол филиала пускает только исходящий 10051 на zabbix.example, а proxy пассивный и ListenPort с сервера не маршрутизируется. Тогда меняют mode или делают DNAT, а не перевыпускают PSK третий раз.
После апгрейда server до 7.0 LTS не оставляйте proxy на 6.0 «на потом». Несовместимость часто всплывает странными ошибками active checks, а не честным отказом старта. Пакет proxy планируйте в том же изменении, что server.
FAQ
Active proxy лучше passive?
За NAT филиала — active проще (исходящий 10051). Passive удобен, когда server обязан инициировать коннект. Не мораль, топология.
Нужен ли 10050 на proxy снаружи?
10050 — агент. На хосте proxy он нужен, если мониторите сам proxy агентом. Канал proxy-server — 10051.
Можно ли один PSK на всех proxy?
Плохая практика: компрометация одного — все. Отдельные identity.
Proxy на Windows?
Бывает. Алгоритм тот же: лог, mode, порт, имя. Пути конфига другие, команды Get-Service.
Offline филиал на сутки — что будет?
Active proxy копит в локальной БД (лимиты конфига). После канала — догон. Не чистите SQLite «чтобы завелось».
Стоит ли ставить агенты сразу на server в обход proxy?
Только если сеть позволяет и вы сознательно не хотите буфер. Смешение части хостов ломает ACL-ожидания.