В Единственном Узле Эластичный Поиск наряду с 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
Я хотел знать
цените любую справку на этом, поскольку я плохо знаком с logstash и эластичным поиском.
1- Если вы хотите прокомментировать свою производительность, нам нужно увидеть конфигурацию вашего фильтра logstash.
Производительность Logstash - это сочетание настроек фильтра / вывода / рабочего.
Больше фильтра = меньше событий / секунд.
Хорошая идея - широко масштабировать, если у вас есть проблемы с перфомансом logstash. Больше рабочих экземпляров может увеличить производительность событий / секунд. Люди работают с отправителем в очередь rabbimq и масштабируют узел logstash позади.
2- см. 1
3- есть ограничения ввода-вывода, и иногда лучше иметь больше узлов. Elasticsearch разработан для работы с шардом / узлом и т. Д.
4- мониторинг logstash на данный момент - это только мониторинг процессов. Есть некоторые подсказки о том, как сделать это с помощью отладчика java, но вы должны найти информацию в группе пользователей logstash. Для elasticsearch есть чудо, чтобы контролировать ваш кластер elasticsearch.
Способ, которым мы отслеживаем logstash:
1) Отслеживайте эластичный код напрямую: сделайте простой вызов about / info для ES api (если ES выходит из строя, вы не работаете)
2) Следите за эластичной статистикой. Зависит от того, как вы используете. Вы можете искать активность (количество документов, размер индекса и т. Д.) Или другую статистику, которая имеет значение для вашего env. Если вы видите изменение статистики, вы знаете, что logstash успешно получает сообщения в ES
3) Сам Logstash: просто нажмите на порт, который он прослушивает. Если порт гаснет ... logstash умер / не работает.