promtail の config を更新しても反映されない時の対処法

QNAP TS-262 に docker でログ収集サーバを立てたときにハマった話です。自分用メモ。

TL;DR

promtail のコンテナに入って rm -f /tmp/positions.yaml のち、docker compose restart でデーモン再起動。これで変更が反映されて grafana からも見られる。

docker-compose.yml

こんな感じにしてます。

version: '3'

networks:
  loki:

services:
  rsyslog:
    build: ./rsyslog
    container_name: rsyslog
    volumes:
      - ./rsyslog/rsyslog.conf:/etc/rsyslog.conf
      - /var/log:/var/rsyslog
      - ./rsyslog/logrotate.d:/etc/logrotated.d
    ports:
      - 514:514
    networks:
      - loki

  loki:
    image: grafana/loki:2.9.2
    container_name: loki
    ports:
      - 3100:3100
    volumes:
      - ./config/loki-config.yaml:/etc/loki/local-config.yaml
    command: -config.file=/etc/loki/local-config.yaml
    networks:
      - loki

  promtail:
    image: grafana/promtail:2.9.2
    container_name: promtail
    volumes:
      - /var/log:/var/log
      - ./config/promtail-config.yaml:/etc/promtail/config.yaml
    command: -config.file=/etc/promtail/config.yaml
    networks:
      - loki

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    ports:
      - 3000:3000
    volumes:
      - grafana-storage:/var/lib/grafana
    networks:
      - loki

volumes:
  grafana-storage:
    name: grafana-storage

参考

change to promtail yaml config not reflected in grafana/loki – Stack Overflow
神。Super Thanks!!!!