如何让Promtail读取已读日志文件中新增的日志内容
配置调整方案
1. 关闭Loki旧日志拦截规则
你当前Loki配置中limits_config默认开启旧样本拒绝,仅接受最近7天内的日志,你手动添加的2012年日志远超时间阈值,被直接拦截。
修改Loki配置对应段:
limits_config: enforce_metric_name: false reject_old_samples: false # 测试环境直接关闭旧日志拦截,生产环境可按需调整时间阈值 reject_old_samples_max_age: 168h
修改后重启Loki服务生效。
2. 调整Promtail采集规则适配Windows文件写入场景
Promtail默认记录文件读取偏移量,首次读取完日志文件后不会重复读取历史内容,且Windows下部分编辑器保存文件时会变更文件标识,导致Promtail无法识别增量更新。
可选择两种适配方案:
- 测试临时方案:每次手动修改日志后,停止Promtail,删除
C:\Users\user\Desktop\tmp\positions.yaml文件后重启Promtail,会重新全量读取日志文件 - 固定配置方案:在Promtail对应采集job下新增轮询配置:
scrape_configs: - job_name: testing_logging_a_log_file static_configs: - targets: - localhost labels: job: testing_logging_a_log_file_labels_job_what_even_is_this host: testing_for_signs_of_life_probably_my_computer_name __path__: C:\Users\user\Desktop\sample.log # 新增以下配置 tail_config: poll: true from_beginning: false
3. 匹配查询时间范围
如果后续你配置了Promtail的时间解析规则,提取日志行内的2012年时间作为日志时间戳,需要在Grafana查询时将时间范围调整为覆盖2012年,否则无法命中对应日志。
内容的提问来源于stack exchange,提问作者Jeeva Bharathi
相关产品推荐
相关产品推荐

