如何配置 promtail 来提取路径中的变量作为 labels?
时间: 2024-09-12 14:10:17 浏览: 18
在 promtail 配置中,你可以使用 `log_parser` 和 `label_transformations` 部分来提取路径中的变量作为 labels。以下是一个基本的例子:
```yaml
global:
scrape_interval: "5s"
# ... 其他全局配置 ...
scrape_configs:
- job_name: 'myjob'
static_configs:
- targets: ['your-server:9093'] # 日志接收端口
log_file_patterns:
- '/var/log/app/*.log' # 匹配的日志文件路径
log_parser:
name: 'json' # 如果日志是 JSON 格式,这里选择 json-parser 或自定义解析器
config:
json_lines: true
# 以下部分用于提取路径中的变量作为 labels
label_transformations:
- operation: regex_replace
name: source_label
target_label: source
pattern: '^(.*)/(.*)\.log$' # 正则表达式匹配路径,如 "/var/log/app/service.log" -> "app/service"
replacement: '\1/\2'
```
在这个配置中,`regex_replace` 操作会查找路径中符合正则表达式的部分,并替换为新的 label 值。`name` 字段用于识别这个变换,然后可以在 PromQL 查询中引用该 label。
记得替换上述配置中的 `your-server:9093` 和 `/var/log/app/*.log` 为你的实际日志源和文件路径。
阅读全文