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

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

@ -45,6 +45,12 @@
- docker-compose-plugin
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
ansible.builtin.file:
path: /mnt/lotus-land-story/docker

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

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

@ -13,3 +13,7 @@ prometheus.{{ domain }} {
grafana.{{ domain }} {
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",
"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