Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 带有elasticsearch_http的日志存储_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Redis_Logstash - Fatal编程技术网 elasticsearch 带有elasticsearch_http的日志存储,elasticsearch,redis,logstash,elasticsearch,Redis,Logstash" /> elasticsearch 带有elasticsearch_http的日志存储,elasticsearch,redis,logstash,elasticsearch,Redis,Logstash" />

elasticsearch 带有elasticsearch_http的日志存储

elasticsearch 带有elasticsearch_http的日志存储,elasticsearch,redis,logstash,elasticsearch,Redis,Logstash,显然,当我想发布一个问题时,logstash OnDemand帐户不起作用 无论如何,我有一个日志存储设置与redis,elasticsearch和kibana。我的日志库从几个文件中收集日志,并将其放入redis中 Logstash版本1.3.3 Elasticsearch 1.0.1版 我在elasticsearch_http中唯一能找到的logstash是主机名。这所有的设置似乎粘在一起就好了 问题是elasticsearch_http并没有在redis条目出现时使用它们。通过在调试模式下

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

无论如何,我有一个日志存储设置与redis,elasticsearch和kibana。我的日志库从几个文件中收集日志,并将其放入redis中

Logstash版本1.3.3 Elasticsearch 1.0.1版

我在elasticsearch_http中唯一能找到的logstash是主机名。这所有的设置似乎粘在一起就好了

问题是elasticsearch_http并没有在redis条目出现时使用它们。通过在调试模式下运行它,我看到它每1分钟刷新大约100个条目(刷新大小和空闲刷新时间的默认值)。然而,据我所知,该文档声明,如果不满足100 flush_大小,它将强制刷新(例如,我们在过去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
都在同一台服务器上。从文件中收集日志是在另一台服务器上完成的。

因此,我将建议几种不同的方法来解决您的问题。正如您所发现的,Logstash可能有点古怪,所以我发现这些方法在处理Logstash的意外行为时非常有用

  • 使用
    elasticsearch
    输出,而不是
    elasticsearch\u http
    。你 通过使用
    elasticsearch
    output和 协议设置为
    http
    elasticsearch
    输出更加成熟 (里程碑2对里程碑3)我看到这一变化带来了巨大的影响 以前的不同
  • 设置
    idle\u flush\u time
    flush\u size
    的默认值。有 以前有过Logstash默认值的问题,我发现这是一个问题 显式地设置它们要安全得多<代码>空闲\u刷新\u时间以秒为单位,
    flush\u size
    是要刷新的记录数
  • 升级到logstash的最新版本。有 logstash在1.4.X版中的部署方式已经有了足够的改变 我会的我会的 咬紧牙关升级。它也非常容易获得 如果您对最近的稳定版本仍有问题,请注意 主要版本
  • 确保您的Redis版本与您的 logstash版本
  • 尝试设置批处理、批处理事件和批处理超时 Redis输出的值。您正在使用
    列表
    数据类型
    list
    支持各种批处理选项和其他一些选项 参数最好不要假设总是设置默认值 没错
  • 完成以上所有操作。除了尝试第一套 建议,我会尝试所有这些在不同的组合在一起
  • 仔细记录每次测试运行。似乎很明显,但在所有人之间 上面的变化很容易迷失方向——我会小心的 记录并尝试一次只更改一个变体