首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >promtail配置的Regex

promtail配置的Regex
EN

Stack Overflow用户
提问于 2022-03-04 20:43:40
回答 1查看 1.8K关注 0票数 0

我一直在努力让正则表达式的字符串起作用。它被用于Promtail来解析我日志中的标签。我现在遇到的问题是,它没有使用积极的展望(因为我认为promtail是用go编写的?)

无论如何,这些日志都是web日志,下面是几个示例:

代码语言:javascript
复制
INFO:     172.0.0.1:0 - "POST /endpoint1/UNIQUE-ID?key=unique_value HTTP/1.1" 200 OK
INFO:     172.0.0.2:0 - "GET /endpoint/health HTTP/1.1" 200 OK
172.0.0.1:0 - - [04/Mar/2022:10:52:10 -0500] "GET /endpoint2/optimize HTTP/1.1" 200 271
INFO:     172.0.0.3:0 :0 - "GET /endpoint3?key=unique_value HTTP/1.1" 200 OK

另一件值得指出的事情是,UNIQUE-ID将是一个VIN ID (车辆识别号码)。

我希望创建的组是:ip request endpoint status。但是,由于endpoint1中的所有endpoint1以及endpoint1和endpoint3中的unique_values,所以使用完整的端点路径会在loki中造成太多的流,并基本上杀死它。

我的解决方案regex如下所示:

代码语言:javascript
复制
(?P<ip>((?:[0-9]{1,3}\.){3}[0-9]{1,3})).+(?P<request>(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH)).(?P<endpoint>(.+endpoint1\/health)|(.+endpoint1)|(.+)(\?)|(.+) ).+\".(?P<status>([0-9]{3}))

它涵盖了以下几个群体:

代码语言:javascript
复制
ip: `172.0.0.1`, `172.0.0.2`, `172.0.0.1` `172.0.0.3`
request: `POST`, `GET`, `GET`, `GET`
endpoint: `/endpoint1`, `/endpoint1/health`, `/endpoint2/optimize `, `/endpoint3?`
status: `200`,`200`,`200`,`200`

问题在于/endpoint2/optimize/endpoint3?的端点。endpoint2在末尾有一个尾随空间,endpoint3包括?。我能够使用下面的regex使用正向前瞻来实现这个工作,但是它在Promtail中抛出了一个错误。

代码语言:javascript
复制
(?P<ip>((?:[0-9]{1,3}\.){3}[0-9]{1,3})).+(?P<request>(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH)).(?P<endpoint>(.+endpoint1\/health)|(.+endpoint1)|(.+)(?=\?)|(.+)(?= )).+\".(?P<status>([0-9]{3}))

任何帮助都将不胜感激!我远没有假装我知道我的方法.

编辑:下面是一个示例https://regex101.com/r/FXvnqR/1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-04 20:49:13

编辑

试试这个!(?P<ip>((?:[0-9]{1,3}\.){3}[0-9]{1,3})).+(?P<request>(GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH)).(?P<endpoint>(/endpoint[1-3]?(?:\/health|\/optimize)?))?.+\".(?P<status>([0-9]{3}))

https://regex101.com/r/DKqRpL/1

如果要有包含1-3以外的数字的端点,或者除健康或优化之外的后续路由,则需要对其进行编辑,但到目前为止,这是您的修复芽。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71357043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档