我使用logstash作为索引器将数据从redis输出到elasticsearch,但由于数据量很大,因此不能快速实现。然后我使用了mutil工作者,但它会导致各种问题。还有其他更好的方法来加快输出速度吗?感谢。
这是我的配置:
input {
redis {
host => "10.240.93.41"
data_type => "list"
key => "tcpflow"
}
}
filter {
csv {
columns => [ts,node,clientip,vip,rtt,city,isp,asn,province]
separator => "|"
}
}
output {
elasticsearch {
index => "tcpflow-%{+YYYY.MM.dd}"
index_type => "tcpflow"
cluster => "elasticsearch"
host => ["10.240.93.41", "10.240.129.32"]
#protocol => "node"
#protocol => "http"
#port => 8200
protocol => "transport"
manage_template => false
workers => 30
}
}
答案 0 :(得分:0)
logstash中的redis {}输入默认为一次读取一个文档。尝试将batch_count设置为100-1000范围内的某些内容,具体取决于文档的大小。
拥有多个工作线程(“-w”)是理想的,除非您使用的是非线程安全的多行{}过滤器。