【问题标题】:There's a way to make Logstash Forwarder send only new logs?有办法让 Logstash Forwarder 只发送新日志吗?
【发布时间】:2015-06-22 14:15:54
【问题描述】:

我正在为我的 Logstash 转发器使用以下配置文件:

{
  "network": {
    "servers": [ "logstash-server:logstash-door" ],
    "ssl ca": "server.crt",
    "timeout": 15
  },

  "files": [
    {
      "paths": [ "myLogFile.log" ],
      "fields": { "type": "myLog" }
    }
  ]
}

它工作正常。但是如果应用程序停止,当我重新启动它时,它会再次将旧日志发送到我的 logstash-server。这是个大问题,有没有办法避免它重新发送旧日志?

【问题讨论】:

    标签: continuous-integration logstash logstash-forwarder


    【解决方案1】:

    logstash-forwarder 保留一个“注册表”,其中列出了它正在监视的每个文件以及该文件的当前偏移量。如果它无法写入该文件,那么当您重新启动该过程时,它将不知道从哪里开始。

    检查您的启动脚本,了解它在哪里写入注册表(名为“.logstash-forwarder”)。旧版本会将其写入程序启动的目录,而新版本会写入 /var/lib/logstash-forwarder。

    在调试模式 (-quiet=false) 下运行 logstash-forwarder 可能还会为您提供更多信息。

    【讨论】:

    • 其实我只需要启用-tail=true,转发器就会加载偏移量。谢谢大佬。
    • 那是新文件。以前看到的文件由注册表控制。
    猜你喜欢
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    相关资源
    最近更新 更多