|
|
|
# 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
|