【问题标题】:Logstash with persistent queue具有持久队列的 Logstash
【发布时间】:2017-06-28 20:46:35
【问题描述】:

我已经使用以下配置启动了 logstash:

logstash.yml 内:

queue.type: persisted
queue.max_bytes: 8gb
queue.checkpoint.writes: 1

配置文件:

input {
    beats {
        port => "5043"
    }
}
filter {
    grok {
        match => {
            "message" => "%{COMBINEDAPACHELOG}"
        }
    }
    geoip {
        source => "clientip"
    }
}
output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "test"
        document_type => "tw"
    }
}

我有这种情况。

  1. 想象一下 elasticsearch 已关闭

  2. 现在想象一下,当 elasticsearch 关闭时,logstash 收到日志事件

  3. 现在假设我们也关闭了 logstash

现在,如果我打开 logstash 和 elasticsearch,logstash 不会发送在第 2 步中收到的消息 -- 即当 elasticsearch 被关闭并且 logstash 正在接收事件时。。 p>

【问题讨论】:

  • 在第 3 步之后,您按什么顺序重新打开 Logstash 和 Elasticsearch?首先是 ES,等到绿色,然后是 Logstash?
  • 您是否有此问题或询问我们认为在这种情况下会发生什么?
  • 为什么不使用可能会在 3 天后被删除的缓冲文件?

标签: elasticsearch logstash logstash-configuration filebeat


【解决方案1】:

这就是您在 logstash.yml 中用于管道的全部内容吗?您应该在 logstash.yml 或 pipelines.yml 中定义您的管道设置。例如,它应该如下所示:

- pipeline.id: Beats
  path.config: "/LogStash/pipelines/beatspipeline.yml"
  queue.type: persisted
  path.queue: /Logstash/data/queue
  queue.max_bytes: 10gb

文档没有明确说明您必须配置每个管道设置,但我知道这种方法一直有效。

【讨论】:

    【解决方案2】:

    现在 Logstash 持久队列的行为如下:
    “启用持久队列功能后,Logstash 会将事件存储在磁盘上。Logstash 以一种称为检查点的机制提交到磁盘。”

    https://www.elastic.co/guide/en/logstash/current/persistent-queues.html https://www.elastic.co/guide/en/logstash/current/persistent-queues.html#durability-persistent-queues

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 2011-12-22
      • 2011-02-21
      • 2015-11-21
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多