Индексатор Logstash масштабируется?

Я использую грузоотправитель logstash -> redis -> индексатор logstash -> elastricsearch -> kibana

Я понимаю, что Redis и elastricsearch предназначены для масштабирования. Как насчет индексатора logstash, я вижу только на основном сайте logstash пример использования только одного индексатора logstash.

Будет ли этого достаточно для обработки всех журналов? и что вы предлагаете иметь много экземпляров индексатора logstash?


person A-letubby    schedule 06.02.2014    source источник


Ответы (2)


Если ваш индексатор действительно является узким местом такой установки, вы можете легко добавить второй индексатор Logstash на второй компьютер с той же конфигурацией, где вы только меняете исходный хост Redis и целевой хост elasticsearch. Когда они читают из одного и того же экземпляра Redis, они используют чтение с блокировкой, чтобы гарантировать, что одна запись Redis будет прочитана ровно одним индексатором.

Как и все компоненты, они особенно хороши при горизонтальном масштабировании (больше машин), но индексатор также можно масштабировать на более крупную машину.

Если обработка отдельных событий журнала занимает слишком много времени, вы можете попытаться запретить работу с индексатором. Это может, например. можно выполнить, выполнив некоторую работу на стороне грузоотправителя (используя фильтры Logstash) или заставив приложения писать журналы JSON вместо «простых» строк журнала.

person Dominik Sandjaja    schedule 13.02.2014
comment
Как правило, нам действительно нужно несколько экземпляров индексаторов, и в каком масштабе вы видели случаи, когда нам нужно несколько экземпляров индексатора? - person A-letubby; 14.02.2014
comment
Если у вас есть тысячи журналов в секунду, почему бы вам НЕ использовать несколько индексаторов? Вы задали вопрос, я на него и ответил :-) - person Dominik Sandjaja; 14.02.2014
comment
Да все верно. Я только начинаю его использовать и просто интересуюсь масштабируемостью индексатора и случаем, когда нам нужно несколько экземпляров индексаторов. Я получил все ответы. Спасибо :) - person A-letubby; 15.02.2014

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

Откуда: http://logstash.net/docs/1.4.2/flags

-w, --filterworkers COUNT Запустить COUNT фильтров (по умолчанию: 1)

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

person mr070    schedule 13.03.2015