显然,当我想发布问题时,logstash OnDemand帐户无效。
无论如何,我有redis,elasticsearch和kibana的logstash设置。我的logstash正在从几个文件中收集日志,并且放入redis就好了。
Logstash 1.3.3版 Elasticsearch版本1.0.1
我在elasticrest_http中为logstash唯一拥有的是主机名。所有设置似乎都很好地粘合在一起。
问题是elasticsearch_http不会消耗redis条目。我在调试模式下运行它所看到的是它每1分钟后刷新大约100个条目(flush_size和idle_flush_time的默认值)。然而,根据我的理解,文档表明,如果不满足100 flush_size,它将强制刷新(例如,我们在最后1分钟内有10条消息)。但它似乎以另一种方式起作用。它每1分钟只冲洗100条消息。我将大小改为2000,每分钟左右冲洗2000次。
这是我的logstash-indexer.conf
input {
redis {
host => "1xx.xxx.xxx.93"
data_type => "list"
key => "testlogs"
codec => json
}
}
output {
elasticsearch_http {
host => "1xx.xxx.xxx.93"
}
}
这是我的elasticsearch.yml
cluster.name: logger
node.name: "logstash"
transport.tcp.port: 9300
http.port: 9200
discovery.zen.ping.unicast.hosts: ["1xx.xxx.xxx.93:9300"]
discovery.zen.ping.multicast.enabled: false
#discovery.zen.ping.unicast.enabled: true
network.bind_host: 1xx.xxx.xxx.93
network.publish_host: 1xx.xxx.xxx.93
indexer
,elasticsearch
,redis
和kibana
位于同一台服务器上。文件中的日志集合在另一台服务器上完成。
答案 0 :(得分:1)
所以我将建议几种不同的方法来解决你的问题。你发现的Logstash可能有点古怪,所以我发现这些方法对于处理logstash中的意外行为很有用。
elasticsearch
输出而不是elasticsearch_http
。您
可以使用elasticsearch
输出获得相同的功能
协议设置为http
。 elasticsearch
输出更成熟
(里程碑2对里程碑3)我已经看到这个改变了
之前的差异。idle_flush_time
和flush_size
的默认值。有
以前是Logstash默认值的问题,我发现它是一个
更明确地设置它们更安全。 idle_flush_time
是几秒钟,
flush_size
是要刷新的记录数。list
data_type
。
list
支持各种批处理选项,与其他一些选项一样
参数最好不要假设始终设置默认值
正确。