SmartMonitoring –
мониторинг бизнес-логики
в Одноклассниках
Сергей Шарапов
Сергей Шарапов
Системный аналитик Mail.Ru/Одноклассники
разработка внутренних систем
sergey.sharapov@corp.mail.ru
SmartMonitoring –
мониторинг бизнес-логики
в Одноклассниках
Сергей Шарапов
Системный аналитик
Автоматический анализ
бизнес-логики
В Одноклассниках
•4 ЦОД
•11.000 серверов
•1.000 сетевых устройств
•180 сервисов
Кто за этим всем следит?
•Инженеры ЦОД
•Команда мониторинга
•Сетевые администраторы
•Системные администраторы
•Программисты
Каждый день что-то ломается
Команда мониторинга
•8 человек
Отвечают за работоспособность портала
Просматривают графики, ищут аномалии
Заводят инциденты
Распределяют автоинциденты
(Zabbix+JIRA)
Пример графика с аномалией
Типичный день мониторщика
Мониторинг до 2016 года
•Просмотр графиков
Появление нового функционала
•Просмотр графиков
•Новый сервис = новые
графики
Сколько графиков мы смотрели?
•Просмотр графиков
•Новый сервис = новые
графики
•? картинок в час
•Инцидент: + 100500
~ 7.000 графиков за смену!
•Просмотр графиков
•Новый сервис = новые
графики
•650 картинок в час
•Инцидент: + 100500
Проблемы
•Нужно мониторить большое кол-во
графиков
•Расследовать инциденты долго и сложно
•Мониторинг глазами – пропуск
инцидентов
•Новый сервис – новые графики
Логирование между серверами
Логирование между серверами
•Направление связи
Логирование между серверами
•Направление связи
•Кол-во запросов
Логирование между серверами
•Направление связи
•Кол-во запросов
•Кол-во ошибок
Логирование между серверами
•Направление связи
•Кол-во запросов
•Кол-во ошибок
•Среднее время
Логирование между серверами
•Направление связи
•Кол-во запросов
•Кол-во ошибок
•Среднее время
•Сервис
Запросы между двумя серверами
Строим граф работы портала
Строим граф работы портала
•11.000 серверов
Строим граф работы портала
•11.000 серверов
•280 микросервисов
Строим граф работы портала
•11.000 серверов
•280 микросервисов
•2500 связей
Граф проблемы
+ 0,5 мс!
+ 10 мс
Причина в базе сообщений!
100 тысяч графиков!
•Отдача контента
•Платёжка
•Логины по странам
•Технические графики
Архитектура системы
Архитектура системы
Архитектура системы
Архитектура системы
Архитектура системы
Архитектура системы
Архитектура системы
Anomaly Detector
Anomaly Detector
Входные данные
Anomaly Detector
Anomaly Detector
Anomaly Detector
Ложные срабатывания
• Незначительное
отклонение
• «Зашумлённые»
графики
• Апдейты
• Работы с сетью
• Сезонное отклонение
активности
Незначительное отклонение
«Зашумлённый» график
Апдейт
Апдейт – группы
Апдейт - сервис
Работы с сетью
Сезонное отклонение
Вот как это выглядит
Принцип работы с системой
• Известная аномалия
• Инцидент
• Новый тренд
• Ничего не делать
Принцип работы с системой
• Известная аномалия
• Инцидент
• Новый тренд
• Ничего не делать
Принцип работы с системой
• Известная аномалия
• Инцидент
• Новый тренд
• Ничего не делать
Фичи системы!
•Подсказка о подобной проблеме в прошлом
•Связь с JIRA
•Связь с системой конфигурации
•Создание ссылки для выбранного графа
•Поиск по определенному микросервису
•Обнаружение усугубившихся проблем
•Совместная работа
Мониторинг активности Рунета
Инциденты и Автоинциденты
Усугубление аномалий
Профит!
• Мониторим 100.000 графиков
• Не пропускаем инциденты
• Не тратим время на расследование
• Новые сервисы автоматически попадают в
мониторинг
• Выросла производительность команды мониторинга
• Обзор оперативной обстановки
• Счастье для админов и программистов
Кто теперь в этой команде?
•Инженеры
•Команда мониторинга
•Сетевые администраторы
•Системные администраторы
•Программисты
Кто теперь в этой команде!
•Инженеры
•Команда мониторинга
•Сетевые администраторы
•Системные администраторы
•Программисты
•SmartMonitoring
Спасибо за внимание!
sergey.sharapov@corp.mail.ru
https://habrahabr.ru/company/odnoklassniki/
https://v.ok.ru
https://goo.gl/pm7T09

SmartMonitoring - мониторинг бизнес-логики в Одноклассниках / Сергей Шарапов (Одноклассники)

Editor's Notes

  • #3 Я Сергей, я работаю уже 6 лет в ОК. Установка и делал первичную настройку. Потом мониторил их. А сейчас
  • #4 Мой доклад
  • #5 систему мониторинга превратили в систему анализа Что же такое одноклассники?
  • #6 Десятки миллионов уникальных пользователей
  • #7 Полный цикл. Очень большая инфраструктура.
  • #8 Задача узнавать о поломке или вероятной поломке раньше пользователя)
  • #9 Остановимся на этих двух пунктах. Что же такое аномалияи инцидент в наших понятиях?
  • #10 На графике показано время загрузки Ленты активности относительно других дней. Красная линия – это текущий день. Это и есть в нашем понятии – инцидент! На него нужно оформлять тикет в JIRA и находить причины, смотря другие графики. Так как если мы не знаем что сломалось мы не знаем что чинить.
  • #12 Когда только появился мониторинг, графиков было не много.
  • #13 При появлении новых сервисов или микросервисов кол-во графиков продолжало увеличиваться.
  • #14 Разговор с залом
  • #15 Если дежурный находил аномалию, то ему нужно было посмотреть ещё несколько десятков, а иногда и сотен графиков для выяснения сути аномалии. Тут объясняю три проблемы, которые мы решали. Много графиков, их кол-во постоянно увеличивалось, долгое и сложно расследование инцидентов Нужно было что-то менять!
  • #16 И мы решили сделать систему, которая избавит нас от этих проблем!
  • #17 Так как мы логируем каждый запрос между серверами мы взяли за основу эту статистику, из которой мы знаем:
  • #22 Как мы до этого дошли. Т.е. Взаимодействие двух серверов описываем тремя графиками, вот один, который показывает кол-во запросов.
  • #23 Пример картинки того, как взаимодействуют сервера. Имея такую статистику, очевидно, что мы можем построить граф того, как функционирует портал.
  • #24 Граф работы портала мог выглядеть как-то вот так, но!
  • #25 Сейчас у нас более11000 серверов. Строить по ним граф бесмысленно. Он будет очень большой. Но у каждого сервера есть своя роль, другими словами микросервис. Которых
  • #27 И как оказалось что у них всего 2500 связей. И вот так это выглядит!
  • #28 Ничего не напоминает?
  • #29 Звезда смерти
  • #30 Да, вот так сложно работает портал Что выделено на графе? Посмотрели на проблемные связи в момент инцидента. Получили граф проблемы
  • #31 Это реальный инцидент, когда были проблемы с системой сообщений на мобильной версии. Давайте разберёмся. 1. Синей линией показана аномалия с ростом времени, желтой, с запросами, фиолетовой ошибки.
  • #32 На связке веб – сервера бизнес логики рост времени всего + 0,5 мс.
  • #34 А с базой в которой хранятся приватные сообщения пользователей свосем всё плохо. Увеличилось время, проволились запросы и появились ошибки. Теперь мы знаем, что нам нужно чинить. Т.е. При открытии переписки пользователю приходилось ждать, пока подгрузится история его переписки.
  • #35 Идея оказалась рабочей и мы решили не останавливаться на статистике взаимодействия серверов. Мы так же стали анализировать статистику с фронтов, это время, ошибки, запросы, трафик: И в итоге сейчас мы стали анализировать чуть более 100 тысяч графиков! Не только по сервисам но и по регионам. Как же это магия происходит?
  • #37 Централизованное хранилище данных 3 триллиона записей в сутки! А это 600Gb.
  • #41 А также собирает необходимую информацию из разных источников, такую как Jira/LI
  • #45 В обучающую выборку идут значения, которые были 7 дней, 14 дней назад в это же время и также в неё попадают по 2 соседние точки с каждой стороны, для обеспечения нормальности выборки. В итоге анализируем 6 дней. В обучающие данные не попадают те точки, в которых в этот момент была аномалия.
  • #49 График в ноносекундах. Т.е. Время увеличилось на 2 миллисекунды.
  • #50 Гистограмма распределения
  • #52 Давайте поговорим про каждый в отдельности
  • #53 Что на графике. Задача стояла так. Нужно находить аномалии и не находить не аномалии. Нашли баланс экспериментально. 15% для кол-ва запросов и 20% для среднего времени.
  • #54 Пилообразные графики. Чтобы каждый всплеск или провал не попадал на радары мы показываем только те проблемы, которые продолжаются более 15 минут.
  • #56 Про график сказать. Схлопываем данные
  • #58 При работе с сетью, зачастую происходит юникаст шторм, который влияет на время взаимодействия между собой микросервисов. Т.е. Если произошёл юникаст шторм, то мы его отлавливаем на сетевых графиках и не показываем вот такую бороду.
  • #59 При сезонном отклонении активности, которое влияет только на колв-во запросов между микросервисами, мы включаем дополнительный рубильник, который делает поправку на отклонение онлайнов.
  • #65  ----- Meeting Notes (03.11.16 11:24) ----- Переделать крупнее каждую часть
  • #70 Команде мониторинга сначала было туго и не все восприняли систему хорошо, т.к. Приходилось создавать много инцидентов. Но мы этого ожидали и спустя 3 месяца работать стало гораздо проще ----- Meeting Notes (03.11.16 11:24) ----- Начало, про себя. Установка экспертности. ! Отдельный слайд про то, что ломается. Процесс починки, что делает команда мониторинга. Что происходит с инцидентом. Что такое инцидент. Можно со скриншотами. Нарисовать как обрабатывается инцидент. Мониторщик отвечает мониторщик - важно! Что такое аномалия - показать. Что означают линии (-1,-2,..) вот это и есть аномалия. Как-то дашборд показать. Графиков всё больше и больше. 40 минут говорить - 1 минута на слайд. 30% подводка к проблеме. Увеличить подводку!!1 Про нашу структуру - про программистов, про админов, про мониторщиков. Роль в инциденте. - может и не стоит. Инцидент с рендрингом, сам рендринг, общая схема, фронт апп сервис (с распределенной системы Олега), давайте попробуем найти причины - и по графикам. Пройти всю историю про инцидент.
  • #71 Начинать с постановки, зачем команда нужна. Что-то есть что-то ломается. про инцидент. ----- Meeting Notes (03.11.16 20:43) ----- Инженеры ДЦ. Полный цикл. Мониторинг - это отдельная команда. Я был ... ----- Meeting Notes (03.11.16 21:17) ----- Продублировать это со словом SmartMonitoring. К этим парням добавили. Сюда вставляем. Типичный инцидент. Будни команды мониторинга.
  • #72 Начинать с постановки, зачем команда нужна. Что-то есть что-то ломается. про инцидент. ----- Meeting Notes (03.11.16 20:43) ----- Инженеры ДЦ. Полный цикл. Мониторинг - это отдельная команда. Я был ... ----- Meeting Notes (03.11.16 21:17) ----- Продублировать это со словом SmartMonitoring. К этим парням добавили. Сюда вставляем. Типичный инцидент. Будни команды мониторинга.