Em uma pesquisa elástica de nó único junto com o logstash, testamos com análise de 20mb e 200mb de arquivo para Elastic Search em diferentes tipos da instância da AWS, ou seja, médio, grande e 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{
}
}
Detalhes do ambiente: Instância média 3,75 RAM 1 núcleos Armazenamento: SSD de 4 GB Desempenho de rede de 64 bits: Moderado
Instância em execução com: Logstash, pesquisa elástica
Cenário: 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
Cenário 2
Detalhes do ambiente: R3 Large 15,25 RAM 2 núcleos Armazenamento: SSD de 32 GB Desempenho de rede de 64 bits: Moderado
Instância em execução com: Logstash, pesquisa elástica
**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
Cenário 3
Detalhes do ambiente:
R3 Alta Memória Extra Grande r3.xlarge 30,5 RAM 4 núcleos Armazenamento: SSD de 32 GB Desempenho de Rede de 64 bits: Moderado
Instância em execução com: Logstash, pesquisa elástica
**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
Eu queria saber
- Qual é a referência para o desempenho?
- O desempenho atende ao índice de referência ou está abaixo do índice de referência
- Por que, mesmo depois de eu ter aumentado, a JVM elasticsearch não conseguiu encontrar a diferença?
- como faço para monitorar o Logstash e melhorar seu desempenho?
agradeço qualquer ajuda sobre isso como iam novo para logstash e pesquisa elástica.