问题
在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
如下图:
然后,把转化后的字符串,拿到日志组中查询即可,语句如下:
{($.log = % ERROR%) && ($.log = %\xe7\x99\xbb\xe5\xbd\x95%)}
效果如下图:
这样包含“登录”两个中文关键字的错误日志就过滤出来了。
参考
- 指标筛选条件、订阅筛选条件、筛选日志事件和 Live Tail 的筛选条件模式语法
- CyberChef