mtail插件正则问题

Viewed 73

2023/07/07 16:38:45 [error] 71292#71292: *1 open() "/usr/share/nginx/html/a.txt" failed (2: No such file or directory), client: 192.168.50.203, server: _, request: "GET /a.txt HTTP/1.1", host: "192.168.51.55"

这个是我nginx错误日志的内容请教下我文件中怎么写规则才能把这个作为指标的内容 比如下面这种形式
nginx_err_log{ident="localhost.localdomain",instance="2023/07/07 16:38:45 [error] 71292#71292: *1 open() "/usr/share/nginx/html/a.txt" failed (2: No such file or directory), client: 192.168.50.203, server: _, request: "GET /a.txt HTTP/1.1", host: "192.168.51.55""}

image.png
有点没明白是怎样可以传指标的

1 Answers

https://github.com/flashcatcloud/categraf/tree/main/inputs/mtail可以参考下命名提取,

给个简单例子

const KEY /(?P<errtext>ERROR.*)/
env="production"
gauge err_cnt by env,errtext
KEY {
    err_cnt[env][$errtext]++
}

定义一个表达式 KEY,里面有个命名表达式errtext , 匹配ERROR.*
定义一个常量env ,用作label
定义一个指标err_cnt 把上面的env和errtext作为label
匹配KEY {
带label计数
}

虽然可以把原始日志放到tsdb中,但这并不是一个最佳实践,纯技术讨论如何实现。

okok 感谢