Zabbix: рецепты
высокопроизводительного
мониторинга
Алексей Владышев
О чём будем говорить
Архитектура и внутреннее устройство Zabbix
Тесты производительности
Работа над ошибками
Смотрим в будущее
2
3
Архитектура Zabbix
База данныхZabbix Server
Zabbix Proxy
Zabbix Proxy
Агенты
Агенты
Агенты
Push
Pull
Pull
Агенты Push
Интерфейс
4
Сбор данных: что быстрее?
Zabbix Server
Агенты
Push
5
Сбор данных: что быстрее?
Zabbix Server
Агенты
Push
Zabbix Proxy
6
Сбор данных: что быстрее?
Zabbix Server
Агенты
Push
Zabbix Proxy
Пакетная обработка данных
7
Сбор данных: что быстрее?
Zabbix Server
Агенты
Push
Zabbix Proxy
Отсутствие TLS шифрования
Zabbix является мультипроцессным приложением
Zabbix - полновесная система мониторинга
Zabbix предоставляет множество гарантий (TCP,
транзакционность, целостность даных)
8
О чём важно помнить?
9
Вид из консоли
10
Основные параметры
Количество процессов:
StartTrappers=5

StartDBSyncers=4

StartPreprocessors=3

…


Размеры буферов:
CacheSize=8M

HistoryCacheSize=16M

…
Задачи
Достичь максимального уровня производительности
Найти узкие места Zabbix Server
11
HPE DL360 G9 2 x Xeon E5-2650V4 / 2.2 GHz / 24 cores128GB RAM
RAID10 of 4x800GB SSD
Стоимость решения: 5-7K EUR
Облачный аналог: AWS EC2 i3.8xlarge, 1250 EUR per month
OS: RedHat Enterprise Linux 7.5, filesystem: XFS
12
Спецификация сервера
2 000 000 метрик
1 000 000 триггеров
Хост: 100 метрик, 50 триггеров
13
Реалистичное тестовое окружение
20 000

хостов
100 метрик, 25% с предобработкой


40 uint: 8 с предобработкой: diff, hex2dec, multiplier

40 float: 8 с предобработкой: diff, change, multiplier

10 string: 5 с предобработкой: trim, ltrim, rtrim

5 text: 2 с предобработкой: trim, ltrim

5 log: 2 с предобработкой: regex
14
Метрики
1 хост
Что такое
предварительная
обработка?
15
16
Или любой другой формат
Правила

предварительной обработки
……….
Available memory
CPU utilization
Response time
TPS
Network utilization
SSL certificate expiry date
………..
Метрики
17
Как будем тестировать?
2M измерений
Zabbix Server v3.4.3
1-8 proxy
2M измерений
2M измерений
2M измерений
18
Физический уровень
Proxy
48 x 1Gbps HPE switch
Zabbix Server
N x
19
Zabbix Server: основные компоненты
Обработка
метрик
Анализ История
Zabbix Server
20
Скорость обработки данных
Обработка
метрик
Анализ История
21
Внутренности Zabbix
TCP
TCP
TCP
TCP
TCP
TCP
Trappers
Обработка
метрик
22
Внутренности Zabbix
TCP
TCP
TCP
TCP
TCP
TCP
Trappers
Configuration
Cache
ITEMID ITEM
Configuration Syncer
Обработка
метрик
23
Внутренности Zabbix
TCP
TCP
TCP
TCP
TCP
TCP
Trappers
Configuration
Cache
ITEMID
Pre-processing manager
ITEM
Internal queue
itemid + processed flag
Workers
not processed
processed
History
Cache
Configuration Syncer
Обработка
метрик
24
Параметры конфигурации
TCP
TCP
TCP
TCP
TCP
TCP
Trappers
Configuration
Cache
ITEMID
Pre-processing manager
ITEM
Internal queue
itemid + processed flag
Workers
not processed
processed
History
Cache
StartTrappers = 5
CacheSize = 8M
HistoryCacheSize = 16M
StartPreprocessors = 3
Configuration Syncer
CacheUpdateFrequency = 60
Обработка
метрик
25
Вид из консоли
26
Без триггеров и DB
Прокси rx size mb/s значений время vps
1 134484745 4.23 1997600 30 65962
2 270751932 8.05 3995200 32 124530
4 543339644 10.83 7990400 48 166995
8 1088377468 11 15980800 94 169372
168 тысяч проверок в секунду: маловато!
Утилизация CPU: 8%.
Упёрлись в сеть, 100Mbps. Переходим на
1Gbps.
А если использовать компрессию?
27
Первые выводы
28
С компрессией
Прокси rx size mb/s значений время vps
1 24385957 0.91 1997600 25 81474
2 48779874 1.69 3995200 28 141368
4 97566928 2.42 7990400 39 204577
8 195109219 2.32 15980800 80 200506
29
Быстрее на 20%!
200К метрик в секунду, +20%
Компрессия помогла!
Упёрлись в узкое место: Preprocessor Manager
Исправили проблему в Preprocessing Manager &
Workers +10%
30
Выводы
31
Preprocessing manager
Pre-processing manager
ITEM
Internal queue
itemid + processed flag
Workers
not processed
processed
History
Cache
32
Скорость анализа данных
Обработка
метрик
ИсторияАнализ
33
History Syncer
History
Cache
History Syncers
Configuration
Cache
ITEMID TRIGGER EVAL
Value Cache
VALUES
EVENT PROCESING ACTION PROCESING
History Trends Problems Triggers Escalations
Анализ
34
History Syncer
History
Cache
History Syncers
Configuration
Cache
ITEMID TRIGGER EVAL
Value Cache
VALUES
EVENT PROCESING ACTION PROCESING
History Trends Problems Triggers Escalations
CacheSize = 8M
HistoryCacheSize

8M
ValueCacheSize = 8MStartDBSyncers = 8M
Анализ
35
С триггерами
Proxies rx size mb/s values время vps
1 134484745 4.23 1997600 32 62857 (-30%)
2 270751932 8.05 3995200 44 90070 (-40%)
4 543339644 10.83 7990400 88 90905 (-60%)
8 1088377468 11 15980800 178 89753 (-60%)
Обработка триггеров снижает
производительность от 30% до 60% и упирается
в 90 000 в секунду.
Узкое место: ValueCache
36
Выводы
37
Подключаем историю
Обработка
метрик
Анализ История
38
History Syncer
History
Cache
History Syncers
Configuration
Cache
ITEMID TRIGGER EVAL
Value Cache
VALUES
EVENT PROCESING ACTION PROCESING
History Trends Problems Triggers Escalations
История
39
Выбираем базу
VS VS
MariaDB 5.5 PostgreSQL 9.2 InfluxDB 1.3.5
40
MariaDB 5.5: синтетический тест
0
50000
100000
150000
200000
0 10 20 30 40 50 60 70
41
База данных: MariaDB 5.5
Партиционирование, каждая
партиция хранит
историю за 1 час,
50GB на партицию
История
42
MariaDB: синтетический тест
0
50000
100000
150000
200000
0 10 20 30 40 50 60 70
43
PostgreSQL: синтетический тест
0
60000
120000
180000
240000
0 10 20 30 40 50 60 70
MariaDB
PostgreSQL
44
InfluxDB: синтетический тест
0
350000
700000
1050000
1400000
0 10 20 30 40 50 60 70
MariaDB
PostgreSQL
InfluxDB
45
Базы данных: результат
VS VS
MariaDB 5.5 PostgreSQL 9.2 InfluxDB
160 000 VPS
Ограничение: I/O
200 000 VPS
Ограничение: I/O
1 300 000 VPS
Ограничение: CPU
46
С историей
Proxies values время vps
1 1997600 34 85752 (-4%)
2 3995200 46 86852 (-4%)
4 7990400 93 85918 (-5%)
8 15980800 187 85458 (-5%)
47
90 000 метрик в секунду
Достаточно для мониторинга каждую минуту:



100 000 хостов, 54 метрик на хост


Каждые 10 секунд:
10 000 хостов, 90 метрик на хост



Раз в секунду:
1 000 хостов, 90 метрик на хост
Хранение истории уменьшает скорость на 5%.
Существенно не влияет на
производительность
48
Выводы
Использование компрессии
Распараллелить внутреннюю обработку данных
Более эффективно работать с внутренними структурами
данных
Ускорить систему хранения данных
49
Что можно улучшить?
Убедились, что Zabbix способен собирать 90 000
метрик в секунду, используя лишь 10% CPU
Получили 20% прирост производительности по ходу
тестов
50
Итог
Поддержка быстрых хранилищ данных
Изучить влияние интерфейса на производительность
Избавиться от узких мест и распараллеливание операций
51
Задачи на Zabbix 4.0
The Universal Open Source Enterprise Level Monitoring Solution
Спасибо!
Twitter: @avladishev
Email: alex@zabbix.com
Подробности на нашем стенде!
All used icons made by Freepik from www.flaticon.com

More Related Content

PDF
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
PDF
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
PPTX
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
PDF
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
PDF
RootConf 2015
PDF
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
PPTX
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
PPTX
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
Длинная транзакция или когда размер имеет значение / Михаил Балаян (Odin — In...
Как построить кластер для расчета сотен тысяч high-CPU/high-MEM-задач и не ра...
RootConf 2015
Опыт миграции между дата-центрами / Михаил Тюрин, Сергей Бурладян (Avito)
Эволюция программно-аппаратного обеспечения хранения фотографий в Badoo / Дми...
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)

What's hot (20)

PDF
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
PDF
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
PDF
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
PPTX
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
PDF
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
PPTX
Скорость с доставкой до пользователя
PPTX
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
PDF
Реализация восстановления после аварий / Сергей Бурладян (Avito)
PPTX
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
PDF
Балансировка нагрузки и отказоустойчивость в Одноклассниках
PPTX
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
PDF
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
PDF
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
PDF
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
PPTX
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
PDF
My talk on monitoring systems at RootConf 2016
PDF
Юрий Насретдинов, Badoo
PPTX
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
PDF
Современная операционная система: что надо знать разработчику / Александр Кри...
PDF
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
libfpta — обгоняя SQLite и Tarantool / Леонид Юрьев (Positive Technologies)
Очереди и блокировки. Теория и практика / Александр Календарев (ad1.ru)
За счет чего Tarantool такой оптимальный / Денис Аникин (Mail.Ru)
Внутреннее устройство PostgreSQL: временные таблицы и фрагментация памяти / Г...
Скорость с доставкой до пользователя
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Балансировка нагрузки и отказоустойчивость в Одноклассниках
Dennis Anikin - Tarantool Case Studies in Mail.Ru Group
Путь от монолита на PHP к микросервисам на Scala / Денис Иванов (2GIS)
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Движок LMDB — особенный чемпион / Юрьев Леонид (Петер-Сервис R&D)
My talk on monitoring systems at RootConf 2016
Юрий Насретдинов, Badoo
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Современная операционная система: что надо знать разработчику / Александр Кри...
Сегментируем 600 млн. пользователей в режиме реального времени каждый день. H...
Ad

Similar to Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix) (20)

PDF
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
PDF
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
PDF
OpenSource SQL Databases Enter Millions Queries per Second Era
PPTX
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
PPTX
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
PPTX
Надежность World of Tanks Server
PDF
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
PDF
Демонстрация продуктов и технологий Net app
PDF
Марина Широчкина: Верстка. Вид снизу
PPTX
Мониторинг проектов: сравнительный анализ существующих решений
PDF
Опыт построения комплексного катастрофоустойчивого решения NetApp и фрагмента...
PDF
Сергей Еланцев - Troubleshooting
PDF
Building deployment pipeline - DevOps way
PDF
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
PDF
Другая виртуализация
PPTX
мониторинг производительности приложения на PINBA
PPTX
Drupal 8 и хостинг
PDF
Методики и инструменты для самостоятельного решения проблем в сети
PPTX
Breaking logs
PDF
Работа с платами ИНСИС из MATLAB
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
Open Source SQL-базы данных вступили в эру миллионов запросов в секунду / Фед...
OpenSource SQL Databases Enter Millions Queries per Second Era
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Надежность World of Tanks Server
как написать масштабируемую баннерокрутилку. денис бирюков, артем гавриченков...
Демонстрация продуктов и технологий Net app
Марина Широчкина: Верстка. Вид снизу
Мониторинг проектов: сравнительный анализ существующих решений
Опыт построения комплексного катастрофоустойчивого решения NetApp и фрагмента...
Сергей Еланцев - Troubleshooting
Building deployment pipeline - DevOps way
Обработка спйсмоданных: возможности оптимизации ИТ-инфраструктуры
Другая виртуализация
мониторинг производительности приложения на PINBA
Drupal 8 и хостинг
Методики и инструменты для самостоятельного решения проблем в сети
Breaking logs
Работа с платами ИНСИС из MATLAB
Ad

More from Ontico (20)

PDF
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
PPTX
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
PDF
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
PDF
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PDF
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PDF
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
PDF
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
PPTX
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
PPTX
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
PDF
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
PPTX
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
PPTX
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
PDF
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
PPT
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
PPTX
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
PPTX
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
PPTX
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
PDF
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
PDF
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Как мы учились чинить самолеты в воздухе / Евгений Коломеец (Virtuozzo)

Zabbix: рецепты высокопроизводительного мониторинга / Алексей Владышев (Zabbix)