• Filter模块插件的详细介绍


    通用配置项

    1. filter模块所有的过滤器都支持配置项
      Setting Input type Required
      add_field hash No
      add_tag array No
      enable_metric boolean No
      id string No
      periodic_flush boolean No
      remove_field array No
      remove_tag array No
    2. add_field:向此事件中添加任意字段;字段的名字可以是动态的;字段的名字和值可以使用%{field}包含事件的一部分
      1. 实例:如果事件具有字段"message"=="Weiking",那么在成功时,这个过滤器将添加字段my_Weiking
      2. 控制台输入:Weiking
        filter{
            mutate{
                add_field =>{
                    "my_%{message}" => "Hello world, from %{host}"
                    "new_field" => "new_static_value"
                }
            }
        }
    3. add_tag:向事件添加标签;标签可以是动态的,并使用%{field}语法包含事件的一部分
      1. 实例:如果事件有字段"message"=="Weiking",这个过滤器在成功时,会添加Weiking和student标签
      2. 控制台输入:Weiking
        filter{
            mutate{
                add_tag =>["%{message}","student"]
            }
        }
    4. enable_metric:默认情况下,我们会记录所有可以记录的指标,可以为特定的插件禁用指标集合
    5. ID:向插件配置中添加唯一的ID。如果不指定ID,logstash将会自动生成唯一的ID。(强烈建议在配置中设置此ID)
      1. 如果您有两个或多个相同类型的插件。例如有两个json过滤器,那么这是非常有用的。在这种情况下,在使用监视api时添加一个命名ID将有助于监视Logstash
      2. 实例:
        filter{
            mutate{
                id =>"2000"
            }
        }
    6. periodic_flush: 定期调用filter flush方法
    7. remove_field:从事件中删除任意字段。字段可以是动态的,并使用%{field}语法包含事件的一部分
      filter{
          json{
              source => "message"
              target => "new_field"
              remove_field => "message"
          }
      }
    8. remove_tag:从事件中删除任意标记。标记可以是动态的,并使用%{field}语法包含事件的一部分
      filter {
          json {
              source => "message"
              target => "new_field"
              remove_tag => [ "%{field_tag}", "tag_name"]
          }
      }

    Json插件

    1. 作用:将Json格式的字符串解析成logstash事件中的实际的Json格式的数据;默认情况下将解析后的Json放在logstash事件的根目录下,也可以通过target指定将解析后的数据放入事件的任意一个字段中
    2. JSON解析失败:
      1. 如果JSON格式的数据解析失败,事件不受影响,只是会标记为"_jsonparsefailure"。可以使用tag_on_failure选项配置此标记
      2. 如果解析后的数据包含@timestamp字段,我们将尝试将其用于事件的@timestamp,如果解析失败,该字段将被重命名为_@timestamp,事件将被标记为_timestampparsefailure
    3. JSON过滤器配置选项
      Setting Input Type   Required
      skip_on_invalid_json boolean NO 
      source string YES
      tag_on_failure array NO 
      target String NO 
    4. 配置说明:
      1. skip_on_invalid_json:是否允许在无效的json上跳过过滤器(允许不带警告地处理json和非json数据)
      2. source:接受json格式的字段(source => source_field)
      3. tag_on_failure:标记故障,将解析失败的的值添加到tag_on_failure,默认会标记失败是_jsonparsefailure;如果解析失败,返回的字段中会多一个"tags" => ["_jsonparsefailure",_timestampparsefailure]
      4. target:源字段值中的JSON将扩展为目标字段中的数据结构(将source中的字段解析后存放在该字段中)。如果省略设置,则json解析之后的 数据会存储在根目录下面
    5. 例子:控制台输入
      1. {"trans_jnls_no":"4","card_no":"444444444444444444","terminal_no":"1","atm_trans_types_type":"2","customer_no":"444444444","cash_mark":}
      2. {"trans_jnls_no":"4","card_no":"444444444444444444","terminal_no":"1","atm_trans_types_type":"2","customer_no":"444444444","cash_mark":""}
        filter{
            json{
                #stdin输入,默认的字段为message
                source => "message"
                #将解析后的JSON格式的数据放入json_field下
                target => "json_field"
                #如果JSON格式解析失败,则会跳过该过滤器,则Json 过滤器的配置不起作用
                skip_on_invalid_json => false
                #添加解析失败标记
                tag_on_failure => ["_jsonparsefailure",_timestampparsefailure]
            }
        }
  • 相关阅读:
    List--使用List作为堆栈和队列
    Range的范围
    异常处理
    关于打印输出的一些方法
    关于set的unordered特性
    面向对象
    函数
    Linux中命令备份mysql形成文件
    局域网内Linux下开启ftp服务的“曲折路”和命令复习
    linux下的apache服务自启动的几种方式
  • 原文地址:https://www.cnblogs.com/WeiKing/p/13448999.html
Copyright © 2020-2023  润新知