Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Тошнит от колец
Великая битва систем мониторинга
(часть первая)
Александр Чистяков
Давайте познакомимся
• Меня зовут Саша
• Я адепт Церкви Метрик
• Я ненавижу Zabbix
Теперь ваша очередь
• В зале есть еще Саша?
• В зале есть еще адепт Церкви Метрик?
• В зале есть те, кто любит Zabbix?
Что здесь будет происходить?
• Мы возьмем несколько средств сбора и хранения метрик
• Мене, мене, текел, упарсин
• Zabbix должен проиграть
Я тебя слепила из того, что было
• Машина для системы мониторинга:
• 39G RAM, 6x300 SAS HDD, Adaptec AAC-RAID
• Write-cache mode : Enabled (write-back)
• Мониторится 26 хостов разных конфигураций
• Ubuntu 16.04 на хосте системы мониторинга
• Ubuntu 14.04 на остальных хостах
• В качестве коллектора выступает collectd
Участники забега
• Graphite/Whisper (победитель прошлой Олимпиады)
Участники забега
• Graphite/Whisper (победитель прошлой Олимпиады)
• Prometheus
Участники забега
• Graphite/Whisper (победитель прошлой Олимпиады)
• Prometheus
• InfluxDB
Участники забега
• Graphite/Whisper (победитель прошлой Олимпиады)
• Prometheus
• InfluxDB
• Zabbix
Команда поддержки
• Grafana
• Красивые графики, нарисованные прямо при помощи
испытуемого хранилища
Команда поддержки
• Grafana
• Красивые графики, нарисованные прямо при помощи
испытуемого хранилища
• blktrace и seekwatcher
• Красивые графики, показывающие куда физически на диске
попадают на чтение и запись
Погнали!
Graphite/Whisper - метрики хоста
• Мы возьмем несколько средств сбора и хранения
• Мене, мене, текел, упарсин
• Zabbix должен проиграть
Graphite/Whisper - blktrace 120 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix должен проиграть
Graphite/Whisper - blktrace 30 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix должен проиграть
Как устроен Carbon/Whisper
• Много файликов на диске (одна метрика - один файлик)
Как устроен Carbon/Whisper
• Много файликов на диске (одна метрика - один файлик)
• Файлики имеют предопределенный размер
Как устроен Carbon/Whisper
• Много файликов на диске (одна метрика - один файлик)
• Файлики имеют предопределенный размер
• Размер зависит от выбора retention policy
Как устроен Carbon/Whisper
• Много файликов на диске (одна метрика - один файлик)
• Файлики имеют предопределенный размер
• Размер зависит от выбора retention policy
• Мы начали с policy 10s:2d,60s:14d,300s:60d,1200s:395d
Как устроен Carbon/Whisper
• Много файликов на диске (одна метрика - один файлик)
• Файлики имеют предопределенный размер
• Размер зависит от выбора retention policy
• Мы начали с policy 10s:2d,60s:14d,300s:60d,1200s:395d
• В момент записи метрики происходит также агрегация
значений
Ситуация в динамике
• Выключим коллектор на 10 машинах (из 26)
Ситуация в динамике
• Выключим коллектор на 10 машинах (из 26)
• Ситуация на графике мало изменилась (retention policy?)
Ситуация в динамике
• Выключим коллектор на 10 машинах (из 26)
• Ситуация на графике мало изменилась (retention policy?)
• Остановим carbon, удалим 10 каталогов, запустим
Ситуация в динамике
• Выключим коллектор на 10 машинах (из 26)
• Ситуация на графике мало изменилась (retention policy?)
• Остановим carbon, удалим 10 каталогов, запустим
• Ситуация на графике все та же
Ситуация в динамике
• Выключим коллектор на 10 машинах (из 26)
• Ситуация на графике мало изменилась (retention policy?)
• Остановим carbon, удалим 10 каталогов, запустим
• Ситуация на графике все та же
• Потому что характеристики дисковой подсистемы
нелинейны
Graphite/Carbon - без 10 хостов
• Мы возьмем несколько средств сбора и хранения
• Мене, мене, текел, упарсин
• Zabbix должен проигратьcollectd_rootconf
Что можно улучшить?
• Текущее retention policy - 11Gb места на диске
• Давайте не будем агрегировать?
Что можно улучшить?
• Текущее retention policy - 11Gb места на диске
• Давайте не будем агрегировать?
• 10s:60d
• 67Gb места на диске
Graphite/Whisper - blktrace 120 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix должен проиграть
Graphite/Whisper - blktrace 30 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix должен проиграть
Graphite/Whisper - в динамике
• Мы возьмем несколько средств сбора и хранения
• Мене, мене, текел, упарсин
• Zabbix должен проигратьcollectd_rootconf
Переходим к Prometheus
• Что мы знаем о лисе:
• Pull-модель, метрики забираются по HTTP непосредственно
сервером
Переходим к Prometheus
• Что мы знаем о лисе:
• Pull-модель, метрики забираются по HTTP непосредственно
сервером
• Время удержания по умолчанию - 15 дней
Переходим к Prometheus
• Что мы знаем о лисе:
• Pull-модель, метрики забираются по HTTP непосредственно
сервером
• Время удержания по умолчанию - 15 дней
• Частота забора метрик по умолчанию - раз в 10 секунд
Prometheus в динамике
Prometheus - blktrace 120 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix должен проиграть
Prometheus - blktrace 30 секунд
• Мы возьмем несколько средств сбора и хра
• Мене, мене, текел, упарсин
• Zabbix должен проиграть
Prometheus - blktrace 1200 секунд
Так неинтересно :(
• Но постойте!
• Как сделать из 26 хостов 260?
Так неинтересно :(
• Но постойте!
• Как сделать из 26 хостов 260?
• Поставить на каждый хост 10 коллекторов
• Репортить метрики 10 раз с разными префиксами
Prometheus - 260 хостов
Prometheus - blktrace 120 секунд
Prometheus - blktrace 30 секунд
Результаты забега
• Graphite/Whisper - почетное последнее место
• Prometheus - новый победитель!
Результаты забега
• Graphite/Whisper - почетное последнее место
• Prometheus - новый победитель!
• Zabbix - дисквалифицирован за употребление мельдония
• InfluxDB - дисквалифицирован, авторы употребляли
псилоцибин
НО ПОЧЕМУ?
• Точно так же, как и Carbon/Whisper, Prometheus хранит
метрики в файликах
НО ПОЧЕМУ?
• Точно так же, как и Carbon/Whisper, Prometheus хранит
метрики в файликах
• Файлики записываются на диск порциями по 1Kb (1041 байт,
если точнее)
• Новая порция записывается, только когда она полностью
готова
Некоторые замечания
• Просто, легко и быстро писать ИЛИ просто, легко и быстро
читать
Некоторые замечания
• Просто, легко и быстро писать ИЛИ просто, легко и быстро
читать
• Пока метрики помещаются в память - все хорошо
Некоторые замечания
• Просто, легко и быстро писать ИЛИ просто, легко и быстро
читать
• Пока метрики помещаются в память - все хорошо
• Мы имеем дело со средством оперативного мониторинга,
период удержания более двух суток вряд ли имеет смысл,
период оперативного слежения - около шести часов
Выводы
• Graphite в 2016-м - это довольно смешно
• Не так, правда, смешно, как Zabbix
• Prometheus - лапочка
• Разбудите, когда команда InfluxDB что-нибудь зарелизит
уже
Спасибо за внимание!
• Ваши вопросы?
• С вами был Саша Чистяков, alex@gitinsky.com
• http://meetup.com/DevOps-40

More Related Content

My talk on monitoring systems at RootConf 2016

  • 1. Тошнит от колец Великая битва систем мониторинга (часть первая) Александр Чистяков
  • 2. Давайте познакомимся • Меня зовут Саша • Я адепт Церкви Метрик • Я ненавижу Zabbix
  • 3. Теперь ваша очередь • В зале есть еще Саша? • В зале есть еще адепт Церкви Метрик? • В зале есть те, кто любит Zabbix?
  • 4. Что здесь будет происходить? • Мы возьмем несколько средств сбора и хранения метрик • Мене, мене, текел, упарсин • Zabbix должен проиграть
  • 5. Я тебя слепила из того, что было • Машина для системы мониторинга: • 39G RAM, 6x300 SAS HDD, Adaptec AAC-RAID • Write-cache mode : Enabled (write-back) • Мониторится 26 хостов разных конфигураций • Ubuntu 16.04 на хосте системы мониторинга • Ubuntu 14.04 на остальных хостах • В качестве коллектора выступает collectd
  • 6. Участники забега • Graphite/Whisper (победитель прошлой Олимпиады)
  • 7. Участники забега • Graphite/Whisper (победитель прошлой Олимпиады) • Prometheus
  • 8. Участники забега • Graphite/Whisper (победитель прошлой Олимпиады) • Prometheus • InfluxDB
  • 9. Участники забега • Graphite/Whisper (победитель прошлой Олимпиады) • Prometheus • InfluxDB • Zabbix
  • 10. Команда поддержки • Grafana • Красивые графики, нарисованные прямо при помощи испытуемого хранилища
  • 11. Команда поддержки • Grafana • Красивые графики, нарисованные прямо при помощи испытуемого хранилища • blktrace и seekwatcher • Красивые графики, показывающие куда физически на диске попадают на чтение и запись
  • 13. Graphite/Whisper - метрики хоста • Мы возьмем несколько средств сбора и хранения • Мене, мене, текел, упарсин • Zabbix должен проиграть
  • 14. Graphite/Whisper - blktrace 120 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  • 15. Graphite/Whisper - blktrace 30 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  • 16. Как устроен Carbon/Whisper • Много файликов на диске (одна метрика - один файлик)
  • 17. Как устроен Carbon/Whisper • Много файликов на диске (одна метрика - один файлик) • Файлики имеют предопределенный размер
  • 18. Как устроен Carbon/Whisper • Много файликов на диске (одна метрика - один файлик) • Файлики имеют предопределенный размер • Размер зависит от выбора retention policy
  • 19. Как устроен Carbon/Whisper • Много файликов на диске (одна метрика - один файлик) • Файлики имеют предопределенный размер • Размер зависит от выбора retention policy • Мы начали с policy 10s:2d,60s:14d,300s:60d,1200s:395d
  • 20. Как устроен Carbon/Whisper • Много файликов на диске (одна метрика - один файлик) • Файлики имеют предопределенный размер • Размер зависит от выбора retention policy • Мы начали с policy 10s:2d,60s:14d,300s:60d,1200s:395d • В момент записи метрики происходит также агрегация значений
  • 21. Ситуация в динамике • Выключим коллектор на 10 машинах (из 26)
  • 22. Ситуация в динамике • Выключим коллектор на 10 машинах (из 26) • Ситуация на графике мало изменилась (retention policy?)
  • 23. Ситуация в динамике • Выключим коллектор на 10 машинах (из 26) • Ситуация на графике мало изменилась (retention policy?) • Остановим carbon, удалим 10 каталогов, запустим
  • 24. Ситуация в динамике • Выключим коллектор на 10 машинах (из 26) • Ситуация на графике мало изменилась (retention policy?) • Остановим carbon, удалим 10 каталогов, запустим • Ситуация на графике все та же
  • 25. Ситуация в динамике • Выключим коллектор на 10 машинах (из 26) • Ситуация на графике мало изменилась (retention policy?) • Остановим carbon, удалим 10 каталогов, запустим • Ситуация на графике все та же • Потому что характеристики дисковой подсистемы нелинейны
  • 26. Graphite/Carbon - без 10 хостов • Мы возьмем несколько средств сбора и хранения • Мене, мене, текел, упарсин • Zabbix должен проигратьcollectd_rootconf
  • 27. Что можно улучшить? • Текущее retention policy - 11Gb места на диске • Давайте не будем агрегировать?
  • 28. Что можно улучшить? • Текущее retention policy - 11Gb места на диске • Давайте не будем агрегировать? • 10s:60d • 67Gb места на диске
  • 29. Graphite/Whisper - blktrace 120 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  • 30. Graphite/Whisper - blktrace 30 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  • 31. Graphite/Whisper - в динамике • Мы возьмем несколько средств сбора и хранения • Мене, мене, текел, упарсин • Zabbix должен проигратьcollectd_rootconf
  • 32. Переходим к Prometheus • Что мы знаем о лисе: • Pull-модель, метрики забираются по HTTP непосредственно сервером
  • 33. Переходим к Prometheus • Что мы знаем о лисе: • Pull-модель, метрики забираются по HTTP непосредственно сервером • Время удержания по умолчанию - 15 дней
  • 34. Переходим к Prometheus • Что мы знаем о лисе: • Pull-модель, метрики забираются по HTTP непосредственно сервером • Время удержания по умолчанию - 15 дней • Частота забора метрик по умолчанию - раз в 10 секунд
  • 36. Prometheus - blktrace 120 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  • 37. Prometheus - blktrace 30 секунд • Мы возьмем несколько средств сбора и хра • Мене, мене, текел, упарсин • Zabbix должен проиграть
  • 38. Prometheus - blktrace 1200 секунд
  • 39. Так неинтересно :( • Но постойте! • Как сделать из 26 хостов 260?
  • 40. Так неинтересно :( • Но постойте! • Как сделать из 26 хостов 260? • Поставить на каждый хост 10 коллекторов • Репортить метрики 10 раз с разными префиксами
  • 41. Prometheus - 260 хостов
  • 42. Prometheus - blktrace 120 секунд
  • 43. Prometheus - blktrace 30 секунд
  • 44. Результаты забега • Graphite/Whisper - почетное последнее место • Prometheus - новый победитель!
  • 45. Результаты забега • Graphite/Whisper - почетное последнее место • Prometheus - новый победитель! • Zabbix - дисквалифицирован за употребление мельдония • InfluxDB - дисквалифицирован, авторы употребляли псилоцибин
  • 46. НО ПОЧЕМУ? • Точно так же, как и Carbon/Whisper, Prometheus хранит метрики в файликах
  • 47. НО ПОЧЕМУ? • Точно так же, как и Carbon/Whisper, Prometheus хранит метрики в файликах • Файлики записываются на диск порциями по 1Kb (1041 байт, если точнее) • Новая порция записывается, только когда она полностью готова
  • 48. Некоторые замечания • Просто, легко и быстро писать ИЛИ просто, легко и быстро читать
  • 49. Некоторые замечания • Просто, легко и быстро писать ИЛИ просто, легко и быстро читать • Пока метрики помещаются в память - все хорошо
  • 50. Некоторые замечания • Просто, легко и быстро писать ИЛИ просто, легко и быстро читать • Пока метрики помещаются в память - все хорошо • Мы имеем дело со средством оперативного мониторинга, период удержания более двух суток вряд ли имеет смысл, период оперативного слежения - около шести часов
  • 51. Выводы • Graphite в 2016-м - это довольно смешно • Не так, правда, смешно, как Zabbix • Prometheus - лапочка • Разбудите, когда команда InfluxDB что-нибудь зарелизит уже
  • 52. Спасибо за внимание! • Ваши вопросы? • С вами был Саша Чистяков, alex@gitinsky.com • http://meetup.com/DevOps-40