· 17 мин чтения

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-серверы9CPU, RAM, диски, сервисы (1С, AD, IIS, SQL), Event Log
Linux-серверы6Mail, web, бэкапы, мониторинг сам себя
Hyper-V хосты3Состояние ВМ, миграции, использование ресурсов
Рабочие станции (выборочно)15Только критичные — бухгалтерия, директор, отдел продаж
Mikrotik и коммутаторы22Загрузка интерфейсов, температура, статус линков, BGP
ИБП APC8Состояние батарей, мощность, температура, питание сети
Сетевые принтеры14Тонер, бумага, ошибки
СКУД и видеонаблюдение12Состояние контроллеров, дисковая подсистема видеосервера
Внешние сервисы (HTTP/HTTPS)129Корпоративный сайт, личный кабинет, API партнёров
Итого218около 9 500 метрик/мин (NVPM)

Ключевая идея — мониторить не «всё подряд», а то, отказ чего реально остановит бизнес. Если упадёт одна рабочая станция в отделе кадров — это не катастрофа. Если упадёт сервер 1С или контроллер домена — это катастрофа за минуту. Поэтому 100 % серверов под наблюдением, и только выборочные рабочие станции.

Архитектура: один сервер вместо распределённой системы

В типичных туториалах вам предложат развернуть отдельно сервер, отдельно базу, отдельно фронтенд, отдельно прокси. Это правильно для оператора связи с 5000 хостами в десяти регионах. Для офиса в Москве с 200 объектами это overkill, который усложняет администрирование и стоит лишних денег.

Моя рабочая схема для SMB — одна виртуальная машина на Ubuntu 24.04 LTS:

Один 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 DirectoryWindows Active Directory by Zabbix AgentВстроенный
MSSQL ServerMicrosoft SQL Server by Zabbix Agent 2Встроенный
1С:ПредприятиеНаш самодельный, отдаём клиентамgithub.com/itfresh/zbx-1c
MikrotikMikroTik by SNMPВстроенный
ИБП APCAPC UPS SmartUPS by SNMPВстроенный
Hyper-VMicrosoft Hyper-V by Zabbix Agent 2Встроенный
HTTP/HTTPS endpointsWebsite 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-дашборд — для админов: гауссы, графики, таблицы. Руководителю это ничего не говорит. Я делаю два отдельных вида:

Для красивых отчётов руководству я часто прикручиваю 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 объектов мониторинга».

СтатьяСтоимость
Лицензия Zabbix0 ₽ (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. Типичная схема: критичные алерты — в общий канал дежурных + личный чат старшего инженера, предупреждения — только в канал.