如何使Logstash以实时方式将新添加/记录的内容解析为文件输入

时间:2015-12-16 23:25:48

标签: logstash logstash-configuration logstash-file

我正在阅读Logstash参考[1.5]的Logstash配置示例部分中的Processing Apache Logs示例。其中一句话是:

  

"还会捕获记录到此文件的任何其他行,   由Logstash作为事件处理,并存储在Elasticsearch中。"

我正在尝试通过在Logstash关闭尚未完成时向被监视的日志文件中再添加一行来实现它。这基本上就是我所说的"实时"在问题标题中。

以下是我实际尝试的方法:

步骤1.将logstash-apache.conf传递给Logstash

Logstash I使用的版本是1.5.4。 logstash-apache.conf 的代码是:

input {
  file {
    path => "/your/path/to/the/log/file"
    start_position => "beginning"
    type => "apache_access"
  }
}

filter {
  if [path] =~ "access" {
    grok {
      match => { "message" => "%{COMBINEDAPACHELOG}" }
    }
  }
  date {
    match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z"]
  }
}

output {
  elasticsearch {
  host => localhost
  protocol => "http"
  port => "9200"
  }
  stdout { codec => rubydebug }
}

conf文件与示例几乎相同。但是," apache_access"的类型每次阅读网站上的说明时,都会添加到文件输入插件中,而不是放入mutate过滤器插件中。请用你的文件输入插件替换路径。

为方便起见,此处提供了示例日志

71.141.244.242 - kurt [18/May/2011:01:48:10 -0700] "GET /admin HTTP/1.1" 301 566 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3"
134.39.72.245 - - [18/May/2011:12:40:18 -0700] "GET /favicon.ico HTTP/1.1" 200 1189 "-" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; .NET4.0C; .NET4.0E)"
98.83.179.51 - - [18/May/2011:19:35:08 -0700] "GET /css/main.css HTTP/1.1" 200 1837 "http://www.safesand.com/information.htm" "Mozilla/5.0 (Windows NT 6.0; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1"

在Logstash处理之后,标准输出以rubydebug格式显示3个结果,可以在上传的图像中看到(当然,这3个也在Elasticsearch中编入索引): Image of 3 results appearing in the standard out in the rubydebug format after Logstash's processing

请注意,此时conf文件生成的管道尚未关闭。

步骤2.使用服务器中的文本编辑器将另一行日志添加到文件中并保存更改

这是我添加的行,它应该是日志文件中的第4行:

71.141.244.242 - kurt [18/May/2011:01:48:10 -0700] "GET /admin HTTP/1.1" 301 566 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3"

执行此操作后,我希望在标准中显示另外一个结果,因为我相信文件输入插件可以配置为执行此操作,因为同一参考文件中的文件输入插件部分说:

  

该插件旨在跟踪更改的文件并发出新的内容   附加到每个文件。

不幸的是,什么都没发生。

我走错了路,做错了吗?如果没有,这里的任何人都可以帮助我实现我打算做的事情,并可能解释其背后的机制吗?任何帮助将不胜感激。

0 个答案:

没有答案