个人技术分享

问题

在AWS CloudWatch日志组中,想要查询出包含中文关键字的错误日志,结果,AWS说语法错误。
最开始,使用如下查询,查询可能的错误日志:
查询语句,如下:

{($.log = %ERROR%)  }

具体效果如下:
查询错误日志
在这个基础上面,想接下来,查询包含登录字符的日志,查询语句如下:

{($.log = %登录%)  }

结果出现如下错误:
语法错误

原因

AWS CloudWatch日志组,查询中文关键字,得把中文关键字转化成16进制才能查询。

解决

将需要查询的中文关键字登录转化为以\x为间隔的16进制进行查询。具体参考如下:
https://gchq.github.io/CyberChef/#recipe=To_Hex(‘%5C%5Cx’,0)&input=55m75b2V&oenc=65001
如下图:
16进制
然后,把转化后的字符串,拿到日志组中查询即可,语句如下:

{($.log = % ERROR%) && ($.log = %\xe7\x99\xbb\xe5\xbd\x95%)}

效果如下图:
查询结果
这样包含“登录”两个中文关键字的错误日志就过滤出来了。

参考