zoukankan      html  css  js  c++  java
  • ELK系列六:Logstash的Filter模块

    Date过滤


    input {
    	stdin{
    		codec => plain
    	}
    }
    
    filter {
    	date {
    		match => ["message", "yyyy-MM-dd HH:mm:ss"]
    		target => "@timestamp"
    	}
    }
    
    output{
    	stdout{
    		codec => rubydebug{
    
    		}
    	}
    }
    

    # target是覆盖写那个目标字段
    # match 是匹配什么样子的
    # 注意时区的时差 
    

    正在表达式grok

    input {
    	stdin{
    		codec => plain
    	}
    }
    
    filter {
    	grok {
    		match => {"message" => "dddddd"}
    	}
    }
    
    output{
    	stdout{
    		codec => rubydebug{
    
    		}
    	}
    }
    

    # 输出的数据类型转换(Number目前只支持float和int):
    filter {
        grok {
            match => {
                "message => "%{WORD} %{NUMBER:newdata:float} %{WORD}"
            }
        }
    }
    

    #  重写字段:
    overwrite => ["message"] 
    

    input {
    	stdin{
    		codec => plain
    	}
    }
    
    filter {
    	grok {
    		match => {"message" => "%{WORD:message:text} %{NUMBER:data:float}"}
    		overwrite => ["message"]
    	}
    }
    
    output{
    	stdout{
    		codec => rubydebug{
    
    		}
    	}
    }
    

    GeoIP地址查询


    filter {
        geoip {
            source => "message"
        }
    }
    

    JSON编码


    filter{
        json {
            source => "message"
            target => "jsoncontent"
        }    
    }
    

    key-value切分


    input {
    	stdin{
    		codec => plain
    	}
    }
    
    filter {
    	kv {
    		source => "message"
    		include_keys => ["name","ip","level"]
    		target => warnning
    	}
    }
    
    output{
    	stdout{
    		codec => rubydebug{
    
    		}
    	}
    }
    

    数据修改


    #总格式
    filter {
        mutate {
            ...
        }
    }
    #1、字符串处理
    mudate {
        gsub => ["xxx", "yyy","zzz"] #替换xxx字段中的yyy为zzz
        split => ["xxx","yyy"] #把xxx字段按照yyy字符分割
        join => ["xxx","yyy"] #把xxx字段按照yyy组装,之前分割的东西,用yyy作为分隔符,组装到一起
        merge => ["xxx","yyy"] #合并xxx和yyy字段
        strip => ["xxx"] #去掉xxx字段的前后空格
        lowercase/uppercase => xxx #小写/大写
        rename => ["xxx","yyy"] #xxx字段的名字换成yyy
        update => ["xxx","xxx"] #更新字段,字段不存在不新建
        replace => ["xxx","yyy"] #更新字段,字段不存在则新建
    }
    
  • 相关阅读:
    转载C#基础概念二十五问
    C# 文件路径、目录、I/O常见操作汇总
    最简单lru缓存及改进版本(java备忘)
    我的游戏观
    寂静岭 破碎的记忆
    居然又回来了,CSDN博客太不方便了
    Game Physics Engine Development 粗略翻译
    就这么定了
    绘画 程序 人生
    也谈Maxscript
  • 原文地址:https://www.cnblogs.com/KevinGeorge/p/9872755.html
Copyright © 2011-2022 走看看