ЭКСПЕРИМЕНТЫ С timescaledb - zabbix...Хорошая система...

43
ЭКСПЕРИМЕНТЫ С TIMESCALEDB ZABBIX И POSTGRESQL С АВТОМАТИЧЕСКИМ ПАРТИЦИРОВАНИЕМ

Upload: others

Post on 20-May-2020

42 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

ЭКСПЕРИМЕНТЫ С TIMESCALEDB ZABBIX И POSTGRESQL С АВТОМАТИЧЕСКИМ ПАРТИЦИРОВАНИЕМ

Page 2: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

ПРИЧИНЫ ПЛОХОЙ ПРОИЗВОДИТЕЛЬНОСТИ

Page 3: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Быстрый сбор и обработка.

Хорошая система мониторинга должна получать, обрабатывать и сохранять получаемые данные очень быстро.

Первый вопрос проблем производительности

Page 4: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Второй вопрос проблем производительностиХранение истории.

Хорошая система мониторинга должна предоставлять удобный доступ к огромным массивам истории.

История активно используется в отчетах, графиках, триггерах и вычисляемых элементах данных.

Page 5: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Третий вопрос проблем производительностиОчистка истории.Хорошая система мониторинга должна хранить исторические данные. И время от времени их удалять.

Процедура удаления истории влияет на производительность очень сильно.

Page 6: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

КАК ИХ РЕШИТЬ ?

Page 7: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Кэширование- Сбор и обработка данных

- Использование истории в триггерах, графиках, вычисляемых элементах данных.

Кэши Zabbix и Базы Данных.

Page 8: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Кэширование Zabbix

Кэширование значений – обработка данных и вычисление триггеров

Кэш конфигурации - Сбор данных

Буффер значений перед записью в Базу данных

Другие вспомогательные кэши

Page 9: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Кэширование в базе данных

Innodb buffer pool

Shared buffersEffective cache size

Shared pool… и прочиеТюнинг параметров базы данных обязателен!

Как при первом запуске, так и на регулярной основе.

Page 10: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Пример конфигурации PostgreSQL

Page 11: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Производительность Базы данных

Zabbix Server

Сбор данных

Определение проблем

Оповещение Запись в базу

данных

Page 12: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Производительность Базы данных

Веб интерфейс ZabbixZabbix Server

Графики События и проблемы

Карты

Page 13: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Производительность Базы данных

Grafana

Zabbix Server Веб интерфейс Zabbix

Zabbix API

Page 14: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Третий вызов производительностиОчистка истории = Zabbix Housekeeper

Когда стоит отключить housekeeper?

Page 15: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Секция 3

Секция 2

Третий вопрос проблем производительности

PartitioningСекционирование или партиционирование

historyhistory_uinthistory_str

history_texthistory_log

1 день

trendstrends_uint

1 месяц

Вся таблица

Секция 1

Page 16: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Преимущества партиционирования

history_2019_08_25

history_ 2019_08_26

history_ 2019_08_27

Удаление данных – быстрое удаление (один файл/подтаблица, а не выборка строк на удаление)

Получение – заметно ускоряет выборку данных (использует одну или более секцию, а не всю таблицу) при правильном выборе индекса

Вставка данных – также ускоряется

Page 17: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Zabbix + PostgreSQL (partitioning)

Стандартный подход настройки партиционирования

PostgreSQL 9,10 - нужны процедуры и триггеры + скрипты для управления и наблюдения

Page 18: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

TimescaleDB

Page 19: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

TimescaleDB

Page 20: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

TimescaleDB

Page 21: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

TimescaleDB

Page 22: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Zabbix + TimescaleDB

https://docs.timescale.com/v1.3/getting-started

Для базы данных с Zabbix выполняем команду

Page 23: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Zabbix + TimescaleDB

Просто выполнить эти команды

Page 24: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Zabbix + TimescaleDB

Page 25: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Zabbix + TimescaleDB

Page 26: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Zabbix + TimescaleDB

20 CPU Intel(R) Xeon(R) CPU E5-2630 2.20GHz16G RAM200G SSD diskVmware guest

Page 27: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

36K NVPS PostgreSQL250K элементов данных, 175K триггеров

Page 28: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

80K NVPS PostgreSQL400K элементов данных, 280K триггеров

Page 29: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

80K NVPS PostgreSQLНедостаточная производительность диска

Page 30: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

80K NVPS PostgreSQLДругой сервер 48CPU, 128G RAM, 1.5T

Page 31: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

80K NVPS PostgreSQL vs TimescaleDB

Page 32: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

120K NVPS TimescaleDB500K элементов данных, 350K триггеров

Page 33: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

120K NVPS TimescaleDB500K элементов данных, 350K триггеров

Page 34: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

120K+ NVPS TimescaleDBДобавил 3 прокси и распределил часть проверок

Page 35: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

120K+ NVPS TimescaleDB10-20K через прокси с PostgreSQL

Page 36: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

130K+ NVPS TimescaleDB

Page 37: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

130K+ NVPS TimescaleDB

Page 38: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

130K+ NVPS TimescaleDB

Page 39: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

130K+ NVPS TimescaleDB

Page 40: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

130K+ NVPS TimescaleDB 13916:20190821:021722.515 slow query: 25.018634 sec, "select min(clock) from proxy_history" 13916:20190821:021905.737 slow query: 103.218789 sec, "delete from proxy_history where id<64980232 and (clock<1566339417 or (id<=64676112 and clock<1566343017))" 13916:20190821:021905.773 housekeeper [deleted 43028145 records in 128.279393 sec, idle for 1 hour(s)]

Page 41: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Выводы

• 120К max (дальше нужно изменять код)• если не производительные диски• если у вас стандартный PostgreSQL и вы на пороге

партиционирования• подходит как стартовая точка для любой инсталляции• Используйте прокси. Они быстрые и эффективные!

Page 42: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

Сообщество и События Каналы Telegram: @ZabbixPro@ZabbixJuniorEng: @ZabbixTech

Форум IRC #zabbix

Page 43: ЭКСПЕРИМЕНТЫ С TIMESCALEDB - Zabbix...Хорошая система мониторинга должна предоставлять удобный доступ к огромным

СПАСИБО!ВОПРОСЫ?