首页/云/可观测性速查/Promtail 采集配置:目标与推送
日志平台52 条

Promtail 采集配置:目标与推送

Promtail 按 scrape_configs 声明要读取的文件与附加标签,然后推送到 Loki 的 push 接口;路径通过 __path__ 特殊标签传入。

可观测性速查云更新于 2026-10-13

Promtail 采集配置是什么

Promtail 是 Loki 的日志采集代理:它按 scrape_configs 声明要读取的文件与附加标签,再把读到的日志推送到 Loki 的 push 接口。文件路径通过 __path__ 这个特殊标签传入,labels 里的键值会直接成为 Loki 的流标签,因此配置写法直接决定流的数量与查询体验。

基本信息

角色Loki 官方日志采集代理
推送地址http://<loki>:3100/loki/api/v1/push
特殊标签__path__ 指定采集文件
读取位置positions.yaml 记录偏移
标签影响labels 直接成为 Loki 流标签
配置文件/etc/promtail/config.yml

典型使用场景

  • 采集宿主机上的 Nginx 与应用日志并送到 Loki
  • 以 DaemonSet 形式部署,采集每个节点的容器日志目录
  • 给不同路径的日志打上 job、app 标签,便于按服务检索
  • 用 pipeline_stages 做多行合并与正则提取后再推送
  • 多环境部署时用 labels 里的 env 区分测试与生产
  • 排查日志缺失时先看 positions 文件与采集路径是否匹配

promtail 配置示例

promtail 配置示例
server:
  http_listen_port: 9080          # 自带指标与健康检查端口

positions:
  filename: /var/lib/promtail/positions.yaml   # 记录读取偏移

clients:
  - url: http://loki:3100/loki/api/v1/push     # 推送目标

scrape_configs:
  - job_name: nginx
    static_configs:
      - targets: [localhost]
        labels:
          job: nginx              # 会成为 Loki 流标签
          env: prod
          __path__: /var/log/nginx/*.log

关键字段

字段作用说明
clients.url推送地址Loki 的 push 接口
positions.filename偏移记录保证重启续采不重复
labels流标签低基数、稳定维度
__path__采集路径支持通配符
pipeline_stages日志加工多行合并、正则提取
labels 里的键值直接成为 Loki 流标签;每个通配路径会按匹配到的文件展开成独立流,路径通配范围要控制。
positions 文件相当于采集进度,删除或丢失会导致全量重采;容器化部署时要注意把它挂载到持久目录。
日志量大时 pipeline_stages 里的多行合并与正则同样有 CPU 成本,规则要尽量简单并先缩窄采集范围。
DaemonSet 部署时容器日志路径来自宿主机挂载(常见 /var/log/pods),路径与 labels 要与集群实际情况对齐。
Promtail 自带 9080 端口暴露自身指标,采集是否正常、推送是否失败都可以从这里先看,比只翻 Loki 侧日志更直接。
静态配置适合目标固定的场景;节点或容器频繁变化时应改用 file_sd 或 Kubernetes 服务发现,避免每次扩缩容都要改配置。

易错点

  • 路径通配过宽把 .gz 历史归档也采进来,配合 exclude 或缩窄通配
  • 多作业共用同一文件会造成重复采集,一个文件只应归属一个 job
  • positions 未持久化会导致容器重启后全量重采,产生重复日志
  • labels 里写高基数值会让流数量暴涨,配置阶段就要按基数评估
  • 推送地址或鉴权配置错误时采集静默失败,需要看 Promtail 自身日志与指标才能发现
  • labels 与 Loki 侧查询约定不一致(如用 service 与 app 两种写法)会让看板与告警查不到数据

数据来源与参考

  • Grafana 官方文档 · Promtail configuration
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌