filebeat吐文件到logstash乱码问题

来源:14-2 Filebeat_Demo

天才小彩笔i

2018-08-17

我把一个文件读到logstash中,使用input file插件,就没有乱码。使用input beats出现了乱码。filebeats的encoding我试过gb18030/gb2323/gbk/plain类型的。文件是gb18030的。都是乱码。问题有可能出现在哪呢?

写回答

2回答

天才小彩笔i

提问者

2018-08-17

filter{

    mutate{

        update=>{"message" => "%{message}1|" } 

        split=>["message","|"] 

      }

      ruby {

         code => '

         file_nm = event.get("message").split(/\//).last

         node_id = file_nm[4,file_nm.length].chop.chop.chop.chop

         event.set("node_id", node_id)

         size = event.get("message").size

         event.set("size", size)

         event.set("tm_smp", event.get("message[0]")[5,18])

         event.set("log_id", event.get("message[0]").split(" ")[-1])

         event.set("req_id", event.get("message[1]"))

         if size ==8

             event.set("srv_nm", event.get("message[2]"))

             event.set("txn_cd", event.get("message[3]"))

             event.set("cost_tm", event.get("message[4]"))

             event.set("msg_cd", event.get("message[5]"))

             event.set("msg_inf", event.get("message[6]"))

         elsif size ==9

             event.set("bus_id", event.get("message[2]"))

             event.set("srv_nm", event.get("message[3]"))

             event.set("txn_cd", event.get("message[4]"))

             event.set("cost_tm", event.get("message[5]"))

             event.set("msg_cd", event.get("message[6]"))

             event.set("msg_inf", event.get("message[7]"))

         elsif size <8||size>9

             event.set("flg","error")

         end'

        remove_field => ["message"]}

      date {match => ["tm_smp", "MM-dd HH:mm:ss,SSS" ]}

}


0
3
rockybean
回复
天才小彩笔i
加我微信吧 rockybean
2018-08-17
共3条回复

rockybean

2018-08-17

你需要把文件传上来我看下才知道,默认 logstash 和 filebeat 都是 utf-8编码

0
3
天才小彩笔i
回复
rockybean
我把我的filter贴到问题里了,这里回复有字数限制回复不了
2018-08-17
共3条回复

Elastic Stack从入门到实践,动手搭建数据分析系统

有了Elastic Stack,不用写一行代码,你也可以玩转大数据分析!

1361 学习 · 397 问题

查看课程