# https://raw.githubusercontent.com/grafana/loki/v2.8.0/production/docker-compose.yaml # https://grafana.com/docs/loki/latest/clients/docker-driver/ - name: Set up Loki hosts: lotus-land-story tasks: - name: Provision Grafana ansible.builtin.copy: dest: /mnt/lotus-land-story/grafana/provisioning/datasources/loki.yml content: | apiVersion: 1 datasources: - name: Loki type: loki access: proxy url: http://loki:3100 mode: "0644" - name: Create Loki config dirs ansible.builtin.file: path: /mnt/lotus-land-story/loki/{{ item }} state: directory owner: 10001 group: 10001 mode: "0755" loop: - config - data - name: Configure Loki ansible.builtin.copy: dest: /mnt/lotus-land-story/loki/config/loki.yml content: | auth_enabled: false server: http_listen_port: 3100 common: path_prefix: /loki storage: filesystem: chunks_directory: /loki/chunks rules_directory: /loki/rules replication_factor: 1 ring: kvstore: store: inmemory schema_config: configs: - from: 2020-10-24 store: boltdb-shipper object_store: filesystem schema: v11 index: prefix: index_ period: 24h storage_config: filesystem: directory: /data ruler: alertmanager_url: http://localhost:9093 owner: 10001 group: 10001 mode: "0644" # https://github.com/grafana/loki/issues/2361 - name: Configure Promtail ansible.builtin.copy: dest: /mnt/lotus-land-story/loki/config/promtail.yml content: | server: http_listen_port: 9080 grpc_listen_port: 0 positions: filename: /tmp/positions.yaml clients: - url: http://loki:3100/loki/api/v1/push scrape_configs: - job_name: system static_configs: - targets: - localhost labels: job: varlogs __path__: /var/log/*log - job_name: docker docker_sd_configs: - host: unix:///var/run/docker.sock refresh_interval: 5s relabel_configs: - source_labels: ['__meta_docker_container_name'] regex: '/(.*)' target_label: 'container' mode: "0644" - name: Run Loki community.docker.docker_container: # recreate: true # restart: true name: loki image: grafana/loki:2.8.0 command: -config.file=/mnt/config/loki.yml volumes: - /mnt/lotus-land-story/loki/config:/mnt/config - /mnt/lotus-land-story/loki/data:/data restart_policy: unless-stopped networks: - name: lotus_land_story etc_hosts: host.docker.internal: host-gateway - name: Run Promtail community.docker.docker_container: # recreate: true # restart: true name: promtail image: grafana/promtail:2.8.0 command: -config.file=/mnt/config/promtail.yml volumes: - /var/log:/var/log - /var/run/docker.sock:/var/run/docker.sock - /mnt/lotus-land-story/loki/config:/mnt/config restart_policy: unless-stopped networks: - name: lotus_land_story etc_hosts: host.docker.internal: host-gateway # vim: ft=yaml.ansible