logstash日志收集系统性能问题(ELK)?
各位好,
目前我正在用ELK做统一日志收集系统。
官网上介绍时都强调了一般都用redis作为缓冲中间件,也就是:
input:file -> output:redis (这个logstash shipper是装在日志服务器上的)
input:redis -> output:elasticsearch (单独的logstash,可以做集群,多个logstash都从redis从取)
不知道添加一个redis是为了提高性能吗?
我按照这种架构来部署时,发现logstash仅能处理每秒不到2000条日志,大部分的日志都积压在redis侧。
如果直接从input:file -output:elasticsearch 是不是更快些呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
不要相信elasticsearch入库速度,直接打入这里,可能由于打入过快导致内存暴增
input {
redis {
host => '127.0.0.1'
data_type => 'list'
key => 'logstash:redis'
threads => 10
#batch_count => 1000
}
}
output {
elasticsearch {
#embedded => true
host => localhost
workers => 10
}
}
大概每S可2W
因为elasticsearch写的速度肯定没有直接读取log的速度快,用redis做缓存,redis写入速度要大于elasticsearch速度
我配置过logstash在output到elasticsearch时的worker数量,redis中目前无排队的数据。 不知道是不是这个参数可以改善
给redis设置的最大内存为16g. 不过这个跟redis应该没有关系吧,redis只是做数据队列的,主要是logstash indexer取的很慢
回复
你的问题解决了吗?我最近也遇到相同的问题。
redis机器给的内存够多吗?
我们用zmq做队列。你应该开启多个线程,甚至可以用多个进程进行处理,一秒钟上万条,应该没有问题的