Многие из вас уже знают о преимуществах стека ELK и о том, почему множество команд его используют. Он важен не только для диагностики и устранения ошибок и производственных проблем, но становится все более ценным для аналитики информации о клиентах. Кроме того, сбор дополнительных метрик о состоянии и работе систем обеспечивает вашей команде мощное конкурентное преимущество. В то время как другие компании изо всех сил пытаются понять, в чем отстают, ваша команда может изучить данные, адаптироваться и дать вашей системе именно то, нужно.
Как менеджер, вы часто думаете о том, как предоставить командам инженеров и DevOps хорошее решение для ведения журналов. Но также понимаете, что за него придется платить. Помимо стоимости инфраструктуры, необходимо разобраться с вопросами обновлений, исправлений и развертываний. И все это требует времени, усилий и опыта.
Итак, как предоставить изящное решение для ведения журнала, которое легко поддерживать? Есть ли способ получить все преимущества стека ELK без головной боли?
Почему ведение журналов настолько важно?
По мере увеличения объема машинных данных ведение журнала становится все важнее. Это имеет критическое значение в вопросах диагностики и устранения неполадок для оптимальной производительности приложений. Кроме того, существует множество инструментов, которые позволяют извлекать полезные бизнес-метрики и данные из ваших журналов. Ведение журналов необходимо не только для обнаружения проблем. Это нужно еще и для мониторинга системы.
Несомненно, журналы крайне важны. Итак, давайте поговорим о том, как реализовать процесс. Один из популярных современных методов – стек ELK. Вы можете развернуть стек ELK и управлять с помощью версий Elasticsearch и Kibana Apache 2.0 (до 7.10.2) под лицензией Apache 2.0 или самостоятельно управляемой альтернативой стека ELK с открытым исходным кодом через OpenSearch, OpenSearch Dashboards и Logstash
Почему я хочу стек ELK?
Краткое напоминание: ELK – это стек, ядро которого состоит из Elasticsearch, Logstash и Kibana. Давайте рассмотрим краткое описание каждого из сервисов.
Elasticsearch: Поисковый и аналитический механизм, используемый для полнотекстового поиска и анализа журналов и метрик.
Logstash: Инструмент с открытым исходным кодом, который принимает и преобразует журналы и события.
Kibana: Инструмент визуализации и изучения для просмотра журналов и событий.
При совместном использовании компоненты стека ELK позволяют агрегировать журналы со всех ваших систем. Проверяйте их на наличие проблем, а также контролируйте работу системы и находите возможности для совершенствования. Невозможно превзойти тот уровень аналитики и визуализации данных, который предоставляет ELK.
Но зачем использовать управляемый сервис для ELK? У вас есть хорошая команда. Вы не желаете привязываться к одному поставщику хостинга. И вам требуется гибкость настройки всей системы для конкретного примера использования. Почему не управлять ELK самостоятельно?
Если кратко: это сложно.
Из-за чего самостоятельное управление стеком ELK вызывает сложности?
Давайте рассмотрим некоторые из причин, по которым вы не захотите управлять ELK.
Установка редко бывает простой
Говоря об интеграции систем, не забывайте, что установка не всегда тривиальна. Какая конфигурация лучше всего? Где управлять конфиденциальными данными? Сколько оборудования потребуется?
Быстрый поиск в Интернете выдаст множество статей о том, как установить ELK. И если вы их прочтете, то заметите, что в самом начале это далеко не развертывание в один клик. На самом деле требуется множество предварительных действий. И вы либо используете базовую настройку с готовой конфигурацией для всего, либо тратите больше времени на изучение всех параметров. Каковы лимиты сбора данных? Какой у вас план хранения? Почему это важно?
А теперь представьте, что придется проходить через это несколько раз с каждой средой.
Даже если вы везде используете автоматизированные сценарии, настройка бесперебойной работы займет много драгоценного времени. И это время не будет потрачено на то, чтобы принести пользу вашим клиентам. С помощью управляемых сервисов, таких как Amazon OpenSearch Service, развертывание стека ELK легко выполнить и повторить.
И это, как правило, не быстро
Многие компании пытаются вывести продукт на рынок как можно скорее. Но так не получится, если придется потратить недели или даже месяцы на доведение стека и инфраструктуры до готовности к производству.
Как сейчас проходит процесс вывода приложений в производство? Какие испытания, проверки и отладки вы проводите, чтобы убедиться в готовности? А когда оборудование необходимо оптимально настроить для нагрузок с большим количеством операций записи, делаете ли вы это перед запуском в производство? Каковы планы насчет обновлений?
Если вы управляете собственным стеком ELK, то делаете все это с помощью незнакомой инфраструктуры и приложений. Такие сервисы, как Amazon OpenSearch Service, могут помочь значительно сократить расходы на инфраструктуру, внедрение и текущее обслуживание.
Большие временные затраты на отладку отказоустойчивости
Управляя стеком ELK, вы вскоре начнете беспокоиться об отказоустойчивости. Что следует делать, когда один из ваших узлов Elasticsearch выходит из строя? Или производительность Kibana уже не подходит для работы?
Кроме того, могут возникнуть проблемы при неправильной настройке инфраструктуры в предыдущих этапах. Logstash и Elasticsearch требуют большого объема памяти. Если вы попытаетесь сэкономить время и деньги, установив их на одном и том же крошечном устройстве, то им придется переступать друг через друга. А мы пока даже не заговорили о планах на обновление версий или о мониторинге и исправлении проблем систем безопасности!
AWS может помочь со всем этим. Например, рассмотрим узлы Elasticsearch. Если узел выходит из строя, Amazon OpenSearch Service находит и заменяет его. Это еще один момент, о котором вы не хотите постоянно беспокоиться.
В целом хорошо иметь большую команду, ведь самостоятельное управление сделает ее еще больше. Если запуск кластера Elasticsearch не критичен для вашей сферы деятельности, то попросите AWS управлять им вместо вас. Всегда полезнее платить своим инженерам за ценную для бизнеса работу, а не за управление стеком ELK.
Итак, какие инструменты избавят от головной боли со стеком ELK?
Если вы создаете, запускаете и поддерживаете ELK, важно помнить, что это не один инструмент. Придется волноваться о трех. А запуск в производство вызовет другие проблемы. Что еще придется поддерживать из-за вашего стремления к самоуправлению?
Например, ради повышения устойчивости можно использовать Kafka для постановки журналов в очередь. Вам не захочется терять журналы в периоды высокого трафика из-за того, что стек ELK за ними не поспевает. Готовы ли вы управлять и Kafka тоже? В качестве альтернативы можно задействовать Redis, чтобы помочь в распределении пиковой нагрузки. Но погодите, разве это еще один инструмент, с которым нужно справиться? И как вы собираетесь получать необходимую аналитику, когда ваша команда мониторит систему? Здесь вы тоже что-нибудь запустите вручную? Или установите и настроите дополнительную систему для необходимого мониторинга?
Вот вам альтернативный вариант. Можете использовать что-то наподобие Amazon CloudWatch. Он работает в сочетании с Kibana, предоставляя простой в использовании метод анализа журналов.
И последнее, но, безусловно, не менее важное: управляемые сервисы Elasticsearch, такие как Amazon OpenSearch Service, также могут помочь в интеграции систем безопасности, включая поддержку VPC, встроенное шифрование данных в состоянии покоя и в динамике и аутентификацию пользователей.
Подходит ли вам управляемое решение?
Многие компании делают выбор в пользу собственного хостинга. Но не все учитывают объем труда, технические ресурсы и опыт, необходимые для бесперебойной работы. И никто не хочет тратить время на поддержание работоспособности системы, когда можно тратить его на предоставление отличных продуктов клиентам.
Даже если вы рассматривали вариант самостоятельного хостинга, вам следует подумать о том, чтобы быстро приступить к работе с управляемыми сервисами, такими как Amazon OpenSearch Service. Вполне вероятно, что, опробовав их, вы обнаружите: управляемые сервисы наподобие Amazon OpenSearch Service позволяют вам тратить время на более важные вещи.
В состав OpenSearch входят некоторые фрагменты кода Elasticsearch, созданного Elasticsearch B.V. и распространяемого по лицензии Apache, а также фрагменты другого исходного кода. Elasticsearch B.V. не является источником другого исходного кода. ELASTICSEARCH является зарегистрированной торговой маркой Elasticsearch B.V.
Подробнее о ценах на Amazon OpenSearch Service