【发布时间】:2015-03-18 14:59:43
【问题描述】:
logstash 新手,在处理日志文件时遇到问题。
我在带有 IIS 7.5 的 Windows Server 2008 R2 上运行它。麋鹿版本: 弹性搜索 v 1.4.4 Logstash v 1.4.2 Kibana 4.0.1
我可以让简单的命令行输入工作。 Logstash.conf:
input { stdin {} }
output {
elasticsearch { host => localhost }
stdout { codec => rubydebug }
}
然后使用以下命令从 ../bin 运行 logstash:
.\logstash agent -f logstash.conf
然后我输入的任何内容都会添加到 logstash-2015-03-18 文档中。
但是,我希望 logstash 处理我自己的应用程序中的日志文件,这些文件将被复制(直到我让 ELK 100% 工作)到 E:/tmp/logs
所以我已将 logstash.conf 更改为:
input {
file { path => "E:\tmp\logs\*.log" }
}
我使用nssm.exe配置logstash服务如下:
Path: E:\LogStash files\logstash-1.4.2\logstash-1.4.2\bin\run.bat
Startup dir. : E:\LogStash files\logstash-1.4.2\logstash-1.4.2\bin
Dependencies: elasticsearch-service-x64
run.bat 是
logstash.bat agent -f logstash.conf
那么,问题出在哪里? 当我运行该服务时,我在 ElasticSearch 中没有看到新索引(我使用 DHC Chrome 插件)。唯一的索引是 .kibana(我认为这是 Kibana 本身的?!)。
上面有什么问题吗,或者我可以将文件处理输出到文件进行调试吗?
问候 克雷格
附言。我已经删除了 .sincedb* 文件。
【问题讨论】:
-
除非您为文件输入设置
start_position => beginning(并且Logstash 之前没有看到该文件),否则它只会拖尾文件。您是否实际上将数据添加到文件中,以便尾部操作导致要处理任何新行? -
所以在文件 { path => "E:\tmp\logs*.log" } 和关闭 } 之前添加 start_position => "beginning" 用于输入?
-
在文件输入的右大括号之前添加它,所以
file { path => "..." start_position => beginning }。同样,这只会对 Logstash 以前没有的新文件产生影响。要让它将看到的文件视为看不见,请删除 sincedb 文件。不确定它们在 Windows 上的存储位置。 -
我删除了 .sincedb* 文件(位于用户主目录中),然后添加了几个新文件,但它们仍未得到处理。我知道它可以工作,因为我还通过命令行启动了另一个进程,该进程将 stdin 作为输入并发送到 elasticsearch。
-
您可以尝试使用
--verbose甚至--debug启用详细日志记录,以获得有关问题的更多线索。可能是文件名模式中的拼写错误、权限不足或其他原因。
标签: logstash