zoukankan      html  css  js  c++  java
  • 日志分析(二) logstash patterns

    grok-patterns内置了很多基础变量的正则表达式的log解析规则,其中包括apache的log解析(同样可以用于nginx的log解析)。
     
    基于nginx日志分析配置:
    1.配置nginx日志格式如下:
    log_format main '$remote_addr [$time_local]'
    ' "$request" $status $body_bytes_sent'
    ' "$http_referer"'
    ' "$request_time"';
     
    access_log /var/log/nginx/access.log main;
    对nginx日志进行了一定的筛选,去掉用不上的日志。此时,对于日志格式的约定要比较小心,我在调试过程中,在nginx日志上多写了几个空格,logstash半天解析不出来。
    2.logstash日志格式配置如下:
    input {
    file {
    path => "/var/log/nginx/*.log"
    }
    }
    filter {
    if [path] =~ "access" {
    mutate { replace => { "type" => "nginx_access" } }
    grok {
    match => { "message" => "%{IPORHOST:clientip} [%{HTTPDATE:timestamp}] "(?:%{WORD:method} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer} %{QS:timeconsumer}" }
    }
    }
    date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
    }
    }
    output {
    redis {
    data_type => "list"
    key => "logstash"
    }
    }
    这样一来,就将nginx日志的请求url,请求方法,请求耗时,响应字节数,请求时间基本上就分离出来了,后续借助kibana就可以做到数据大盘监控与分析。
     
    在尝试将logstash致力于处理业务日志的时候,针对业务日志格式,需要定义出一套解析规则,后续完善相关处理表达式.
  • 相关阅读:
    js调试工具
    学习之compare:c#和c++中各种compare方法
    individual program总结2.0
    individual program总结
    C语言编程—自动生成四则运算升级版
    jQuery Validate(一)
    Java_得到GET和POST请求URL和参数列表
    jQuery Validate(二)
    MySQL_使用时遇到的问题汇总
    jQuery Validate(三)
  • 原文地址:https://www.cnblogs.com/asfeixue/p/logstash.html
Copyright © 2011-2022 走看看