Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ существующих решений / Е. Потапов и А. Баранов

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio

Eche un vistazo a continuación

1 de 74 Anuncio

Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ существующих решений / Е. Потапов и А. Баранов

Descargar para leer sin conexión

Выбор системы мониторинга - это практически holy-war-ная тема среди администраторов и разработчиков. Какая система лучше? Что удобнее? Какая система сможет выдержать большое количество статистики, а какая - лучше собрать и представить данные?

В своем докладе мы попробуем предельно непредвзято рассмотреть существующие решения и понять, что и когда можно использовать.

См. тезисы - http://rootconf.ru/2015/abstracts/1746

Выбор системы мониторинга - это практически holy-war-ная тема среди администраторов и разработчиков. Какая система лучше? Что удобнее? Какая система сможет выдержать большое количество статистики, а какая - лучше собрать и представить данные?

В своем докладе мы попробуем предельно непредвзято рассмотреть существующие решения и понять, что и когда можно использовать.

См. тезисы - http://rootconf.ru/2015/abstracts/1746

Anuncio
Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

A los espectadores también les gustó (18)

Anuncio

Similares a Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ существующих решений / Е. Потапов и А. Баранов (20)

Más de Ontico (20)

Anuncio

Más reciente (20)

Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ существующих решений / Е. Потапов и А. Баранов

  1. 1. Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ существующих решений Евгений Потапов Антон Баранов
  2. 2. О нас Евгений Потапов генеральный директор компании ITSumma Круглоcуточное удаленное администрирование серверов и техническая поддержка сайтов 100 миллионов уникальных посетителей в сутки Штат – 50 человек Более тысячи серверов на поддержке
  3. 3. О нас Антон Баранов системный администратор Linux/Unix компании ITSumma более 6 лет работы с Linux- системами и web-проектами различной сложности Последние полтора года тружусь над обеспечением стабильной работы highload- проектов для посетителей со всего мира.
  4. 4. О нас На поддержке:
  5. 5. Разделы • Что именно необходимо мониторить в высоконагруженном (и не только) проекте 24/7? • Обзор существующих open-source (cacti,zabbix,graphite) систем мониторинга. • Какие существуют SAAS-решения для мониторинга?
  6. 6. Что нужно мониторить? • Потребление ресурсов • Работу серверного ПО • Бизнес-логика приложения
  7. 7. Ресурсы Делятся на 2 группы: • Критические • Важные
  8. 8. Критические ресурсы Проблемы с ними гарантированно приведут к неработоспособности сервисов.
  9. 9. Критические ресурсы • CPU (idle,user,stalled/LA) • Memory (free,used) • Disk IO % • Traffic In/Out • Disk usage space (free,used)
  10. 10. Важные ресурсы Наблюдение за ними позволяют предсказать возникновение проблем
  11. 11. Важные ресурсы • SWAP • Raid status (HW/SW) • S.M.A.R.T. status • IOPS (read/write)
  12. 12. Важные ресурсы • Disk avio • Sockets • CPU temperature • CPU Fan Speed
  13. 13. Серверное ПО Самое главное: вы должны четко представлять себе, для чего необходимо мониторить тот или иной параметр.
  14. 14. Серверное ПО • Nginx (RPS, reading/writing/keepalive reqs) • PHP-FPM (RPS, кол-во children’ов, кол-во «max children reached» • Sphinx (кол-во запросов, наличие Fatal Error)
  15. 15. Серверное ПО • MySQL (кол-во запросов select,update,insert/rows processed/innodb buffer pool usage/replica status) • Exim (размер почтовой очереди)
  16. 16. Бизнес-логика Все показатели работы проекта, проблемы с которыми являются критичными для бизнеса
  17. 17. Бизнес-логика • Кол-во новых регистраций • Корректность работы процесса регистрации ( от заполнения формы до активации учетной записи)
  18. 18. Бизнес-логика • Кол-во скачиваний приложения • Кол-во показов баннерной рекламы и кликов по ней
  19. 19. Бизнес-логика • Доступность сервиса компании-партнера, чей контент используется на сайте • Статистика по запросам с тем или иным реферером
  20. 20. Да чему там ломаться?
  21. 21. Мониторинг мониторинга! • Работа подсистемы уведомлений • Возможность отправки почты/смс/уведомлений в jabber/slack/hipchat и т.д.
  22. 22. Open-source мониторинг • Zabbix • Cacti • Graphite
  23. 23. Что мониторим? • CPU • Memory • Nginx status • Mysql status • URL response time
  24. 24. Zabbix • Open-source • Server-side: PHP+[MySQL/PostgreSQL/S QLite/Oracle] • Client-side: zabbix- agent/SNMP/external checks
  25. 25. Zabbix • Создаем хост в zabbix • Устанавливаем на сервер zabbix-agent
  26. 26. Zabbix • Добавляем шаблоны • Импортируем недостающие • Настраиваем zabbix-agent • Настраиваем web- сценарий для проверки URL
  27. 27. Zabbix Мониторинг nginx: • Импорт шаблона • Создание bash-скрипта для парсинга nginx-статуса • Прописывание инклуда в конфиг zabbix-agent
  28. 28. Zabbix
  29. 29. Zabbix
  30. 30. Zabbix Уведомления Шаблон => Триггер => Действие
  31. 31. Zabbix Выводы: • Конфигурирование Zabbix - достаточно сложно • Zabbix-сервер масштабируется так же, как и любое другое веб- приложение
  32. 32. Zabbix • Автоматизация мониторинга новых узлов возможна без проблем любыми средствами управления конфигурацией
  33. 33. Cacti • Open-source • Server-side: PHP+rrdtool+MySQL • Client-side: SNMP
  34. 34. Cacti • Установить на сервер snmpd • Сконфигурировать rocommunity в snmpd • Добавить хост в Cacti
  35. 35. Cacti
  36. 36. Cacti • По дефолту мониторинг только основных ресурсов - CPU/Memory/Network etc. • Все остальное - плагины
  37. 37. Cacti • Nginx - Percona plugin • MySQL - Percona Plugin • URL - mURLin plugin • Alerts - thold plugin • Mail - settings plugin
  38. 38. Cacti
  39. 39. Cacti • уведомления только на email через плагин settings (возможно есть и другие плагины)
  40. 40. Cacti
  41. 41. Cacti Выводы • Мониторинг либо через snmp (включая custom OID), либо через плагины • Кол-во способов уведомления ограничено
  42. 42. Cacti Выводы • Автоматизация возможна только через cli скрипты • Масштабируется как обычное web-приложение
  43. 43. Graphite Server-side: • Carbon • Whisper • Graphite webapp
  44. 44. Graphite carbon - a Twisted (an event- driven networking engine written in Python) daemon that listens for time-series data
  45. 45. Graphite whisper - a simple database library for storing time-series data (similar in design to RRD) graphite webapp - Django webapp that renders graphs on-demand using Cairo
  46. 46. Graphite Client-side: любое ПО, которое сумеет отсылать данные в нужном формате в Graphite (Bucky, collectd, Collectl, Diamond, Ganglia,Logster, Sensu, statsd etc.)
  47. 47. Graphite • Установка collectd. • Включение нужных плагинов • Конфигурирование плагинов • Настройка отправки данных в Graphite
  48. 48. Graphite <Plugin mysql> <Database test1> Host "127.0.0.1" User "root" Password "sohW2ax0Eenox9t" Database "test1" MasterStats false </Database> </Plugin> <Plugin nginx> URL "http://127.0.0.1/nginx-status" </Plugin>
  49. 49. Graphite Мониторинг <название метрики> возможен с помощью чего угодно, что может посылать данные на carbon в нужном формате.
  50. 50. Graphite
  51. 51. Graphite Уведомления через graphite- beacon/graphite-pager и т.д. Graphite-beacon: 1) добавить конфигурация нужного типа уведомлений (SMTP, Hipchat, Slack, Pagerduty, HTTP handlers) 2) Добавить условия генерации уведомлений
  52. 52. Graphite "alerts": [ { "name": "Memory", "query": "aliasByNode(collectd.*.memory.memory- free, 1)", "interval": "1minute", "format": "bytes", "rules": ["warning: < 300MB", "critical: < 200MB"] },
  53. 53. Graphite
  54. 54. Graphite Выводы: • Конфигурируется только ПО отсылки данных в graphite. Сложность зависит от ПО. Collectd - прост. • Гибкие настройки уведомлений. • Автоматизация возможна и не составит труда.
  55. 55. Graphite Масштабируется горизонтально Движок хранения данных whisper имеет недостатки, проявляющиеся на больших количествах метрик, рекомендуют менять его, если планируется очень много метрик graphite-relay (решение, проксирующее метрики на несколько процессов carbon-cache для распараллеливания нагрузки) - весьма требовательно к CPU, что порой требует отдельного балансера для нескольких relay.
  56. 56. SAAS-мониторинг • ServerDensity • DataDog HQ
  57. 57. ServerDensity • https://www.serverdensity.io • Server-side: black-box • Client-side: python-daemon
  58. 58. ServerDensity • Добавляем девайс в SD • Устанавливаем клиента на сервер тремя командами: curl -LO https://www.serverdensity.com/downloads/a gent-install.sh chmod +x agent-install.sh ./agent-install.sh -a https://testrootconf.serverdensity.io -k 454981106adfae9b73cb42991ee05a6c
  59. 59. ServerDensity • Nginx: добавить url к nginx- статусу в /etc/sd-agent/config.cfg • MySQL: добавить данные доступа в config.cfg • Перезапустить sd-agent • Добавить метрики в свойствах девайса в панели SD
  60. 60. ServerDensity
  61. 61. ServerDensity
  62. 62. ServerDensity • URL для мониторинга добавляется отдельно, в Services • Проверка идет с точек со всего мира (можно выбрать) • Алерты создаются автоматически
  63. 63. ServerDensity
  64. 64. ServerDensity
  65. 65. ServerDensity • Автоматизация без проблем • Наличие API • Уведомления через почту/Slack/HipChat/SMS/P agerDuty
  66. 66. Datadog HQ • http://datadoghq.com • Server-side: black-box • Client-side: python daemon
  67. 67. Datadog HQ
  68. 68. Datadog HQ Nginx: • Включить интеграцию • Сделать копипасту в /etc/dd-agent/conf.d/nginx.yaml : init_config: instances: - nginx_status_url: http://194.177.22.245/nginx-status tags: - instance:vm96153.local • MySQL добавляется аналогично, через интеграцию • Рестартовать dd-agent
  69. 69. Datadog HQ
  70. 70. Datadog HQ • Мониторинг сайта добавляется как http-проверка через /etc/dd- agent/conf.d/http_check.yaml • Уведомления настраиваются через панель, в разделе «Monitors»
  71. 71. Datadog HQ
  72. 72. Datadog HQ • Автоматизация без проблем • Наличие API • Уведомления через почту/PagerDuty + ручная настройка чего угодно через webhooks
  73. 73. Мониторинг Так что же выбрать?
  74. 74. Контакты Евгений Потапов http://itsumma.ru eapotapov@itsumma.ru https://www.facebook.com/eapotapov Антон Баранов https://anton-baranov.me abaranov@itsumma.ru https://www.facebook.com/anton.s.baranov

×