有办法让 Logstash Forwarder 只发送新日志吗?

There's a way to make Logstash Forwarder send only new logs?

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

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

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

它工作正常。但是,如果应用程序停止,当我将其重新打开时,它会再次将旧日志发送到我的 logstash-server。这是一个大问题,有什么办法可以避免它重新发送旧日志吗?

logstash-forwarder 保留一个 "registry" 列出它正在监视的每个文件以及该文件的当前偏移量。如果它无法写入该文件,当您重新启动进程时,它将不知道从哪里开始。

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

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