Catatan

Asumsi kamu sudah punya Loki, Nginx dan Grafana yang sudah terinstall di server

How To

  1. Buat 1 file compose
name: promtail
services:
  promtail:
    image: grafana/promtail:latest
    container_name: promtail-ctr
    hostname: promtail
    #you can enable to it for debug
    logging:
        driver: none
    volumes:
      - /var/log/nginx/:/var/log/nginx/:ro
      - ./promtail-config.yml:/etc/promtail/promtail-config.yml:ro
      - ./var-promtail:/var/promtail
    command: -config.file=/etc/promtail/promtail-config.yml
    restart: unless-stopped
    network_mode: host
  1. Buat promtail-config.yml
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /var/promtail/positions.yaml

clients:
  - url: http://192.168.1.1:3100/loki/api/v1/push

scrape_configs:
  - job_name: nginx-access
    static_configs:
      - targets:
          - localhost
        labels:
          job: nginx
          log_type: access
          host: nginx-server
          __path__: /var/log/nginx/*.log
    pipeline_stages:
      - regex:
          expression: '^(?P<remote_addr>[\w\.:]+) - (?P<remote_user>[^ ]*) \[(?P<time_local>.*)\] "(?P<method>[^ ]*) (?P<request>[^ ]*) (?P<protocol>[^ ]*)" (?P<status>[\d]+) (?P<body_bytes_sent>[\d]+) "(?P<http_referer>[^"]*)" "(?P<http_user_agent>[^"]*)"'
      - labels:
          method:
          status:
      - timestamp:
          source: time_local
          format: 02/Jan/2006:15:04:05 -0700
  1. Jalankan docker compose up -d

  2. Masuk ke Grafana, cari menu di samping, pilih “Explore”, lalu pilih “Loki”

  3. Untuk contoh query {host="nginx-server", filename="/var/log/nginx/ipang.my.id.log"}