业务系统日志经 filebeat->logstash->es->kibana使用发现如下2个bug
1)message无法排序,见下图
2) 搜索关键字“SYSTEM_ERROR”无信息,搜索“aop.ACQ.SYSTEM_ERROR”返回日志明细
1)message无法排序,见下图
2) 搜索关键字“SYSTEM_ERROR”无信息,搜索“aop.ACQ.SYSTEM_ERROR”返回日志明细
output_2017-05-17_22:05.log:2017-05-18 02:56:06.582 INFO [citymain,,,] 439942 --- [skExecutor-3140] c.p.m.s.payment.service.AliPayService : refreshStatus Ö§¸¶±¦²éѯ·µ»Ø==>{"alipay_trade_query_response":{"code":"20000","msg":"Service Currently Unavailable","sub_code":"aop.ACQ.SYSTEM_ERROR","sub_msg":"ϵͳÒì³£","buyer_pay_amount":"0.00","invoice_amount":"0.00","point_amount":"0.00","receipt_amount":"0.00"},"sign":"JuCeU1Y1AfhDxMPk7QEAYM0PKEixhCSPQHngtyS64Oo+K1NoRNiNgXGKVnQx1S400zMI7oi00Uq0pMzApAnKKvg9DsH7zt8zHjO+PDsl1lqLb7gRj3/HB/Ye7Y5ReO4oBqKmOIdDohs+un4giwyT3QigHX/954zhre5w+evxlcuafP/0UbNro5n5MmUT3s733jMpv0aaayPW6mu7ruU8jH0/kXEmSYIyACOIWsHBfPngnJ4IUy0VxdvPF5H7maXbfYNfDoIwKQP6WMAI/Jv3t1nNUTMYd6cPtuDsBnggwWE0mdFrOVgfnoZWFZ5YAzup5Z21OKbX15odQnPp7muJ1A=="}
排序问题:
2 个回复
kennywu76 - Wood
赞同来自: medcl
1.) 如果你没有事先设计过索引的mapping,使用默认的字段类型,那么message字段应该是text类型,也意味着是一个分词字段。 当对一个分词字段进行排序的时候,排序对象是这个字段的词典,所以结果不是你想要的。排序应用在keyword类型字段上才能达到预期效果。
2.)同样的问题,因为message被分词了,而且用的默认的分词器aop.ACQ.SYSTEM_ERROR会被分成一个词存放到词典, 也就是说词典里并不存在SYSTEM_ERROR这样一个东西,所以搜索他搜不到,而搜索aop.ACQ.SYSTEM_ERROR可以成功。
分词效果可以用analyze api进行测试:
你需要稍微深入一点理解ES 里keyword和text数据类型的分别,特别是text类型的含义及对应的match query是如何匹配数据的。
Lincoln - 80s
赞同来自: