zabbix proxy переходит в offline
zabbix proxy переходит в offline
Почему Zabbix Proxy переходит в offline: сетевые ловушки, которые игнорируют 99% админов
zabbix proxy переходит в offline — и вы снова получаете сотни алертов о «потерянных» хостах, хотя сами серверы работают нормально. Классическое решение из документации — проверить логи, перезапустить службу, убедиться, что порт 10051 открыт. Но если вы уже проделали это десятки раз, а проблема возвращается каждые 2–3 дня, особенно в регионах с нестабильным интернетом или при использовании туннелей (SSH, TLS, да, даже VPN), значит, вы столкнулись с тем, о чём молчат официальные гайды. Эта статья — для тех, кто устал от поверхностных советов и хочет понять реальные причины, включая влияние DPI-оборудования Ростелекома, таймаутов NAT у МТС и подводных камней шифрованных каналов.
Когда «offline» — это не про Zabbix, а про ваш провайдер
Zabbix Proxy по умолчанию использует активное соединение к серверу через TCP-порт 10051. В идеальном мире пакеты летят без задержек. Но в реальности российские провайдеры (особенно на периферии) часто применяют агрессивные механизмы управления трафиком:
- DPI (Deep Packet Inspection) может классифицировать трафик Zabbix как «подозрительный» из-за постоянных коротких соединений и принудительно обрывать его.
- NAT-таймауты у мобильных операторов (МТС, Билайн) иногда составляют всего 30–60 секунд. Если прокси ничего не отправляет дольше этого времени (например, все элементы данных имеют интервал 90 секунд), соединение умирает.
- Блокировки Роскомнадзора могут случайно задеть IP-адреса, на которых размещён ваш Zabbix-сервер, особенно если он находится на VPS за рубежом.
В таких случаях zabbix_proxy.log покажет строки вроде:
cannot send heartbeat message to server: [110] Connection timed out
или
failed to connect to server [your.zabbix.server]: host unreachable
Но проблема не в конфигурации Zabbix, а в том, что между прокси и сервером стоит «умный» фаервол, который решает, кому можно говорить, а кому — нет.
Как проверить, виноват ли провайдер?
- Запустите
tcpdumpна стороне прокси:
bash tcpdump -i any host <IP_ZABBIX_SERVER> and port 10051 -w zabbix.pcap - Одновременно мониторьте статус прокси в веб-интерфейсе.
- Как только статус станет «offline», остановите запись и откройте файл в Wireshark.
- Ищите: есть ли FIN/RST-пакеты от сервера? Или соединение просто «зависает» без ответа?
Если пакеты исчезают без следа — вероятно, их режет DPI или stateful firewall на маршруте.
Чего вам НЕ говорят в других гайдах
Большинство руководств сводятся к трём пунктам: «проверь сеть», «посмотри логи», «увеличь таймаут». Но они умалчивают о критических рисках, особенно если вы используете защищённые каналы для связи прокси и сервера.
Ложная безопасность: когда ваш «VPN-туннель» работает против вас
Многие администраторы, чтобы обойти блокировки или защитить трафик, запускают Zabbix Proxy поверх OpenVPN или WireGuard. Это кажется разумным — весь трафик шифруется, никто не подслушает метрики. Но есть скрытые проблемы:
- Отсутствие keepalive в конфигурации туннеля. WireGuard по умолчанию не отправляет пакеты, если нет данных. Если ваш прокси молчит 2 минуты, а NAT-таймаут провайдера — 90 секунд, туннель развалится. Zabbix этого не заметит сразу, потому что TCP-соединение формально ещё «живо» на уровне ОС.
- Поддельный kill switch. Некоторые самописные скрипты «перезапускают OpenVPN при падении», но не проверяют, восстановилось ли соединение с Zabbix-сервером. Прокси продолжает работать, но данные никуда не уходят — статус остаётся «online» до первого heartbeat-фейла.
- Утечки через DNS. Если в конфигурации туннеля не прописан
block-outside-dns(OpenVPN) или не настроенAllowedIPs = 0.0.0.0/0(WireGuard), DNS-запросы для резолва имени Zabbix-сервера могут уходить в открытый интернет. В РФ это означает, что Ростелеком видит, к какому домену вы обращаетесь, даже если трафик шифрован.
Юрисдикция и логирование: ваш «безопасный» хостинг может вас выдать
Если вы размещаете Zabbix-сервер на VPS в Германии, Нидерландах или США, помните: эти страны входят в альянс 14 Eyes. При запросе от российских правоохранительных органов (например, по статье 138 УК РФ — нарушение тайны переписки) хостинг-провайдер обязан предоставить логи подключений. Даже если сам Zabbix не пишет логи, ядро Linux фиксирует входящие соединения. А это — IP-адреса ваших прокси, которые могут быть связаны с конкретными объектами мониторинга (включая запрещённые ресурсы).
Fake-утечки: как «тестовые сайты» вводят в заблуждение
Сервисы вроде ipleak.net показывают ваш внешний IP и DNS. Но они не проверяют, действительно ли ваш Zabbix-трафик идёт через туннель. Вы можете видеть «чистый» IP, но при этом Zabbix Proxy использует системный сокет, который обходит туннель из-за неправильных маршрутов. Проверяйте это только через tcpdump или ss -tuln.
Технические решения: как заставить прокси «не теряться»
Настройка keepalive на всех уровнях
-
На уровне Zabbix Proxy (
zabbix_proxy.conf):
ini HeartbeatFrequency=10
Это заставит прокси отправлять heartbeat каждые 10 секунд, что ниже любого NAT-таймаута. -
На уровне WireGuard (
wg0.confна прокси):
ini [Peer] PublicKey = ... AllowedIPs = <IP_ZABBIX_SERVER>/32 PersistentKeepalive = 25
Значение 25 секунд — стандарт для обхода большинства NAT. -
На уровне OpenVPN (
client.conf):
ini keepalive 10 30 ping-timer-rem
Клиент будет отправлять ping каждые 10 секунд и считать соединение мёртвым, если нет ответа 30 секунд.
Защита от DPI: маскировка трафика
Если вы подозреваете, что DPI режет ваш трафик, используйте obfs4 или Shadowsocks как транспортный слой поверх TLS. Zabbix сам по себе не поддерживает это, но вы можете:
- Запустить Shadowsocks-локальный прокси на том же хосте, что и Zabbix Proxy.
- Настроить Zabbix на отправку данных на
127.0.0.1:1080. - Shadowsocks будет шифровать и маскировать трафик под обычный HTTPS.
Это особенно актуально для регионов, где Роскомнадзор активно блокирует «нестандартные» протоколы.
Split tunneling: только Zabbix через туннель
Не пускайте весь трафик прокси через VPN. Это увеличивает задержки и создаёт точки отказа. Вместо этого настройте маршрутизацию только для IP Zabbix-сервера:
Для Linux
ip route add <IP_ZABBIX_SERVER>/32 dev wg0
Так вы сохраните доступ к локальным ресурсам (базам данных, SNMP-агентам) без туннеля, но защитите внешний канал.
Сравнение подходов к защите канала Zabbix Proxy
| Метод защиты | Юрисдикция сервера | Логирование трафика | Реальная скорость (на 100 Мбит/с) | Устойчивость к DPI | Цена (руб./мес) |
|---|---|---|---|---|---|
| Прямое TCP-соединение | RU | Да (провайдер) | 98–100 Мбит/с | Низкая | 0 |
| OpenVPN (AES-256) | DE | Зависит от хостера | 70–85 Мбит/с | Средняя | 300–600 |
| WireGuard | NL | Минимальное | 92–97 Мбит/с | Средняя | 250–500 |
| Shadowsocks + TLS | SG | Нет (при no-log) | 80–90 Мбит/с | Высокая | 400–800 |
| SSH-туннель | RU/VPS | Да (на сервере) | 60–75 Мбит/с | Высокая | 0 (если свой VPS) |
Примечание: «Цена» включает аренду VPS и трафик. Бесплатные решения (например, общественные VPN) здесь не указаны — они неприемлемы для production-мониторинга.
Диагностика «по-взрослому»: команды, которые сэкономят часы
Проверка соединения с сервером (Linux)
Проверить, слушает ли сервер порт
nc -zv your.zabbix.server 10051
Проверить маршрут до сервера
mtr --report your.zabbix.server
Посмотреть активные соединения прокси
ss -tnp | grep zabbix_proxy
Автоматический перезапуск при потере связи (PowerShell для Windows-прокси)
$server = "your.zabbix.server"
$port = 10051
$test = Test-NetConnection -ComputerName $server -Port $port
if (-not $test.TcpTestSucceeded) {
Restart-Service "Zabbix Proxy"
Send-MailMessage -To "admin@company.ru" -Subject "Zabbix Proxy restarted" -Body "Connection lost to $server" -SmtpServer "mail.company.ru"
}
Чек-лист после каждого «offline»
1. Есть ли запись в логе прокси о таймауте?
2. Доступен ли сервер Zabbix с хоста прокси через telnet?
3. Не менялся ли IP сервера (особенно при динамическом DNS)?
4. Не сработал ли fail2ban на сервере и не заблокировал ли IP прокси?
5. Работает ли туннель (если используется)? Проверьте wg show или systemctl status openvpn.
Вывод
zabbix proxy переходит в offline — это не просто «проблема сети», а сигнал о том, что ваша инфраструктура взаимодействует с реальным миром, где NAT-таймауты короче интервалов сбора метрик, DPI режет «непонятный» трафик, а бесплатные VPS логируют всё подряд. Чтобы прокси оставался стабильно online, нужно думать не только как администратор Zabbix, но и как специалист по информационной безопасности: настраивать keepalive на всех уровнях, минимизировать поверхность атаки, избегать юрисдикций с обязательным хранением логов и проверять не только IP-адрес в ipleak.net, а реальный путь пакетов через tcpdump. Только такой комплексный подход гарантирует, что ваши алерты будут приходить по делу, а не из-за того, что МТС «почистил» старое соединение.
Почему Zabbix Proxy становится offline, хотя пинг до сервера проходит?
Ping использует ICMP, а Zabbix — TCP на порту 10051. Фаервол или DPI могут блокировать именно TCP-трафик, пропуская ICMP. Всегда проверяйте соединение через telnet или nc.
Можно ли использовать Zabbix Proxy без постоянного соединения с сервером?
answerДа, но только в режиме active checks. Однако heartbeat всё равно требует исходящего соединения. Полностью автономный прокси невозможен — он должен периодически сообщать о своём статусе.
WireGuard или OpenVPN — что надёжнее для Zabbix Proxy?
WireGuard быстрее (меньше накладных расходов) и проще в настройке keepalive. OpenVPN гибче в обходе блокировок (можно эмулировать HTTPS). Для стабильности в РФ предпочтителен WireGuard с PersistentKeepalive=25.
Будет ли видно использование Zabbix через VPN моему провайдеру?
Сам факт использования VPN — да (шифрованный трафик к одному IP). Но содержимое — нет. Однако если вы не настроили split tunneling, провайдер увидит объём и частоту трафика, что может вызвать подозрения у DPI-систем.
Как часто должен отправляться heartbeat, чтобы избежать offline?
Рекомендуется 10–15 секунд. Это ниже стандартных NAT-таймаутов (60–120 сек) и позволяет быстро обнаруживать разрывы.
Может ли Zabbix Proxy работать через Tor?
Технически — да, но крайне нестабильно. Tor имеет высокую задержку и частые переключения цепочек, что приведёт к постоянным offline-статусам. Для production-сред это неприемлемо.
Straightforward explanation of support and help center. Nice focus on practical details and risk control.