🟡 Статус: Design draft · v0.1
Подход правильный, но конкретный код, конфиги или пороги требуют валидации в вашем окружении.
Мост между методикой первой части и реальной инсталляцией. Архитектура развёртывания — proxy, DMZ, OT и КИИ как ограничение. План внедрения на 90 дней — для нового запуска или входа в чужой Zabbix. Минимальный GitOps — чтобы изменения в UI не растворялись.
06. Архитектура и развёртывание¶
Архитектура мониторинга — это не «куда поставить Zabbix Server». Это полная цепочка: от того, как метрика собирается, до того, как постмортем меняет шаблоны. Каждое звено должно быть осмыслено.
Эта глава — про:
- Конвейер мониторинга и его слои
- Архитектуру развёртывания Zabbix (Server + Proxy + БД)
- IT/OT разделение (Purdue, 187-ФЗ)
- Поток данных от метрики до постмортема
Конвейер мониторинга¶
Мониторинг — это не «поставили Zabbix», это функция эксплуатации. Конвейер:
Сбор (агенты / SNMP / WMI / API)
→ Хранение (Zabbix DB + долгий retention в Postgres/TSDB)
→ Корреляция (триггеры, dependencies, теги)
→ Визуализация (Grafana поверх Zabbix datasource)
→ Алертинг (escalation в каналы + ITSM-тикет)
→ Реагирование (runbook → дежурный)
→ Постмортем → обратно в шаблоны
Если какое-то звено отсутствует или сломано — у вас не мониторинг, а декорация. Типичные пробои:
- Нет корреляции → 50 алертов на один инцидент
- Нет runbook → дежурный гуглит в 3 ночи
- Нет обратной связи от постмортема → одни и те же грабли каждый месяц
Слои мониторинга¶
Снизу вверх (повторение из главы 1, но в контексте архитектуры):
| Слой | Что | Чем |
|---|---|---|
| Hardware | iLO/iDRAC, ИБП, температура, RAID | SNMP, IPMI |
| Network | Cisco/Eltex/UserGate — порты, CPU, BGP, тоннели | SNMP, SNMP-traps |
| OS | Win/Linux — CPU, RAM, диски, сервисы | Zabbix-agent (active) |
| СУБД / Middleware | MSSQL, PostgreSQL; Exchange DAG, IIS, веб-публикации 1С | SQL-чеки, native templates |
| Application | 1С — очереди, фоновые, лицензии RPHost; SCADA — связь | API, log-monitoring |
| Business | «Зарплата начислится?», «Документ выпускается?» | синтетика, e2e-чеки |
IT vs OT — разделение¶
Критично для производственного предприятия. SCADA (MasterScada4D, WinCC, и пр.) — это OT-сегмент. Граница IT/OT — не просто техническое разделение, а архитектурное, нормативное и операционное требование:
- Архитектурно. Модель Purdue и IEC 62443 требуют, чтобы трафик между IT и OT шёл через Industrial DMZ. Прямой коннект из IT-Zabbix в L0–L2 — это и есть то неконтролируемое прохождение между уровнями, от которого модель защищает.
- Нормативно. Zabbix может быть частью контура мониторинга ЗОКИИ, но соответствие мерам приказа ФСТЭК №239 обеспечивается архитектурой, процессами, СЗИ и сертифицированными средствами там, где это требуется — open-source Zabbix сам по себе этого не закрывает. Уточняйте у ИБ/владельца ЗОКИИ. Существуют сертифицированные сборки на основе Zabbix (например, UDV ITM), которые могут закрывать отдельные требования.
- Операционно. Для пассивного анализа OT-трафика есть специализированные системы (PT ISIM, KICS for Networks, DATAPK), которые слушают копию трафика через SPAN-порт и понимают Modbus, OPC, S7 на уровне DPI. Zabbix этого не умеет.
Где Zabbix уместен в OT: верхние уровни (Historians, инженерные станции, серверы SCADA на Windows) — по согласованию с ИБ, с отдельным Proxy в DMZ и белым списком метрик. Контроллеры и АРМ L0–L2 — только согласованные read-only проверки после оценки риска с АСУ ТП/ИБ (ICMP, SNMP read-only, TCP-check до OPC-сервера); даже ICMP является активным зондированием — уточняйте допустимость с командой АСУ ТП. Без агента.
Подробнее — в главе 15 (Anti-patterns).
См. также:
- Purdue Enterprise Reference Architecture — стандартная модель уровней OT/IT
- NIST SP 800-82 Rev. 3 — Guide to OT Security — обязательно к прочтению перед работой с SCADA-сегментом
- CISA Cybersecurity Best Practices for OT
- Приказ ФСТЭК №239 — для понимания, где у вас КИИ
Архитектура развёртывания¶
Для крупного предприятия (1–5К хостов, несколько площадок):
+--------------+
| Zabbix Server| -- Postgres (Patroni HA)
| (frontend) | -- Grafana (read-only viz)
+------+-------+
|
+---------------+---------------+
| | |
+---+----+ +---+----+ +---+------+
| Proxy | | Proxy | | Proxy |
| Корп. | | SCADA | | Дальн. |
| сегм. | | DMZ | | площадка |
+--------+ +--------+ +----------+
Зачем прокси:
- Разгрузка сервера (агенты ходят к прокси, не к серверу)
- Изоляция сегментов (SCADA-прокси в DMZ, без доступа в OT внутрь)
- Переживание обрыва канала (буферизация локально)
На каждой площадке / каждом изолированном сегменте — свой прокси. В базовой схеме агент закреплён за одним proxy; отказоустойчивость proxy проектируется отдельно (резервный proxy, failover через API/autoregistration — в зависимости от требований к доступности).
Zabbix Server HA:
⚠ Версия Zabbix: native HA для Zabbix Server (active/standby) доступен начиная с Zabbix 6.0 LTS. Он защищает процесс сервера, а не БД — это разные уровни. В схеме с Patroni: Patroni защищает PostgreSQL, Zabbix Server HA защищает server process. Для крупных инфраструктур имеет смысл совмещать оба.
Postgres (reference design при наличии компетенций):
- HA через Patroni + etcd/consul — рекомендуемый подход для production, но не единственный; выбирайте по зрелости команды
- WAL-G для backup в S3-совместимое хранилище
- Retention strategy обязательна с первого дня; конкретный способ (TimescaleDB, нативное партиционирование или усиленный housekeeping) выбирается после sizing по NVPS и объёму истории
- Отдельный read-replica для Grafana (чтобы дашборды не клали БД) — при использовании direct DB; Grafana Zabbix datasource plugin чаще ходит через Zabbix API
Grafana:
- Только для визуализации, не для алертинга
- Использует Zabbix как datasource (Grafana Zabbix datasource plugin, поддерживаемый сообществом совместно с Grafana Labs)
- Дашборды — по сервисам и аудиториям (см. глава 3)
Поток данных от метрики до постмортема¶
7 слоёв сверху вниз:
ИСТОЧНИКИ: Hardware · Network · OS · Apps · Synthetic · OT (пассив!) · Logs
↓
СБОР: Zabbix Proxy: Corp · OT DMZ · Remote Sites
↓
ЯДРО: Zabbix Server + PostgreSQL (Patroni, WAL-G, partitioned)
↓
ОБРАБОТКА: Trigger Evaluation → Event Correlation → Dependency Suppression → Tag Routing
↓
КАНАЛЫ: NOC TV · Grafana · Telegram · Email · SMS (только P1) · Webhook · Auto Reports → CIO
↓
РЕАКЦИЯ: ServiceDesk · Runbooks · Список дежурных · Эскалация L1→L2→CIO · Audit Git
↓
ИНЦИДЕНТ: Acknowledge → Диагностика → Resolve → Постмортем
↓
ОБРАТНАЯ СВЯЗЬ: Постмортем → обновление шаблонов / порогов / runbook → обратно в Сбор
Это и есть полный цикл. В реальных инсталляциях обычно:
- Сбор, хранение, ядро — присутствуют
- Корреляция и dependencies — рудиментарно или отсутствуют
- Каналы — частично (часто только Email)
- Реакция — без runbook
- Постмортем — раз в полгода, без структуры
- Обратная связь — никакой
Зрелый мониторинг — это замкнутый цикл. Не «поставили и забыли».
Резюме¶
- Мониторинг — это конвейер, а не точка. Считайте все 7 звеньев
- IT и OT разделяются — Zabbix-агент в L0–L2 OT не ставится; верхние уровни (Historians, инженерные станции) — по согласованию с ИБ
- Прокси нужны не для масштаба, а для изоляции и переживания обрыва
- Постмортем без обратной связи в шаблоны — потеря времени
См. также: Глава 7 — Roadmap внедрения.