Nic*_*las 2 logstash logstash-grok
基本上,我想LogStash消耗自己的日志和填充字段,如@timestamp,level等在Kibana使用.
我当前的配置如下所示:
input {
  file {
    path => "/path/to/logstash/logs/*.log"
    type => "logstash"
  }
}
这似乎很难做到 - 没有回复写Grok过滤器.LogStash是否真的无法使用自己的日志?(很难谷歌,我找不到任何东西.)
或者这首先是错误的做法?
LogStash的日志输出示例:
{
  :timestamp=>"2014-09-02T10:38:08.798000+0200", 
  :message=>"Using milestone 2 input plugin 'file'. This plugin should be stable, but if you see strange behavior, please let us know! For more information on plugin milestones, see http://logstash.net/docs/1.4.2/plugin-milestones",
  :level=>:warn
}
您必须使用,grok因为logstash无法rubydebug用作输入编解码器.
日志采用固定格式,因此grok要做到这一点很简单.然后我们date用来替换@timestamp
filter {
  grok {
      match => ["message", '{:timestamp=>"(?<timestamp>.*)", :message=>"(?<msg>.*)", :level=>:(?<level>.*)}']
  }
  mutate {
      replace => ["message", "%{msg}" ]
      remove_field => msg
  }
  date {
      match => [ "timestamp", "ISO8601" ]
      remove_field => 'timestamp'
  }
}
这个mutate步骤是必需的,因为如果你刚刚<message>进入匹配,它将message变成一个数组并将提取的消息添加到它,所以捕获另一个名称,然后替换该消息.
| 归档时间: | 
 | 
| 查看次数: | 1296 次 | 
| 最近记录: |