admin 发表于 2016-1-28 16:01

Logstash 读取tomcat错误日志

最近搭建了elk日志分析系统、想读取一下tomcat的错误日志、但是一个异常由于换行总是分多次存储展示、导致不是很清晰的看一个错误日志信息、摸索了半天、搜索、测试终于搞定。

tomcat.conf 配置文件如下

input {
    file {
      type => "tomcat_error"
                tags => [ "tomcat_error", "log4j" ]
                path => "/home/tomcat7/log/*.txt" # tomcat错误日志存放路径 自行定义
    }
}
filter {
    if == "tomcat_error" {
            multiline {
                      pattern => "^[^\[]"
                      what => "previous"
                  }
                mutate {
         split => ["message", "|"]
      }
      grok {
            match => {
                           "message" => "(?m)%{TIMESTAMP_ISO8601:logtime}"
            }
      }
    }
}
output {
    stdout {
            codec => rubydebug
      }
    redis {
      host => "115.28.240.103"
      port => 6379
      data_type => "list"
      key => "logstash-tomcat"
      password => "123456"
      db => 0

    }   
}
==========================代码说明================================
logstash一般会只记录一行,所以这类的日志就看不全了。怎么办呢?logstash提供了一个功能解决了这个问题就是”multiline”
这个filter的功能顾名思义就是对多行的日志进行处理 这个是官网上的说明
multiline filter
This filter will collapse multiline messages into a single event.
The multiline filter is for combining multiple events from a single source into the same event.

下面看下格式

filter {
multiline {
    type => "type"   #类型,不多说
    pattern => "pattern, a regexp" #参数,也可以认为是字符,有点像grep ,如果符合什么字符就交给下面的 what 去处理
    negate => boolean
    what => "previous" or "next" #这个是符合上面 pattern 的要求后具体怎么处理,处理方法有两种,合并到上面一条日志或者下面的日志
}
}
The ‘negate’ can be “true” or “false” (defaults false). If true, a message not matching the pattern will constitute a match of the multiline filter and the what will be applied. (vice-versa is also true)
这个 negate 有两种 true 或者 false,默认是 true,如果选了false 的话估计就是取反的意思。
看看例子
filter {
          multiline {
               pattern => "^[^\[]"
               what => "previous"
         }
   }
这个例子是针对我上面的JAVA日志写的,意思就是 如果不是以 “[“开头的日志 都跟上一个日志合并在一起。以此类推遇到其他的多行日志也可以按照这个方法来做合并。




屁孩儿 发表于 2017-7-12 21:48

哈哈哈 棒棒哒~~~~~~~~

劉様 发表于 2017-8-1 07:28

楼主威武
页: [1]
查看完整版本: Logstash 读取tomcat错误日志