logstash 多索引设置

数据输入
input{
     tcp{
      host  => "127.0.0.1"
      port  =>  9100
      codec => "json"
  }
}

数据过滤
filter{
   mutate{
         lowercase=>["springAppName"]    转为小写   索引不能有大写
    }
   if ![traceId]  or ![spanId] or [traceId]==[spanId]{
       mutate{
           add_field => {"info"=>"service inner call not sent to es"}
       }
   }
}

数据输出
output{
   if [info]  判断 info
{
     elasticsearch{
          action => "index"
          hosts  => "127.0.0.1:9200"
          index  => "%{springApName}"   动态索引
      }
    stdout{codec=>rubydebug}   控制台输出
}
 
}
  • 说明
    if ![traceId] or ![spanId] or [traceId]==[spanId]

    • ![traceId] 表示 字段traceId 不存在
    • or 表示条件 或
    • ![spanId] 表示 字段 spanId 不存在
    • [traceId]==[spanId] 表示字段traceId 和spanId 相等
  • mutate

mutate是 filter中的一个常用插件 配合if语句 可以对输入的文本内容进行处理 可选的操作 在官网有详细的说明

ps

  • 而是在指定 索引(index)的时候 索引名 要全是小写 不能有大写字母
  • %{springApName} 这个表示将springApName字段的值拿出来
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章