Zabbix 7 для офиса: как мы мониторим 200 хостов одним сервером
Меня зовут Семёнов Евгений Сергеевич, я директор АйТи Фреш. Зачем сисадмину в офисе из 50 человек нужен Zabbix? Чтобы узнавать о падении почтового сервера от системы мониторинга, а не от разъярённого бухгалтера в 23:48. За пятнадцать лет я внедрил мониторинг в нескольких десятках компаний и расскажу, как мы разворачиваем Zabbix 7 LTS для типичного клиента — 200-500 хостов под наблюдением, один сервер, никаких распределённых прокси и enterprise-зоопарка. Только то, что реально работает в малом и среднем бизнесе.
Кому и зачем нужен Zabbix в офисе
Когда я приезжаю на новый объект и спрашиваю, как у клиента поставлен мониторинг, я слышу обычно три варианта ответа. Первый: «Никак, нам бухгалтерия звонит, когда что-то ломается». Второй: «Мы поставили на сервере штатный Performance Monitor, иногда туда заглядываем». Третий, самый интересный: «У нас Zabbix есть, его пять лет назад поднимал какой-то парень, но он уже уволился, и теперь там жёлтые лампочки горят постоянно — мы их игнорируем». Все три варианта приводят к одному и тому же — системы падают, бизнес теряет деньги, админ виноват.
Внятный мониторинг нужен любой компании, где простой стоит дороже 5000 руб./час. Считать просто: сколько у вас сотрудников × средняя зарплата за час × коэффициент 0.5 (потому что половина людей всё равно ищет, чем заняться, когда «1С лежит»). Для офиса 50 человек получается 12-15 тыс. руб./час простоя, а в активные дни (отчётность, конец месяца) — все 30 тыс. руб. Хорошо настроенный Zabbix окупается одним предотвращённым инцидентом.
Что мы мониторим у типичного клиента
Возьмём для примера моего клиента — производственная компания «Инжимарт», 65 рабочих мест, два цеха в Подмосковье, бэк-офис в Москве. Когда мы взяли их на обслуживание полтора года назад, мониторинга не было вообще — реактивная модель «звонок от пользователя». За первый месяц мы развернули Zabbix и поставили под наблюдение 218 объектов:
| Категория | Количество | Что мониторим |
|---|---|---|
| Windows-серверы | 9 | CPU, RAM, диски, сервисы (1С, AD, IIS, SQL), Event Log |
| Linux-серверы | 6 | Mail, web, бэкапы, мониторинг сам себя |
| Hyper-V хосты | 3 | Состояние ВМ, миграции, использование ресурсов |
| Рабочие станции (выборочно) | 15 | Только критичные — бухгалтерия, директор, отдел продаж |
| Mikrotik и коммутаторы | 22 | Загрузка интерфейсов, температура, статус линков, BGP |
| ИБП APC | 8 | Состояние батарей, мощность, температура, питание сети |
| Сетевые принтеры | 14 | Тонер, бумага, ошибки |
| СКУД и видеонаблюдение | 12 | Состояние контроллеров, дисковая подсистема видеосервера |
| Внешние сервисы (HTTP/HTTPS) | 129 | Корпоративный сайт, личный кабинет, API партнёров |
| Итого | 218 | около 9 500 метрик/мин (NVPM) |
Ключевая идея — мониторить не «всё подряд», а то, отказ чего реально остановит бизнес. Если упадёт одна рабочая станция в отделе кадров — это не катастрофа. Если упадёт сервер 1С или контроллер домена — это катастрофа за минуту. Поэтому 100 % серверов под наблюдением, и только выборочные рабочие станции.
Архитектура: один сервер вместо распределённой системы
В типичных туториалах вам предложат развернуть отдельно сервер, отдельно базу, отдельно фронтенд, отдельно прокси. Это правильно для оператора связи с 5000 хостами в десяти регионах. Для офиса в Москве с 200 объектами это overkill, который усложняет администрирование и стоит лишних денег.
Моя рабочая схема для SMB — одна виртуальная машина на Ubuntu 24.04 LTS:
- 4 vCPU, 8 ГБ ОЗУ, 200 ГБ SSD (этого хватает на 200-500 хостов с историей за 90 дней).
- Zabbix Server 7.0 LTS — версия с долгосрочной поддержкой до 2029 года.
- PostgreSQL 16 + TimescaleDB вместо штатной БД (TimescaleDB на порядок быстрее на больших историях).
- Nginx + PHP-FPM для веб-интерфейса.
- Zabbix Agent 2 на этом же сервере — мониторим сам сервер мониторинга.
Один Zabbix-прокси добавляем только если у клиента есть удалённая площадка с тонким каналом. У «Инжимарт» так и сделано: главный сервер в офисе, прокси на одном из цехов — он буферизует данные с 30 хостов цеха и отправляет их пакетом, экономя трафик по 4G-каналу.
Установка Zabbix 7 на Ubuntu 24.04 за 30 минут
Делается за вечер. Предполагаем чистую Ubuntu 24.04 LTS, у которой есть интернет, сделан apt update и проброшены порты 80/443 для веб-интерфейса.
# 1. Подключаем репозиторий Zabbix 7.0 LTS
wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-1+ubuntu24.04_all.deb
dpkg -i zabbix-release_7.0-1+ubuntu24.04_all.deb
apt update
# 2. Устанавливаем компоненты
apt install -y zabbix-server-pgsql zabbix-frontend-php \
zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2
# 3. Устанавливаем PostgreSQL 16 и TimescaleDB
echo "deb https://packagecloud.io/timescale/timescaledb/ubuntu/ noble main" | \
tee /etc/apt/sources.list.d/timescaledb.list
wget -qO- https://packagecloud.io/timescale/timescaledb/gpgkey | \
gpg --dearmor -o /etc/apt/trusted.gpg.d/timescaledb.gpg
apt update
apt install -y postgresql-16 timescaledb-2-postgresql-16
# 4. Создаём базу данных
sudo -u postgres psql -c "CREATE USER zabbix WITH PASSWORD 'YourStr0ngPass!';"
sudo -u postgres psql -c "CREATE DATABASE zabbix OWNER zabbix;"
sudo -u postgres psql -d zabbix -c "CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;"
# 5. Импортируем схему Zabbix
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | \
sudo -u zabbix psql zabbix
cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/schema.sql | \
sudo -u zabbix psql zabbix
Конфигурация PostgreSQL под нашу задачу — небольшая правка /etc/postgresql/16/main/postgresql.conf:
# Включаем TimescaleDB
shared_preload_libraries = 'timescaledb'
# Память — для виртуалки с 8 ГБ ОЗУ
shared_buffers = 2GB
effective_cache_size = 5GB
work_mem = 32MB
maintenance_work_mem = 512MB
# WAL и I/O
wal_buffers = 16MB
max_wal_size = 2GB
checkpoint_completion_target = 0.9
random_page_cost = 1.1
# Подключения
max_connections = 100
Конфигурация Zabbix Server (/etc/zabbix/zabbix_server.conf) — минимальный набор изменений под 200 хостов:
# База данных
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=YourStr0ngPass!
# Производительность
StartPollers=20
StartPreprocessors=10
StartTrappers=5
StartPingers=5
StartDiscoverers=3
StartHTTPPollers=3
StartDBSyncers=4
StartAlerters=3
# Кеши
CacheSize=256M
HistoryCacheSize=128M
HistoryIndexCacheSize=64M
TrendCacheSize=64M
ValueCacheSize=128M
# Таймауты
Timeout=15
# Хаускипер
HousekeepingFrequency=1
MaxHousekeeperDelete=10000
# Логи
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=50
После запуска systemctl enable --now zabbix-server zabbix-agent2 nginx php8.3-fpm идём в браузер на адрес сервера, проходим мастер начальной настройки (логин/пароль БД, имя сервера, часовой пояс — Europe/Moscow), создаём админский пароль вместо стандартного Admin/zabbix.
Установка агента на Windows-серверы и рабочие станции
Для Windows используем Zabbix Agent 2 — у него есть встроенные плагины под IIS, MSSQL, Memcached, что экономит время. Скачиваем MSI-пакет с zabbix.com, ставим через групповую политику или вручную.
# Конфигурация агента C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf
Server=10.10.10.50
ServerActive=10.10.10.50
Hostname=DC01.inzhimart.local
HostMetadata=windows-server;ad;dns;production
# Плагины — раскомментировать нужные
Plugins.MSSQL.URI=tcp:127.0.0.1:1433
Plugins.MSSQL.User=zabbix_monitor
Plugins.MSSQL.Password=monitoring_password
# Логи
LogFile=C:\Program Files\Zabbix Agent 2\logs\zabbix_agent2.log
LogFileSize=10
Тонкий момент с Windows: открыть TCP-порт 10050 в Windows Firewall и для входящих, и для исходящих. На AD-серверах ещё нужно дать сервисной учётке агента (по умолчанию Local System) доступ к WMI и Performance Counters. Готовый PowerShell-скрипт для массовой установки и настройки через GPO я выложил в нашем рабочем репозитории, ссылка по запросу.
Шаблоны: что мы используем для типового офиса
Главная сила Zabbix — готовые шаблоны. В коробке с 7-й версией их около 300 штук, под практически любое железо и софт. Вот что мы прикручиваем у каждого клиента:
| Категория | Шаблон | Источник |
|---|---|---|
| Windows-серверы | Windows by Zabbix Agent 2 | Встроенный |
| Linux-серверы | Linux by Zabbix Agent 2 | Встроенный |
| Active Directory | Windows Active Directory by Zabbix Agent | Встроенный |
| MSSQL Server | Microsoft SQL Server by Zabbix Agent 2 | Встроенный |
| 1С:Предприятие | Наш самодельный, отдаём клиентам | github.com/itfresh/zbx-1c |
| Mikrotik | MikroTik by SNMP | Встроенный |
| ИБП APC | APC UPS SmartUPS by SNMP | Встроенный |
| Hyper-V | Microsoft Hyper-V by Zabbix Agent 2 | Встроенный |
| HTTP/HTTPS endpoints | Website certificate by Zabbix agent 2 + HTTP agent items | Встроенный + ручная настройка |
Для 1С я допилил собственный шаблон — стандартного нет. Он мониторит три уровня: процессы (rphost, ragent, rmngr), технические метрики через rac (количество сеансов, длительность блокировок), и бизнес-показатели (например, время выполнения отчёта «Анализ продаж»). На GitHub лежит у нас публично, забирайте.
Алерты в Telegram: настройка за 10 минут
Любая система мониторинга бесполезна без понятной системы оповещений. SMS и email в 2026 году — это медленно, дорого и пропускается. Telegram — быстро, бесплатно и доходит сразу.
# Создаём бота через @BotFather в Telegram
# Получаем токен вида 1234567890:AAEhBP...
# В Zabbix UI: Alerts → Media types → Telegram (готовый шаблон)
# Параметры:
# bot_token: 1234567890:AAEhBP...
# parse_mode: HTML
# chat_id: {ALERT.SENDTO}
# Шаблон сообщения для проблем:
<b>[{TRIGGER.SEVERITY}] {EVENT.NAME}</b>
🖥 Хост: <code>{HOST.NAME}</code>
📍 IP: <code>{HOST.IP}</code>
📊 Значение: <code>{ITEM.LASTVALUE1}</code>
🕐 Когда: {EVENT.DATE} {EVENT.TIME}
🔗 <a href="https://zabbix.itfresh.ru/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}">Открыть в Zabbix</a>
# Для каждого пользователя в Zabbix: Profile → Media → Telegram
# В поле "Send to" указывает свой chat_id (узнать через @userinfobot)
Дальше создаём Action: «Если severity >= Warning, отправлять в Telegram дежурному инженеру; если severity = Disaster, эскалировать через 5 минут на старшего инженера; через 15 минут — лично на меня». Это наша стандартная схема для всех клиентов на круглосуточной поддержке.
Совет из реальной жизни. Не отправляйте все алерты подряд в общий чат — он превратится в шум, который никто не читает. Разделите по severity: Information и Warning — в служебный канал для статистики, Average и High — дежурным, Disaster — отдельный канал с громким уведомлением, который никто не выключает.
Хитрости тюнинга для офисной нагрузки
Несколько практических советов, которые я выработал за годы работы с Zabbix в SMB-сегменте.
Включите TimescaleDB compression и retention. Это критично для производительности на горизонте 3-6 месяцев. Без них база начинает разбухать, housekeeper тормозит, а простые запросы в дашбордах висят по 10 секунд.
# Включаем компрессию данных старше 7 дней
SELECT add_compression_policy('history', INTERVAL '7 days');
SELECT add_compression_policy('history_uint', INTERVAL '7 days');
SELECT add_compression_policy('trends', INTERVAL '30 days');
# Автоматическое удаление старых chunks
SELECT add_retention_policy('history', INTERVAL '90 days');
SELECT add_retention_policy('history_uint', INTERVAL '90 days');
SELECT add_retention_policy('trends', INTERVAL '730 days'); # 2 года трендов
Не мониторьте каждую секунду. По умолчанию многие шаблоны опрашивают метрики каждые 30-60 секунд. Для офиса этого с лихвой достаточно. Не поднимайте интервал до 10 секунд — это утроит нагрузку на сервер без полезного эффекта. Для бизнес-метрик 1 раз в 5 минут — нормально.
Используйте триггеры с зависимостями. Если упал коммутатор, через который доступен сервер — Zabbix начнёт слать алерты и про коммутатор, и про сервер. Настройте dependency: «триггер сервера зависит от триггера коммутатора» — и спама не будет.
Maintenance windows перед плановыми работами. Перед перезагрузкой сервера или обновлением Windows ставьте хост в maintenance — иначе разбудите всех дежурных в 3 ночи кучей алертов «host unreachable». Делается за 5 секунд через UI, экономит нервы.
Дашборды: что показывать руководителю и что — себе
Стандартный Zabbix-дашборд — для админов: гауссы, графики, таблицы. Руководителю это ничего не говорит. Я делаю два отдельных вида:
- NOC-экран для дежурных. Большая таблица «зелёное-жёлтое-красное» по всем критичным сервисам. Проблемы за последний час. Топ-10 хостов по нагрузке. Висит на отдельном мониторе в офисе сисадмина.
- Executive dashboard. Общий аптайм за месяц в процентах, количество инцидентов, среднее время восстановления (MTTR), стоимость предотвращённых простоев. Отправляется руководителю в виде PDF раз в неделю.
Для красивых отчётов руководству я часто прикручиваю Grafana — она бесплатная и умеет тянуть данные из Zabbix через официальный плагин. Но это уже опциональный второй уровень, для базовой работы хватает встроенных дашбордов Zabbix 7 (в седьмой версии их сильно прокачали).
Что ломалось и как мы это чинили
За полтора года эксплуатации у «Инжимарт» серьёзных проблем с Zabbix было три, и все стандартные.
1. PostgreSQL разросся до 180 ГБ за 4 месяца. Причина — забыли включить TimescaleDB compression. Бэкапы базы стали идти по 2 часа, ВМ начала дико тормозить. Решение: включили compression для всех hypertables, через сутки база сжалась до 35 ГБ. С тех пор это первое, что я делаю на новом сервере.
2. Алерты в Telegram перестали приходить ночью. Бот молчит, в логах Zabbix ошибка таймаута. Оказалось — провайдер блокировал api.telegram.org в окне ночных регламентных работ. Решение: подняли SOCKS5-прокси через нашу VPN-инфраструктуру, в Zabbix указали его в настройках Media Type Telegram. Параллельно сообщили клиенту про лучшего провайдера.
3. Веб-интерфейс открывался по 8 секунд. Причина — PHP-FPM с дефолтными настройками. По умолчанию pm.max_children = 5, а у нас 4 одновременных пользователя в офисе плюс автоматические запросы из Grafana. Поднял до pm.max_children = 20 и pm.start_servers = 5 — открывается за полсекунды.
Сколько это стоит и что вы получаете
Финансовая сторона вопроса — для типичного клиента уровня «офис 50-80 человек, 200-300 объектов мониторинга».
| Статья | Стоимость |
|---|---|
| Лицензия Zabbix | 0 ₽ (open-source GPL) |
| Виртуальная машина в нашем дата-центре (4 vCPU, 8 ГБ, 200 ГБ SSD) | 6 800 ₽/мес |
| Внедрение «под ключ» (наш стандартный пакет) | от 95 000 ₽ разово |
| Поддержка и доработки в рамках абонентки | входит в обслуживание |
В стандартный пакет внедрения входит: установка Zabbix Server и БД, настройка 5-10 шаблонов под вашу инфраструктуру, регистрация всех серверов и сетевого оборудования, создание дашбордов для админа и для руководителя, настройка алертов в Telegram, обучение вашего сисадмина базовому администрированию (4 часа), документация. Сроки — обычно 2-3 рабочих недели от старта до приёмки.
Закажите внедрение Zabbix для вашего офиса
Если вы устали узнавать о проблемах с инфраструктурой от пользователей — давайте поговорим. Я приеду на бесплатный аудит, посмотрю вашу текущую инфраструктуру и за 2-3 дня подготовлю предложение с конкретным набором шаблонов и стоимостью именно под ваш случай. Никаких «индивидуальных коммерческих» — фиксированная цена пакета.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — частые вопросы по внедрению Zabbix
- Сколько стоит мониторинг офисной инфраструктуры на Zabbix?
- Сам Zabbix бесплатный — это open-source. Расходы складываются из железа (виртуалка 4 vCPU, 8 ГБ ОЗУ, 200 ГБ SSD — около 6-8 тыс. руб./мес. при размещении в нашем дата-центре) и работ инженера на внедрение (от 95 тыс. руб.). Проект окупается за 3-4 месяца за счёт предотвращённых простоев.
- Какое железо нужно для Zabbix на 200 хостов?
- Виртуальная машина 4 vCPU, 8 ГБ ОЗУ, 200 ГБ SSD (с учётом 90 дней истории) — этого хватает с запасом. PostgreSQL и веб-интерфейс на той же машине. Если вырастете до 500 хостов — добавьте до 6 vCPU и 16 ГБ ОЗУ. Отдельный сервер БД нужен только начиная с 1000+ хостов.
- Можно ли мониторить 1С через Zabbix?
- Да, и весьма успешно. Мы используем три уровня мониторинга: технические метрики сервера 1С, состояние сервиса 1С:Предприятие через UserParameter, и бизнес-метрики (количество активных пользователей, время отклика типового документа). Шаблон отдаём клиентам бесплатно.
- Чем Zabbix лучше Prometheus для офиса?
- Для офиса с разнородной инфраструктурой (Windows-серверы, Mikrotik, ИБП, принтеры, 1С, СКУД) Zabbix удобнее: всё в одном продукте, не нужен node_exporter на каждой железке, есть готовые шаблоны для всего. Prometheus прекрасен для cloud-native окружения, но в офисе — overkill.
- Как настроить алерты в Telegram?
- В Zabbix 7 встроен Media Type Telegram. Создаёте бота через @BotFather, получаете токен, в Zabbix добавляете медиа-тип и шаблон сообщения. Каждому пользователю прописывается chat_id. Типичная схема: критичные алерты — в общий канал дежурных + личный чат старшего инженера, предупреждения — только в канал.