Logstash grok配置

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: logstash file input plugin的filter配置,讲解grok用法。

logstash 配置

input {
    file {
        path => "/logs/*.log" #日志路径
        codec => multiline { 
             pattern => "^%{TIMESTAMP_ISO8601}"
             negate => true
             what => "previous"
        }
    }
}

filter {
    if [path] =~ "access" {
        mutate { replace => { type => "access" } }
        grok {
            match => { 
                "message" => "%{TIMESTAMP_ISO8601:timestamp} %{INT:cost} %{IP:remoteIp}:%{POSINT:remotePort} %{IP:localIp}:%{POSINT:localPort} %{PATH:uri} %{INT:httpCode}"
            }
            remove_field => ["message"]
        }
    } else if [path] =~ "server" {
        mutate { replace => { type => "server" } }
        grok {
            match => { 
                "message" => "%{TIMESTAMP_ISO8601:timestamp} \[%{LOGLEVEL:level}\] \[%{JAVACLASS:class}\] \[%{DATA:thread}\] - %{GREEDYDATA:content}"
            }
            remove_field => ["message"]
        }
    } else {
        mutate { replace => { type => "random_logs" } }
    }
    date {
        match => [ "timestamp", "yyyy-MM-dd HH:mm:ss.SSS" ]
    }
}

output {
    elasticsearch {
      hosts => ["http://192.168.201.37:9200"]
      index => "local_test"
    }
}

说明:
1 . multiline 处理一个事件由多行日志构成的情况,用时间戳标记新事件。
2 . =~ 正则匹配日志名。
3 . mutate 替换默认属性type的值
4 . remove_field 删除原日志
5 . date 用业务时间戳替换日志写入时间戳

日志举例

1. access-log

2017-04-13 09:23:52.725 6 127.0.0.1:53289 127.0.0.1:9092 /user/item/11 200

2. server-log

2017-04-13 11:13:33.766 [ERROR] [com.chengying.web.UserController] [http-nio-9092-exec-7] - item id 11
com.netflix.hystrix.exception.HystrixRuntimeException: ResourceQuery#queryResourceItem(String) failed and no fallback available.
    at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:805)
    at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:790)
    at com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHoo
    at rx.observers.Subscribers$5.onError(Subscribers.java:230)
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
Logstash 配置 Grok 语法
Logstash 配置 Grok 语法
540 0
Logstash 配置 Grok 语法
|
消息中间件 存储 编解码
『Logstash』Logstash配置文件详解
📣读完这篇文章里你能收获到 - Logstash配置文件详解
1523 0
『Logstash』Logstash配置文件详解
|
7月前
|
数据采集 监控 数据可视化
日志解析神器——Logstash中的Grok过滤器使用详解
日志解析神器——Logstash中的Grok过滤器使用详解
560 4
|
Java 关系型数据库
Logstash 安装
https://www.elastic.co/cn/downloads/logstash官网一、下载logstash[root@jiaxin-ceshi ~]# cd /usr/local/src/[root@jiaxin-ceshi src]# wget https://artifacts.
9016 0
|
Web App开发 监控 Java
ELK日志处理之使用Grok解析日志
一、简介 Grok是迄今为止使蹩脚的、无结构的日志结构化和可查询的最好方式。Grok在解析 syslog logs、apache and other webserver logs、mysql logs等任意格式的文件上表现完美。
3167 0
|
编解码
collectd 与 logstash配置
节点 node1: 配置logstash node2: 配置collectd, collectd收集本地的信息, 通过配置将信息发送到node1节点 node1安装配置logstash rpm -ivh logstash.
1230 0