summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2024-04-22 19:54:35 +0200
committerChristian Pointner <equinox@spreadspace.org>2024-05-05 16:15:46 +0200
commit320dcc2beb41d6c9db1a76065252634e162c92d4 (patch)
tree683989bc660468ef9b0a88d91d4a045eba62b72b
parentzimablade is now zimaplayer (diff)
add loki roles (W.I.P.)topic/loki
-rw-r--r--inventory/host_vars/ch-testvm-prometheus.yml9
-rw-r--r--roles/monitoring/loki/promtail/defaults/main.yml1
-rw-r--r--roles/monitoring/loki/promtail/handlers/main.yml1
-rw-r--r--roles/monitoring/loki/promtail/tasks/main.yml1
-rw-r--r--roles/monitoring/loki/server/defaults/main.yml54
-rw-r--r--roles/monitoring/loki/server/handlers/main.yml5
-rw-r--r--roles/monitoring/loki/server/tasks/main.yml47
7 files changed, 118 insertions, 0 deletions
diff --git a/inventory/host_vars/ch-testvm-prometheus.yml b/inventory/host_vars/ch-testvm-prometheus.yml
index 879ef694..bed5a41f 100644
--- a/inventory/host_vars/ch-testvm-prometheus.yml
+++ b/inventory/host_vars/ch-testvm-prometheus.yml
@@ -37,3 +37,12 @@ network:
ntp_variant: systemd-timesyncd
sshd_allowusers_host: "{{ normal_users_host | union(admin_users_host) | union(['greenbone']) }}"
+
+######################################################################
+
+loki_storage:
+ type: lvm
+ vg: "{{ host_name }}"
+ lv: loki
+ size: 2G
+ fs: ext4
diff --git a/roles/monitoring/loki/promtail/defaults/main.yml b/roles/monitoring/loki/promtail/defaults/main.yml
new file mode 100644
index 00000000..ed97d539
--- /dev/null
+++ b/roles/monitoring/loki/promtail/defaults/main.yml
@@ -0,0 +1 @@
+---
diff --git a/roles/monitoring/loki/promtail/handlers/main.yml b/roles/monitoring/loki/promtail/handlers/main.yml
new file mode 100644
index 00000000..ed97d539
--- /dev/null
+++ b/roles/monitoring/loki/promtail/handlers/main.yml
@@ -0,0 +1 @@
+---
diff --git a/roles/monitoring/loki/promtail/tasks/main.yml b/roles/monitoring/loki/promtail/tasks/main.yml
new file mode 100644
index 00000000..ed97d539
--- /dev/null
+++ b/roles/monitoring/loki/promtail/tasks/main.yml
@@ -0,0 +1 @@
+---
diff --git a/roles/monitoring/loki/server/defaults/main.yml b/roles/monitoring/loki/server/defaults/main.yml
new file mode 100644
index 00000000..d97c323a
--- /dev/null
+++ b/roles/monitoring/loki/server/defaults/main.yml
@@ -0,0 +1,54 @@
+---
+# loki_version:
+
+# loki_storage:
+# type: ...
+
+loki_http_addr: ""
+loki_http_port: 3100
+#loki_http_tls:
+# certificate_provider: ...
+
+loki_grpc_addr: ""
+loki_grpc_port: 9096
+#loki_grpc_tls:
+# certificate_provider: ...
+
+loki_config:
+ auth_enabled: false
+ analytics:
+ reporting_enabled: false
+
+ server:
+ http_listen_address: "{{ loki_http_addr }}"
+ http_listen_port: "{{ loki_http_port }}"
+ grpc_listen_address: "{{ loki_grpc_addr }}"
+ grpc_listen_port: "{{ loki_grpc_port }}"
+
+ common:
+ instance_addr: 127.0.0.1
+ path_prefix: /var/lib/loki
+ storage:
+ filesystem:
+ chunks_directory: /var/lib/loki/chunks
+ rules_directory: /var/lib/loki/rules
+ replication_factor: 1
+ ring:
+ kvstore:
+ store: inmemory
+
+ query_range:
+ results_cache:
+ cache:
+ embedded_cache:
+ enabled: true
+
+ schema_config:
+ configs:
+ - from: 2020-10-24
+ store: tsdb
+ object_store: filesystem
+ schema: v13
+ index:
+ prefix: index_
+ period: 24h
diff --git a/roles/monitoring/loki/server/handlers/main.yml b/roles/monitoring/loki/server/handlers/main.yml
new file mode 100644
index 00000000..6199af48
--- /dev/null
+++ b/roles/monitoring/loki/server/handlers/main.yml
@@ -0,0 +1,5 @@
+---
+- name: restart loki
+ service:
+ name: loki
+ state: restarted
diff --git a/roles/monitoring/loki/server/tasks/main.yml b/roles/monitoring/loki/server/tasks/main.yml
new file mode 100644
index 00000000..20c821a3
--- /dev/null
+++ b/roles/monitoring/loki/server/tasks/main.yml
@@ -0,0 +1,47 @@
+---
+- name: add debian repository
+ include_role:
+ name: apt-repo/grafana
+
+- name: generate apt pin file for loki packages
+ when: loki_version is defined
+ copy:
+ dest: "/etc/apt/preferences.d/loki.pref"
+ content: |
+ Package: loki logcli
+ Pin: version {{ loki_version }}
+ Pin-Priority: 1001
+
+- name: remove apt pin file for loki package
+ when: loki_version is not defined
+ file:
+ path: "/etc/apt/preferences.d/loki.pref"
+ state: absent
+
+- name: install apt packages
+ apt:
+ name:
+ - "loki{% if loki_version is defined %}={{ loki_version }}{% endif %}"
+ - "logcli{% if loki_version is defined %}={{ loki_version }}{% endif %}"
+ state: present
+ allow_downgrade: yes
+
+- name: prepare storage volume for /var/lib/loki
+ when: loki_storage is defined
+ vars:
+ storage_volume: "{{ loki_storage | combine({'dest': '/var/lib/loki'}) }}"
+ include_role:
+ name: "storage/{{ loki_storage.type }}/volume"
+
+- name: prepare loki base directory
+ file:
+ path: /var/lib/loki
+ state: directory
+ owner: loki
+ mode: 0700
+
+- name: make sure loki is enabled and started
+ systemd:
+ name: loki
+ state: started
+ enabled: yes