Как лучше всего справиться с резким увеличением количества сообщений журнала, записываемых в кластер ElasticSearch при стандартной настройке ELK?
Мы используем стандартную настройку ELK (ElasticSearch / Logstash / Kibana) в AWS для нужд ведения журналов наших веб-сайтов.
У нас есть группа автомасштабируемых экземпляров Logstash за балансировщиком нагрузки, которые регистрируются в группе автомасштабируемых экземпляров ElasticSearch за другим балансировщиком нагрузки. Затем у нас есть единственный экземпляр, обслуживающий Кибану.
Для повседневной работы мы используем 2 экземпляра Logstash и 2 экземпляра ElasticSearch.
Наш веб-сайт испытывает короткие периоды высокого уровня посещаемости во время мероприятий - наш трафик увеличивается примерно на 2000% во время этих мероприятий. Мы заранее знаем об этих происходящих событиях.
В настоящее время мы просто временно увеличиваем количество экземпляров ElasticSearch во время мероприятия. Однако у нас были проблемы, из-за которых мы впоследствии слишком быстро уменьшили масштаб, что означало, что мы потеряли сегменты и испортили наши индексы.
Я подумывал установить для параметра auto_expand_replicas
значение "1-all"
, чтобы каждый узел имел копию всех данных, поэтому нам не нужно беспокоиться о том, как быстро мы увеличим или уменьшим масштаб. Насколько значительными будут накладные расходы на перенос всех данных на новые узлы? В настоящее время мы храним данные журнала только около 2 недель - всего получается около 50 ГБ.
Я также видел, как люди упоминали об использовании отдельной группы автоматического масштабирования узлов без данных, чтобы справиться с увеличением поискового трафика, при сохранении количества узлов данных одинаковым. Поможет ли это в ситуации с тяжелым письмом, например, в случае, о котором я упоминал ранее?