elasticsearch - 带有 elasticsearch_http 的 logstash

标签 elasticsearch redis logstash

当我想发布问题时,显然 logstash OnDemand 帐户不起作用。

无论如何,我有一个带有 redis、elasticsearch 和 kibana 的 logstash 设置。我的 logstash 正在从几个文件中收集日志并放入 redis 就好了。

Logstash 版本 1.3.3 Elasticsearch 版本 1.0.1

我在用于 logstash 的 elasticsearch_http 中唯一拥有的是主机名。所有这些设置似乎都很好地粘合在一起。

问题是 elasticsearch_http 没有消耗 redis 条目。通过在 Debug模式下运行它,我看到它每 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

indexerelasticsearchrediskibana 在同一台服务器上。从文件中收集日志是在另一台服务器上完成的。

最佳答案

因此,我将建议几种不同的方法来解决您的问题。您发现的 Logstash 可能有点古怪,因此我发现这些方法可用于处理来自 logstash 的意外行为。

  1. 使用 elasticsearch 输出而不是 elasticsearch_http。你 可以通过使用 elasticsearch 输出获得相同的功能 协议(protocol)设置为 httpelasticsearch 输出更成熟 (里程碑 2 与里程碑 3)我已经看到这种变化 之前的区别。
  2. idle_flush_timeflush_size 设置默认值。有有 以前 Logstash 默认设置有问题,我发现它是 明确设置它们更安全。 idle_flush_time 以秒为单位, flush_size 是要刷新的记录数。
  3. 升级到更新版本的 logstash。有 1.4.X 版 logstash 的部署方式发生了足够大的变化 ( http://logstash.net/docs/1.4.1/release-notes ) 我会 我会 硬着头皮升级。它也更容易获得 如果您对最近的稳定版仍然有问题,请注意 主要版本。
  4. 确保您的 Redis 版本与您的支持相匹配 logstash 版本。
  5. 尝试设置批处理、batch_events 和 batch_timeout Redis 输出的值。您正在使用 list data_typelist 支持各种批处理选项,与其他一些选项一样 参数最好不要假设默认值总是被设置 正确。
  6. 执行以上所有操作。除了尝试第一套 建议,我会以各种组合方式尝试所有建议。
  7. 仔细记录每次测试运行。似乎很明显,但在所有人之间 上面的变化很容易迷失方向——我会保持小心 记录并尝试一次只更改一个变体。

关于elasticsearch - 带有 elasticsearch_http 的 logstash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24368607/

相关文章:

java - 无法将对象转换为实体类型

elasticsearch - 在 Elasticsearch 中更改类型和重建索引

Elasticsearch基于公共(public)字段合并多个索引

c# - ElasticSearch 查询仅当所有字段都匹配我的过滤器时才检索结果?

elasticsearch - Elasticsearch Multi通过curl进行工作,但没有通过Java API返回任何结果

elasticsearch - 使用logstash消费kafka主题到elasticSearch

json - AWS 弹性缓存 : Is it possible Redis compatible Elasticache to store Json Files

elasticsearch - Elasticsearch/发布和搜索附件

.net - 如何利用Redis缓存实现自动刷新

java - Logstash kafka 输入插件无法通过新消费者读取任何消息,并且无法将 auto_offset_reset 设置为最早