日志的Grok模式

时间:2018-08-14 12:23:36

标签: logstash logstash-grok logstash-configuration

问题为我的所有日​​志找到正确的grok模式,以便通过logstash解析所有日志。这是我的示例日志

20180809 17:43:27,user.mystack.com,adam,172.16.1.1,36610,QUERY,test_db,从表中选择*,'SET autocommit = 0',0

我想要用以下格式解析日志的grok模式:

日期-09/08/2018 17:43:27 域-user.mystack.com 用户亚当 客户端IP- 172.16.1.1 编号36610 操作查询 db_name-test_db 查询-从表中选择*,'SET autocommit = 0',0

1 个答案:

答案 0 :(得分:0)

这将是古怪的模式:

    grok {
      match => ["message", '%{DATA:Date},%{DATA:Domain},%{DATA:User},%{DATA:ClientIP},%{DATA:ID},%{DATA:Operation},%{DATA:Db_name},%{GREEDYDATA:Query}']
    }

DATAGREEDYDATA只是可以方便地重用的正则表达式模式。我们可以使用更多模式,并在此处提供:https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns

此外,请使用此应用来测试您的grok模式:https://grokdebug.herokuapp.com/

要转换日期字段,如果您打算对日志和请求进行基于时间的绘图,请使用日期过滤器。日期过滤器:https://www.elastic.co/guide/en/logstash/current/plugins-filters-date.html