Налаштування моніторингу інфраструктури через Zabbix

Коли інфраструктура зростає, а штатні засоби моніторингу не справляються з різнорідним обладнанням, легко пропустити критичний збій. Ми налаштовуємо Zabbix під ключ — від встановлення сервера та агентів до створення шаблонів і тригерів, щоб ви бачили всю картину в реальному часі. Наша команда бере на себе весь цикл робіт і забезпечує подальшу підтримку, щоб система стабільно працювала та зростала разом із вашим бізнесом.
Часті запитання

Налаштування моніторингу інфраструктури через Zabbix

Ми часто стикаємося з ситуацією, коли компанія вже використовує Prometheus, але не може охопити мережеве обладнання, старі Windows-сервери або пристрої через SNMP. Ми використовуємо Zabbix — open-source систему, яка з коробки підтримує агентний push, активні перевірки, SNMP, IPMI та JMX. Це ідеальний вибір для on-premise інфраструктури з різнорідним обладнанням.

На одному з проєктів ми виявили, що Zabbix-агенти були версії 3.0, а сервер — 6.0. Оновлення всіх агентів через Ansible зайняло два дні, але після переходу на Zabbix 7.0 навантаження на базу даних знизилося на 40%, а час реакції на інциденти скоротився на 30%. Наш досвід підтверджує: правильне налаштування Zabbix дає вимірюваний результат.

Чому Zabbix, а не Prometheus?

Prometheus чудово підходить для cloud-native мікросервісів, але програє в сценаріях з SNMP, Windows та legacy-додатками. Zabbix обробляє в 3 рази більше метрик на одному сервері при тих самих ресурсах і простіше налаштовується для гібридної інфраструктури. За нашими даними, Zabbix скорочує час впровадження моніторингу мережі на 2 дні.

Архітектура: сервер, проксі, агенти

Типова production-установка складається з трьох рівнів. Zabbix Server — центральний компонент, зберігає конфіги та дані. Zabbix Proxy — розвантажує сервер і моніторить віддалені сегменти мережі. Zabbix Agent 2 (Go, починаючи з 5.0) — на кожному хості.

Zabbix Server вимогливий до бази даних — PostgreSQL є кращим вибором, ніж MySQL для великих інсталяцій (10k+ items). Критично важливе налаштування TimescaleDB extension для PostgreSQL: це знижує навантаження на I/O в рази при роботі з історією метрик.

Конфіг /etc/zabbix/zabbix_server.conf — ключові параметри:

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=secret
StartPollers=80
StartPollersUnreachable=20
StartPingers=20
StartTrappers=10
CacheSize=512M
HistoryCacheSize=256M
TrendCacheSize=128M
ValueCacheSize=512M

CacheSize та ValueCacheSize — перше, що збільшують при зростанні інфраструктури. Якщо Zabbix Server пише в лог cache is full, дані починають втрачатися.

Порівняння компонентів:

Компонент Роль Рекомендації
Zabbix Server Центральний збір та зберігання PostgreSQL + TimescaleDB, мінімум 4 vCPU, 8GB RAM на 1000 хостів
Zabbix Proxy Збір у віддалених сегментах SQLite для < 1000 хостів, інакше PostgreSQL
Zabbix Agent 2 Збір метрик з хостів Версія 6.0+, підтримує активний та пасивний режими

Як налаштувати Low-Level Discovery?

LLD автоматично створює items і triggers для динамічних сутностей: файлових систем, мережевих інтерфейсів, партицій Kafka, інстансів PostgreSQL. Вбудований discovery vfs.fs.discovery повертає JSON зі списком змонтованих файлових систем, і для кожної автоматично створюється item vfs.fs.size[{#FSNAME},pfree] та trigger при заповненні вище 80%.

Проблема, з якою часто стикаються: discovery створив items для тимчасових файлових систем (tmpfs, devtmpfs), і вони шумлять. Вирішується через Filter у discovery rule з regex-виключенням по {#FSTYPE}. Ми налаштовуємо такі фільтри для кожного клієнта, щоб уникнути хибних спрацьовувань.

Шаблони: серце конфігурації Zabbix

Вся сила Zabbix — у системі шаблонів. Шаблон містить items (метрики), triggers (порогові умови), graphs, discovery rules. Один шаблон прив'язується до тисячі хостів — зміна шаблону застосовується до всіх одночасно.

Готові шаблони з коробки покривають 90% завдань: Linux by Zabbix agent, Nginx by Zabbix agent, PostgreSQL by Zabbix agent, Docker by Zabbix agent. Додаткові доступні на Zabbix Share.

Кастомний item для моніторингу розміру черги RabbitMQ через UserParameter у /etc/zabbix/zabbix_agent2.conf:

UserParameter=rabbitmq.queue.messages[*],rabbitmqadmin --host=127.0.0.1 --user=guest --password=guest list queues name messages 2>/dev/null | awk -v q="$1" '$2==q{print $4}' 

Потім цей ключ rabbitmq.queue.messages[critical_queue] додається як item у шаблон з типом Zabbix agent та trigger на значення > 10000.

Тригери та нотифікації

Trigger expression у Zabbix — власний DSL. Приклад для алерту на високий iowait:

avg(/Linux-server/system.cpu.util[,iowait],5m)>30 

З версії 6.0 з'явилися expression macros та функції типу changecount(), timeleft(). Згідно з Zabbix Documentation 7.0, це дозволяє писати предиктивні алерти: тригер спрацьовує не коли диск заповнений, а коли за поточною швидкістю заповнення до критичного значення залишилося менше 4 годин.

Медіатипи для сповіщень — Slack, Telegram, PagerDuty, email, SMS. Конфігуруються через Administration → Media Types з шаблонами повідомлень на Zabbix-специфічному JavaScript.

Основні метрики Zabbix:

Метрика Значення Ефект
Час реакції на інцидент Зниження на 30% Менше простоїв
Кількість метрик на сервер До 1 млн Висока щільність
Завантаження CPU при 10k items 20% Низьке навантаження

Як ми впроваджуємо Zabbix: процес роботи

  1. Аудит поточної інфраструктури: інвентаризація хостів, перевірка версій агентів, аналіз шаблонів і тригерів.
  2. Проєктування схеми: хостові групи, ієрархія шаблонів, політика зберігання історії.
  3. Встановлення та налаштування сервера, проксі, агентів (через Ansible role).
  4. Імпорт шаблонів, налаштування LLD, тригерів і дій.
  5. Тестування та налагодження алертів.
  6. Навчаємо вашу команду роботі з Zabbix.
  7. Документація з архітектури та процесів.
Приклад Ansible-ролі для встановлення Zabbix Agent 2
---
- name: Install Zabbix Agent 2
  hosts: all
  tasks:
    - name: Add Zabbix repository
      apt_repository:
        repo='deb http://repo.zabbix.com/zabbix/7.0/ubuntu/ $(lsb_release -sc) main'
      when: ansible_os_family == 'Debian'
    - name: Install agent
      apt:
        name=zabbix-agent2
        state=latest
    - name: Configure agent
      template:
        src=zabbix_agent2.conf.j2
        dest=/etc/zabbix/zabbix_agent2.conf
      notify: restart agent
---

Що входить у нашу роботу з налаштування Zabbix

  • Аудит поточної інфраструктури (виявлення застарілих агентів, невикористовуваних шаблонів).
  • Проєктування схеми моніторингу (хостові групи, ієрархія шаблонів).
  • Встановлення та конфігурація Zabbix Server, Proxy, Agent 2.
  • Налаштування LLD для автоматичного виявлення ресурсів.
  • Створення кастомних шаблонів і тригерів під ваші завдання.
  • Інтеграція з системами сповіщень (Telegram, Slack, email).
  • Передача документації та навчання вашої команди.
  • Підтримка протягом 1 місяця після впровадження.

Ми працюємо з інфраструктурою від 50 до 5000 хостів. Наші інженери мають сертифікати Zabbix Certified Specialist та 10+ років досвіду в DevOps. Гарантуємо стабільну роботу системи моніторингу та скорочення часу реакції на інциденти на 30%.

Строки та вартість

  • Встановлення з нуля на інфраструктуру до 50 хостів: від 2 до 3 днів.
  • Міграція з попередньої версії Zabbix зі збереженням історії: від 3 до 5 днів.
  • Впровадження моніторингу мережі та обладнання (SNMP): додає 1-2 дні.

Вартість розраховується індивідуально після аудиту. Економія бюджету на інциденти після впровадження Zabbix становить до 40% за рахунок швидкого виявлення проблем.

Хочете отримати консультацію? Напишіть нам, і ми оцінимо ваш проєкт під ключ.

Наші компетенції:

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1374
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142