Настройка работы Elasticsearch

В Единственном Узле Эластичный Поиск наряду с logstash Мы протестировали с парсингом файла и 200 МБ 20 МБ к Эластичному Поиску на Различных типах экземпляра AWS т.е. Носителя, Large и Xlarge.

Logstash conf

input {
   file {

  }

}

filter {
  mutate
  {
    gsub => ["message", "\n", " "]
  }
 mutate
 {
    gsub => ["message", "\t", " "]
 }
 multiline
   {
        pattern => "^ "
        what => "previous"
   }

grok { match => [ "message", "%{TIME:log_time}\|%{WORD:Message_type}\|%{GREEDYDATA:Component}\|%{NUMBER:line_number}\| %{GREEDYDATA:log_message}"] 
     match => [ "path" , "%{GREEDYDATA}/%{GREEDYDATA:loccode}/%{GREEDYDATA:_machine}\:%{DATE:logdate}.log"]

         break_on_match => false
}


#To check location is S or L
  if [loccode] == "S"  or [loccode] == "L" {
 ruby {   
        code => " temp = event['_machine'].split('_')
              if  !temp.nil? || !temp.empty?
          event['_machine'] = temp[0]
        end"
   } 
 }
 mutate {

    add_field => ["event_timestamp", "%{@timestamp}" ]
    replace => [ "log_time", "%{logdate} %{log_time}" ]
    # Remove the 'logdate' field since we don't need it anymore.
   lowercase=>["loccode"]
   remove => "logdate"

  }
# to get all site details (site name, city and co-ordinates)
sitelocator{sitename => "loccode"  datafile=>"vendor/sitelocator/SiteDetails.csv"}
date {  locale=>"en"
    match => [ "log_time", "yyyy-MM-dd HH:mm:ss", "MM-dd-yyyy HH:mm:ss.SSS","ISO8601" ] }

}

output {
elasticsearch{
     }

}

Детали среды: Средний экземпляр 3,75 RAM 1 устройство хранения данных ядер:4 ГБ SSD 64-разрядная Производительность сети: Умеренный Экземпляр, работающий с: Logstash, Эластичный поиск

Сценарий: 1

**With default settings** 
Result :
20mb logfile 23 mins Events Per/second 175
200mb logfile 3 hrs 3 mins Events Per/second 175


Added the following to settings:
Java heap size : 2GB
bootstrap.mlockall: true
indices.fielddata.cache.size: "30%"
indices.cache.filter.size: "30%"
index.translog.flush_threshold_ops: 50000
indices.memory.index_buffer_size: 50%

# Search thread pool
threadpool.search.type: fixed
threadpool.search.size: 20
threadpool.search.queue_size: 100

**With added settings** 
Result:
20mb logfile 22 mins Events Per/second 180
200mb logfile 3 hrs 07 mins Events Per/second 180

Сценарий 2

Детали среды: R3 Большие 15,25 RAM 2 устройства хранения данных ядер:32 ГБ SSD 64-разрядная Производительность сети: Умеренный Экземпляр, работающий с: Logstash, Эластичный поиск

**With default settings** 
Result :
  20mb logfile 7 mins Events Per/second 750
  200mb logfile 65 mins Events Per/second 800

Added the following to settings:
Java heap size: 7gb
other parameters same as above

**With added settings** 
Result:
20mb logfile 7 mins Events Per/second 800
200mb logfile 55 mins Events Per/second 800

Сценарий 3

Детали среды: Верхняя память R3 Очень большое устройство хранения данных r3.xlarge 30.5 RAM 4 ядер:32 ГБ SSD 64-разрядная Производительность сети: Умеренный Экземпляр, работающий с: Logstash, Эластичный поиск

**With default settings** 
  Result:
  20mb logfile 7 mins Events Per/second 1200
  200mb logfile 34 mins Events Per/second 1200

 Added the following to settings:
    Java heap size: 15gb
    other parameters same as above

**With added settings** 
Result:
    20mb logfile 7 mins Events Per/second 1200
    200mb logfile 34 mins Events Per/second 1200

Я хотел знать

  1. Каков сравнительный тест для производительности?
  2. Производительность, встречает сравнительный тест или это ниже сравнительного теста
  3. Почему даже после того, как я увеличил elasticsearch JVM, я не могу найти различие?
  4. как я контролирую Logstash и улучшаю его производительность?

цените любую справку на этом, поскольку я плохо знаком с logstash и эластичным поиском.

4
задан 18 February 2015 в 14:47
2 ответа

1- Если вы хотите прокомментировать свою производительность, нам нужно увидеть конфигурацию вашего фильтра logstash.

Производительность Logstash - это сочетание настроек фильтра / вывода / рабочего.

Больше фильтра = меньше событий / секунд.

Хорошая идея - широко масштабировать, если у вас есть проблемы с перфомансом logstash. Больше рабочих экземпляров может увеличить производительность событий / секунд. Люди работают с отправителем в очередь rabbimq и масштабируют узел logstash позади.

2- см. 1

3- есть ограничения ввода-вывода, и иногда лучше иметь больше узлов. Elasticsearch разработан для работы с шардом / узлом и т. Д.

4- мониторинг logstash на данный момент - это только мониторинг процессов. Есть некоторые подсказки о том, как сделать это с помощью отладчика java, но вы должны найти информацию в группе пользователей logstash. Для elasticsearch есть чудо, чтобы контролировать ваш кластер elasticsearch.

0
ответ дан 3 December 2019 в 04:23

Способ, которым мы отслеживаем logstash:

1) Отслеживайте эластичный код напрямую: сделайте простой вызов about / info для ES api (если ES выходит из строя, вы не работаете)

2) Следите за эластичной статистикой. Зависит от того, как вы используете. Вы можете искать активность (количество документов, размер индекса и т. Д.) Или другую статистику, которая имеет значение для вашего env. Если вы видите изменение статистики, вы знаете, что logstash успешно получает сообщения в ES

3) Сам Logstash: просто нажмите на порт, который он прослушивает. Если порт гаснет ... logstash умер / не работает.

0
ответ дан 3 December 2019 в 04:23

Теги

Похожие вопросы