main
Alpha Chen 2 years ago
parent 7f6c7eb9a1
commit 58c05cbe00
Signed by: alpha
SSH Key Fingerprint: SHA256:3fOT8fiYQG/aK9ntivV3Bqtg8AYQ7q4nV6ZgihOA20g

@ -22,6 +22,7 @@
- name: Run caddy - name: Run caddy
community.docker.docker_compose: community.docker.docker_compose:
project_name: caddy project_name: caddy
remove_orphans: true
definition: definition:
version: "3.3" version: "3.3"
services: services:

@ -45,6 +45,12 @@
- docker-compose-plugin - docker-compose-plugin
update_cache: true update_cache: true
- name: Install Loki Docker driver
community.docker.docker_plugin:
plugin_name: grafana/loki-docker-driver
alias: loki
state: enable
- name: Create Docker volume location - name: Create Docker volume location
ansible.builtin.file: ansible.builtin.file:
path: /mnt/lotus-land-story/docker path: /mnt/lotus-land-story/docker

@ -10,16 +10,18 @@
loop: loop:
- datasources - datasources
- name: Configure grafana - name: Configure Grafana
ansible.builtin.copy: ansible.builtin.copy:
dest: /mnt/lotus-land-story/grafana/grafana.ini dest: /mnt/lotus-land-story/grafana/grafana.ini
content: | content: |
[metrics] [metrics]
enabled = true enabled = true
disable_total_stats = false disable_total_stats = false
[server]
domain = grafana.{{ domain }}
mode: "0644" mode: "0644"
- name: Provision Grafana - name: Provision Prometheus
ansible.builtin.copy: ansible.builtin.copy:
dest: /mnt/lotus-land-story/grafana/provisioning/datasources/prometheus.yml dest: /mnt/lotus-land-story/grafana/provisioning/datasources/prometheus.yml
content: | content: |

@ -0,0 +1,87 @@
# 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://host.docker.internal:3100
mode: "0644"
- name: Create Loki config dirs
ansible.builtin.file:
path: /mnt/lotus-land-story/loki/{{ item }}
state: directory
mode: "0755"
loop:
- config
- data
- name: Configure Loki
ansible.builtin.copy:
dest: /mnt/lotus-land-story/loki/config/config.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
mode: "0644"
- name: Run Loki
community.docker.docker_compose:
project_name: loki
remove_orphans: true
definition:
version: "3.3"
services:
loki:
image: grafana/loki:2.8.0
ports:
- "3100:3100"
command: -config.file=/mnt/config/config.yml
volumes:
- /mnt/lotus-land-story/loki/config:/mnt/config
- /mnt/lotus-land-story/loki/data:/data
restart: unless-stopped
extra_hosts:
- "host.docker.internal:host-gateway"
# vim: ft=yaml.ansible

@ -57,7 +57,7 @@ resource "linode_domain_record" "subdomains" {
record_type = "A" record_type = "A"
target = resource.linode_instance.lotus_land_story.ip_address target = resource.linode_instance.lotus_land_story.ip_address
for_each = toset(["rss", "prometheus", "grafana"]) for_each = toset(["rss", "prometheus", "grafana", "loki"])
name = each.key name = each.key
} }

@ -49,6 +49,7 @@
- name: Run miniflux - name: Run miniflux
community.docker.docker_compose: community.docker.docker_compose:
project_name: miniflux project_name: miniflux
remove_orphans: true
definition: definition:
version: "3.3" version: "3.3"
services: services:

@ -13,3 +13,7 @@ prometheus.{{ domain }} {
grafana.{{ domain }} { grafana.{{ domain }} {
reverse_proxy host.docker.internal:3000 reverse_proxy host.docker.internal:3000
} }
loki.{{ domain }} {
reverse_proxy host.docker.internal:3100
}

@ -1,4 +1,8 @@
{ {
"data-root": "/mnt/lotus-land-story/docker", "data-root": "/mnt/lotus-land-story/docker",
"metrics-addr": "{{ docker_ip.address }}:9323" "metrics-addr": "{{ docker_ip.address }}:9323",
"log-driver": "loki",
"log-opts": {
"loki-url": "http://localhost:3100/loki/api/v1/push"
}
} }

Loading…
Cancel
Save