💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
## 一、说明 整个ELK搭建过程中最痛苦的就是调试Grok表达式去结构化日志数据,介绍两个调试工具可以提升效率 ## 二、调试工具 ### 2.1. grokdebug [http://grokdebug.herokuapp.com/](http://grokdebug.herokuapp.com/) 优点:在线调试 缺点:需要翻墙否则访问速度非常慢,缺乏具体的报错提示 > 表达式正确 > ![](https://img.kancloud.cn/14/a4/14a41af0fb8ac9e7b754bea6d8819b98_1753x934.png) > 表达式错误 > ![](https://img.kancloud.cn/9f/fb/9ffb7ff9688f2c3b9ea82d58374b5091_1753x835.png) ### 2.2. kibana kibana本身的`Dev Tools`菜单里面有个`Grok Debugger`就是用来调试Grok语法的,如下图 > 表达式正确 > ![](https://img.kancloud.cn/a3/d9/a3d9e9acd56da23e05643ff4c256fe85_1635x933.png) > 表达式错误:找不到pattern > ![](https://img.kancloud.cn/fa/08/fa08c849f1928982b858289b8b2da05f_2414x1224.png) > 补充自定义patterns后表达式正确 > ![](https://img.kancloud.cn/d5/9b/d59b73a943f7c2746e3567e5367497e8_1611x1198.png) ### 2.3. logstash 直接用logstash本身来进行配置调试 **(1) 创建测试配置** 在config目录下新建`test.conf`配置文件,内容如下: ~~~ input { stdin { } } filter { grok { match => { "message" => "%{TIMESTAMP_ISO8601:log_time}\|%{WORD:resouce_id}" } } } output { stdout { codec => rubydebug } } ~~~ > 修改filter里面的内容为自己想要测试的配置 **(2) 运行** 执行一下命令启动logstash ~~~ bin/logstash -f config/test.conf ~~~ 当看到打印以下信息则代表启动成功 ~~~ Successfully started Logstash API endpoint {:port=>9600} ~~~ **(3) 测试** 在控制台中输入测试的内容 ~~~ 2021-01-12 10:00:00.000|123 ~~~ 输出结果 ~~~ { "@version" => "1", "log_time" => "2021-01-12 10:00:00.000", "host" => "lf-172-16-21-134", "message" => "2021-01-12 10:00:00.000|123", "@timestamp" => 2021-01-13T09:18:28.397Z, "resouce_id" => "123" } ~~~