Logstash解析\t\n失败问题
问题:
今天配置logstash的kafka输入插件,调试Logstash读取kafka数据时,发现解析失败,查看输出到elasticsearch索引的日志信息,发现一个json体数据全被当作message信息处理,后来发现是因为kafka插件读取数据的{ codec=>json},而kafka中一条数据最后含有\t和\n。
处理办法:
读取json数据前,将数据中的\t和\n去掉,本人用python读取数据写到kafka中,再通过logstash读取数据,因此在python读取数据时便将数据中的这两个字符删掉。
variable = '{"message" : "abcdefg\r\n"}'
message_new = variable.replace('\t','').replace('\t','')
再将这条数据写入kafka中,logstash读取即可正常做json解析。