First Test Scenario
Setup:
Apache JMeter (192.168.4.171) generates 20,000 EPS -> Elastic-Agent (192.168.4.1:514) -> Logstash (192.168.4.1:5044).
Observation:
Logs are not being forwarded from Logstash to Elasticsearch. Therefore, I believe the issue is not related to the Elasticsearch cluster.
Additionally, using netstat -su, I noticed a continuous increase in packet receive errors and receive buffer errors.
I suspect the problem lies with Elastic-Agent, as it might be struggling to handle the EPS load.
Elastic-Agent.conf:
input {
elastic_agent {
port => 5044
}
}
Elastic-Agent.yml:
outputs:
6117a5a8-bc80-4e8a-9a8c-d8467fc1f481:
type: logstash
bulk_max_size: 5000
worker: 16
queue.mem.events: 100000
queue.mem.flush.min_events: 5000
queue.mem.flush.timeout: 0.1
compression_level: 1
idle_connection_timeout: 30
hosts:
- '192.168.4.1:5044'
Logstash.yml :
pipeline.workers: 16
pipeline.batch.size: 5000
pipeline.batch.delay: 1
Question:
How can I optimize Elastic-Agent to reliably handle 20,000 EPS, or even higher EPS rates?
Second Test Scenario
Setup:
Apache JMeter (192.168.4.171) generates 20,000 EPS -> Logstash (192.168.4.1:5044) -> Elasticsearch cluster.
Observation:
Logstash successfully processes and forwards 20,000 EPS to the Elasticsearch cluster without dropping any packets.
Using netstat -su, I observed no increase in packet receive errors or receive buffer errors. This suggests that the issue is not related to Linux system configuration.
Logstash.yml :
pipeline.workers: 16
pipeline.batch.size: 5000
pipeline.batch.delay: 1
Logstash.conf:
input {
udp {
port => 5044
}
}
output {
elasticsearch {
hosts => ["https://10.1.1.3:9200"]
data_stream => "true"
user => "elastic"
password => "password"
ssl => true
ssl_certificate_verification => false
}
}
Server Specs: 192.168.4.1 (16 vCPUs, 16 GB RAM).
I would appreciate insights into optimizing Elastic-Agent for this high EPS scenario. Thanks!