android - 使用grok提取android日志数据
问题描述
我是 and 的新用户ELK
,logstash
我正在尝试提取以下日志,grok
但没有成功。
这是我的日志:
08-14 10:22:50.863 1419 1419 D GpsNetInitiatedHandler: location enabled :false
我希望这样提取:
- 时间戳:08-14 10:22:50.863
- 不重要1:1419
- 不重要2:1419
- 日志级别:D
- 消息:GpsNetInitiatedHandler:启用位置:false
解决方案
我建议在 grok 调试器上测试模式,我喜欢使用这个,但那里有很多:http: //grokconstructor.appspot.com/do/match
您可以为您的日志条目做的是为时间戳创建一个自定义模式,或者如果您想进一步拆分时间戳,您可以查看时间/日期的默认 grok 模式
例如,使用grok 调试器,将您的日志条目复制粘贴到第一个框中,这是您放置要匹配的日志行的位置。
然后我想出了一个时间戳模式放入第三个框,因为我认为没有一个默认模式可以匹配日志条目(但如果有人知道一个默认模式,请纠正我)并将其命名为 TIMESTAMP:
TIMESTAMP \d\d-\d\d \d\d:\d\d:\d\d.\d\d\d
现在我使用自定义的 TIMESTAMP 模式和一些常用的默认模式创建了一个最终的 grok 模式,并将其放入第二个框中:
%{TIMESTAMP:timestamp} %{NOTSPACE:id1} %{NOTSPACE:id2} %{NOTSPACE:log-level} %{GREEDYDATA:message}
点击“开始!” 顶部的按钮,我们现在可以获得您想要的输出(如果需要,您可以更改 id1 和 id2 的名称)
如果一切看起来都不错,只需按照 logstash 文档创建自定义模式,并在 grok 过滤器中使用最终的 grok 模式,一切都会正常
推荐阅读
- firebase - Firebase 设置了集合,但当我从颤动中引用它时没有检索并看到它
- amazon-web-services - 不同AZ中每个Web服务器的本地缓存-缓存复制/驱逐-Redis还是其他?
- reactjs - React UseState 在渲染后解析当前值
- html - 将 HTML 元素转换为 PDF(支持 utf-8)
- neo4j - Neo4j - 使用其他列表更新列表的问题
- assembly - Cortex M0+ MSP/PSP 上下文切换
- javascript - 如果选择了选择标签中的选项,如何创建元素
- python - Flask 无法捕获 404 错误,由于某种原因,它在尝试处理时返回 500 错误
- node.js - curl 无法与使用 Nodejs v14.16.0 tls.createSecureContext 创建的 https 服务器握手
- javascript - 我应该使用哪个组件或函数?