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

А именно, есть ли более широкий контекст, в который вписывается весь этот бизнес по обнаружению аномалий? Например, предположим, что мы тратим на это часы, и это действительно работает, и что? Почему кого-то должно волновать?

Всем хороших вопросов!

На мой взгляд, более широкая картина здесь - это Платформа оперативной аналитики для общего журналирования, обработки ошибок и обнаружения аномалий, более известная под своим популярным названием CLEHADOIP ...

… Ладно, это не так.

Однако современная организация, занимающаяся разработкой программного обеспечения, абсолютно должна позаботиться о демократизации доступа к оперативным данным!

Это особенно верно, если вы имеете дело с современным технологическим стеком, который может легко охватывать несколько контейнеров, лямбда-функции, веб-серверы, балансировщики нагрузки, серверы баз данных, серверы приложений, механизмы оркестровки микросервисов и т. Д.

Кроме того, как может подтвердить любой, кто действительно пробовал сделать это в реальной жизни, получение, агрегирование и анализ этих объемных, разрозненных наборов данных - нелегкая задача. А превратить весь этот поток данных в реальную, действенную оперативную разведку еще сложнее!

Фактически, в таких высокопроизводительных компаниях, как Netflix, есть целые команды, посвященные этим усилиям. Например, посмотрите на это описание вакансии, которое недавно появилось в моей ленте LinkedIn:

Netflix Operational Insight Team - это группа, отвечающая за создание общей инфраструктуры для сбора, транспортировки, агрегирования, обработки и визуализации операционных показателей. Мы создаем мощные системы, позволяющие каждому в Netflix видеть состояние нашей среды как на макро-, так и на микроуровне.

Для меня это невероятно увлекательно. Одна из самых прогрессивных и дальновидных компаний на планете решила создать целую команду, призванную позволить каждому «видеть состояние нашей окружающей среды».

Почему?

Я думаю, ответ может быть тонким, но все же довольно очевидным. Они делают это, чтобы всем было легче!

И я действительно имею в виду всех. Поскольку после того, как ваши рабочие данные будут унифицированы и предоставлен свободный доступ для всех, кто в них нуждается, ваши SRE больше не будут зависеть от tail -f / var / log / messages на общем ресурсе NFS или сервер rsyslogd.

А ваши инженеры-программисты сразу видят написанный ими код и могут выявлять поведенческие аномалии на широком спектре серверов или микросервисов. Или ... кто знает ... для этого они могут обратиться к машинному обучению. :)

И ваши команды DevOps могут легко создавать конвейеры CI / CD, которые выполняют канареечные развертывания, наблюдая в реальном времени за метриками, возвращаемыми из развернутого программного обеспечения, чтобы соответствующим образом скорректировать процентное соотношение трафика.

Наконец, ваш ИТ-директор и генеральный директор теперь будут иметь возможность в режиме реального времени видеть общее состояние бизнеса: либо с технической точки зрения, либо с бизнес-метрик, либо с того и другого.

Короче говоря, централизация журналов и показателей - это невероятно мощная конструкция, которая может легко превратиться в настоящее конкурентное преимущество для вашей организации!

Для меня это общая картина, которая может выглядеть примерно так:

Фактически, если вы знакомы с Лямбда-архитектурой (не Amazon), вы узнаете это как нечто очень похожее - платформа, предложенная выше, обрабатывает большие объемы данных с использованием подходов как потоковой, так и пакетной обработки.

Теперь давайте разберемся с этим, чтобы мы все знали, что мы предлагаем здесь построить.

  1. Элементы внизу диаграммы (все, что находится под балансировщиком сетевой нагрузки и полем журнала CloudWatch) являются вашими источниками данных. Они будут варьироваться от нечастого обновления, например журналов системных событий, до перекачки огромных объемов данных, таких как packetbeats.
  2. Компоненты, выделенные красными штрихами, составляют конвейер обнаружения аномалий, который мы собираемся построить в рамках этой серии. В конвейер будут поступать потоки из нескольких источников. Пунктирная линия от Logstash до Kinesis - это возможность в будущем, я пока не знаю, имеет ли это смысл.
  3. Зеленые прямоугольники - это ваши долгосрочные архивы. Обратите внимание, что каждое сообщение отправляется в три разных места: a) конвейер потоковой передачи в реальном времени для немедленного обнаружения аномалии (минуты); б) ElasticSearch + Kibana для краткосрочного (дневного) анализа тренда; и c) объектное хранилище S3 для долгосрочного архивирования и аналитики (месяцы).

Подводя итог, можно сказать, что вся загадка и святой Грааль, который мы ищем, - это открытая многофункциональная платформа оперативной аналитики, которая раскрывает новые бизнес-идеи и технические идеи для всей организации!

Ладно, хватит болтовни. Переходим к Части 3, где мы на самом деле создаем эту штуку!

Бесстыдный плагин саморекламы: если вам интересно, как собрать другой кусок этой головоломки (синие черточки), который представляет собой полностью контейнерный стек ELK (ElasticSearch, Logstash, Kibana), работающий в Amazon Web Услуги, смотрите, пожалуйста, другую мою серию.