elk-kibana查看日志技巧
https://www.elastic.co/docs/reference/query-languages/query-dsl/regexp-syntax
Elasticsearch kibana 分词搜索:
例如积分兑换是同步在
http-nio-8080-exec-23线程处理, 则可以使用如下分词搜索, 清晰查询除整个流程开始, 记录日志, 扣减积分, 增加余额, 结束
"http-nio-8080-exec-23" and "od9049758943 deal begin" or "http-nio-8080-exec-23" and "od9049758943 record log" or "http-nio-8080-exec-23" and "od9049758943 sub points" and "od9049758943 add balance" or "http-nio-8080-exec-23" and "od9049758943 deal end"
匹配搜索
如果分词搜索内容包含 字符串及其他符号 如 "HTTP/1.1" 499 " 导致搜索报错,可以加 反斜杠: \ 进行转义如 message:"HTTP\/1.1\" 499 " 即可正常搜索
字符串及其他符号 如 "HTTP/1.1" 499 " 导致搜索报错,可以加 反斜杠: \ 进行转义如 message:"HTTP\/1.1\" 499 " 即可正常搜索排除搜索
如果分词搜索内容排除搜索,可以在搜索列前加 not关键字 如 message:"api" and not message:"HTTP/1.1\" 200 " 即可搜索除http响应码200之外的其他请求
not关键字 如 message:"api" and not message:"HTTP/1.1\" 200 " 即可搜索除http响应码200之外的其他请求数字搜索
\<1-1000\>匹配大于等于1且小于等于1000的数字\<1-\>匹配等于1的数字\<-1000\>匹配等于1000的数字\<01-\>匹配等于01的数字\<01-100\>匹配01,02,03...,99,100的数字
声明:elk-kibana本身自带的搜索已经很完善了,但是分词语法和日志内容重复的话有些不好用,并且很多时候elk-kibana只能在堡垒机查看(这种除非服务器上有性能好的文本查看/编辑器,否则也不适用),这里提供的思路只是一个偏门,不一定适合所有人
需要注意:
1-并不是所有的elk并不能一次把你搜锁到的结果全部返回,一些设定会让elk单次查询最多返回 5000 或者 10000 条,如果你查询的日志量很大比如 20000-30000条,则需要分时间条件多次查询,把内容分别拷贝出来,详情点击 文章 查看
2-记得开启 Syntax Options,否则elk的分词多条件查询例如 message :"order001" and "order002" and "order003"不会生效

假设我们查询到
elk-kibana上的日志特别多,不好分析时,我们可以通过elk-kibana的接口,将数据复制出来到vscode等性能好的文本查看/编辑器,使用正则,将多余的数据去除,方便我们查看日志

1、匹配非message开头以外的内容,正则表达式,将其内容替换为空(可多替换几次,去除干扰内容,视情况而定)
^\n|"|^((?!message).)*

2、匹配连续的空行内容,正则表达式,将其替换为空
^\n+


浙公网安备 33010602011771号