🙏夜莺监控( Nightingale )中的日志采集 mtail 如何配置采集日志格式文件名

Viewed 137

请求社区的大佬们!!!

categraf 插件 :input.mtail
mtail.toml 配置:

#[[instances]]
# progs = "/path/to/prog1" # prog dir1
# logs = ["/path/to/a.log", "path/to/b.log"]
# override_timezone = "Asia/Shanghai"
# emit_metric_timestamp = "true" #string type
# [[instances]]
# progs = "/path/to/prog2" # prog dir2
# logs = ["/path/to/logdir/"]
# override_timezone = "Asia/Shanghai"
# emit_metric_timestamp = "true" # string type

[[instances]]
progs = "/home/work/categraf/progs/click.mtail"
# 如果这里我需要监控的 access_log 是按照时间(一小时)日志切分的
# 例如 access_log.2023032714
# 下面的日志路径应该如何编写?
logs = ["/home/work/nginx_access/logs/access_log"]
override_timezone = "Asia/Shanghai"
emit_metric_timestamp = "true"

问题1:

如果这里我需要监控的 access_log 是按照时间(一小时)日志切分的
例如 access_log.2023032714
监控的日志路径应该如何编写?

问题2:

监控的文件 access_log 每小时会自动切割一次备份,切割的时候会重建 access_log ,监控内的指标就会在切割的时候丢失,有没有遇到这个问题的大佬,指点下如何配置才能避免?

已测试:
1、输入日志目录,如 /home/work/nginx_access/logs/,只会监控当前已有的文件,后面新建的文件无法被监控到,需要 categraf restart 才可以生效。
2、通过 *匹配,如:/home/work/nginx_access/logs/access_log.*,依然是只会监听现存的文件。

2 Answers

哪个版本?测试的过程有截图么?

我这边测试刚好跟你相反。

[[instances]]
progs = "/root/categraf/prog/test.mtail"
logs = ["/home/kongfei/mtail/*.log"]
override_timezone = "Asia/Shanghai"
emit_metric_timestamp = "true"

image.png
mtail 插件立即就检测到新文件了
image.png

用 * 通配,理论上可以做到自动发现新文件。