mtail的配置文件mtail.toml不支持正则?

Viewed 86

#-------------ceph
[[instances]]
progs = "/opt/categraf/rules_mtail/ceph/ceph.mon.mtail"
logs = ["/var/log/ceph/ceph-mon.*.log"]

使用*匹配出:
2023/04/12 11:39:13 tail.go:288: Tailing /var/log/ceph/ceph-mon.0.log
2023/04/12 11:39:13 tail.go:288: Tailing /var/log/ceph/ceph-mon.admin.log
但我想排除ceph-mon.admin.log
使用\d报错:toml: line 24 (last key "instances.logs"): invalid escape in string '\d'

1 Answers

你这个报错是转义不对, \d

方案一
如果你的数字只有一位,可以用ceph-mon.[0-9].log ,这个匹配cehp-mon.0.log 到 ceph-mon.9.log

方案二
利用选项 ignore_filename_regex_pattern

[[instances]]
progs = "/path/to/prog/test.mtail"
logs = ["/path/to/logs/*.log"]
ignore_filename_regex_pattern=".*admin.*"
override_timezone = "Asia/Shanghai"
emit_metric_timestamp = "true"

这样会排除 所有名称中带admin字样的log

经测试:ignore_filename_regex_pattern="._sc.|.sasl.",支持正则

这个可以,也能实现需求,但现在我想排除多个,ignore_filename_regex_pattern=[".sc.",".sasl."],报错:
TOML key "instances.ignore_filename_regex_pattern" has type []interface {}; destination has type string

另外ceph-mon.[0-9].log只能匹配0-9的文件,无法匹配如ceph-mon.11.log,应该也得支持按位去正则。