zoukankan      html  css  js  c++  java
  • LogStash filter介绍(九)

    LogStash plugins-filters-grok介绍

    官方文档:https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html

    常用于对日志的拆分,如apache日志

    grok利用正则表达式进行匹配,拆分日志。它提供一些常用的预定义的正则表达式名称,用于直接匹配。

    预定义文件路径 /opt/logstash/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-2.0.5/patterns

    grok-patterns文件包含apache预定义。

    logstash所有预定义的可以通过 如下地址查看

    https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns

    自己写的规则可以通过如下地址,做debug测试

    http://grokdebug.herokuapp.com/

    grok插件使用

    1)标准输入、标准输出

    input {
        stdin {}
    }
    
    filter {
        grok {
            match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }
        }
    }
    
    output{
        stdout{
            codec => rubydebug
        }
    }

    启动/opt/logstash/bin/logstash -f /etc/logstash/conf.d/grok.conf

    输入测试数据 55.3.244.1 GET /index.html 15824 0.043

     

    apache日志收集

    本示例为收集默认的apache日志,如果自定义apache日志格式,需要编写自定义的正则表达式,通过grok进行匹配

    1、标准输出

    input {
        file {
            path => "/etc/httpd/logs/access_log"
    		start_position => "beginning"
        }
    }
    
    filter {
        grok {
            match => { "message" => "%{COMBINEDAPACHELOG}" }
        }
    }
    
    output{
        stdout{
            codec => rubydebug
        }
    }

    启动/opt/logstash/bin/logstash -f /etc/logstash/conf.d/grok_apache.conf

    2、elasticsearch插件输出

    input {
        file {
            path => "/etc/httpd/logs/access_log"
    		start_position => "beginning"
        }
    }
    
    filter {
        grok {
            match => { "message" => "%{COMBINEDAPACHELOG}" }
        }
    }
    
    output{
        elasticsearch {
            hosts => ["192.168.137.11:9200"]
            index => "apache-accesslog-%{+YYYY.MM.dd}"
        }
    }
    

    启动/opt/logstash/bin/logstash -f /etc/logstash/conf.d/grok_apache.conf

  • 相关阅读:
    centos7 主从dns配置 bind服务
    Linux的启动流程
    shell脚本编程数组
    shell脚本编程进阶
    计划任务
    进程管理
    Linux网络配置
    计算机网络基础
    磁盘存储和文件系统
    软件包管理
  • 原文地址:https://www.cnblogs.com/shhnwangjian/p/6253688.html
Copyright © 2011-2022 走看看