请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

filebeat吐文件到logstash乱码问题

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

正在回答 回答被采纳积分+3

2回答

提问者 天才小彩笔i 2018-08-17 11:44:20

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 回复 有任何疑惑可以回复我~
  • 样例数据和输出以及期待的输出写一下
    你一定要给我一个可以复现的例子才可以
    回复 有任何疑惑可以回复我~ 2018-08-17 11:53:41
  • 提问者 天才小彩笔i 回复 rockybean #2
    老师,你加我qq吧,样例输出什么的这里不好描述 81735653
    回复 有任何疑惑可以回复我~ 2018-08-17 11:59:57
  • rockybean 回复 提问者 天才小彩笔i #3
    加我微信吧 rockybean
    回复 有任何疑惑可以回复我~ 2018-08-17 12:00:52
rockybean 2018-08-17 10:04:37

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

0 回复 有任何疑惑可以回复我~
  • 提问者 天才小彩笔i #1
    问题锁定范围在logstash 的filter,过了这个filter变成乱码的,把filter去了就没有乱码了。不知道filter为什么出问题
    回复 有任何疑惑可以回复我~ 2018-08-17 11:41:47
  • rockybean 回复 提问者 天才小彩笔i #2
    你要发一些现场信息给我才能帮你
    回复 有任何疑惑可以回复我~ 2018-08-17 11:43:02
  • 提问者 天才小彩笔i 回复 rockybean #3
    我把我的filter贴到问题里了,这里回复有字数限制回复不了
    回复 有任何疑惑可以回复我~ 2018-08-17 11:45:27
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号