有办法让 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) 可能还会为您提供更多信息。
我正在为我的 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) 可能还会为您提供更多信息。