Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

My talk on monitoring systems at RootConf 2016

1,883 views

Published on

My talk on monitoring systems at RootConf 2016

Published in: Technology
  • Be the first to comment

  • Be the first to like this

My talk on monitoring systems at RootConf 2016

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

×