我安装了Logstash来解析apache文件.我花了很多时间来设置正确的,我总是尝试真正的日志.我注意到(正如文档所说)logstash"记住"它在文件中的位置.现在我的设置很好,我希望Logstash"忘记".这似乎比我更难.我已经做了以下事情:
用过的: start_position => "beginning"
从elastissearch中删除了完整的"数据"文件夹(并先将其停止)
看看logstash打开哪些文件lsof -p PID
并删除了所有有希望的东西(在我的例子中/tmp/jffi*.tmp
)
Logstash仍然不会忘记并解析日志所在文件夹中的"新鲜"文件
有任何想法吗?
fla*_*ini 132
默认情况下,logstash将最后的位置写入通常驻留的日志文件中$HOME/.sincedb
.可以愚弄Logstash,使其相信它从未通过指定/dev/null
as 来解析日志文件sincedb_path
.
这里是文档输入文件的一部分.
在哪里写入自己的数据库(跟踪受监视日志文件的当前位置).默认为环境变量"$ SINCEDB_PATH"或"$ HOME/.sincedb"的值.
配置示例
input {
file {
path => "/tmp/logfile_to_analyse"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
Run Code Online (Sandbox Code Playgroud)
小智 19
插件文件在sincedb文件中存储"拖尾"的历史记录,默认值为:$ HOME/.sincedb*,参见http://logstash.net/docs/1.3.3/inputs/file#sincedb_path
自db文件以来包含的行如下所示:
[inode] [major device number] [minor device number] [byte offset]
Run Code Online (Sandbox Code Playgroud)
因此,如果要再次解析完整文件,则需要:
ls -i yourFile | awk '{print $1}'
)使用键start_position =>"开始,Logstash将分析所有文件.
sincedb文件的示例:
结合所有答案,猜猜这是解析文件的最佳方法.我的测试也做了同样的事情.
input {
file {
path => "/tmp/access_log"
start_position => beginning
sincedb_path => "/dev/null"
ignore_older => 0
}
}
Run Code Online (Sandbox Code Playgroud)
对于快速测试,ignore_older
您也touch /tmp/access_log
可以更改文件的时间戳.
小智 5
如果您使用的是logstash-forwarder,请检查您的家庭.logstash-forwarder
文件:
{
"/var/log/messages": {
"source": "/var/log/messages",
"offset": 43715,
"inode": 12967,
"device": 51776
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
70938 次 |
最近记录: |