added loki client role
This commit is contained in:
11
roles/docker_loki_client/defaults/main.yml
Normal file
11
roles/docker_loki_client/defaults/main.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
docker_loki_client_setup:
|
||||
config_folderpath: /etc/myLimbo/docker_loki_client
|
||||
docker_loki_client_config:
|
||||
hostname: ""
|
||||
journald:
|
||||
enabled: true
|
||||
docker:
|
||||
enabled: true
|
||||
loki:
|
||||
address: ""
|
||||
1
roles/docker_loki_client/handlers/main.yml
Normal file
1
roles/docker_loki_client/handlers/main.yml
Normal file
@@ -0,0 +1 @@
|
||||
---
|
||||
9
roles/docker_loki_client/meta/main.yml
Normal file
9
roles/docker_loki_client/meta/main.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
galaxy_info:
|
||||
author: your name
|
||||
description: your role description
|
||||
company: your company (optional)
|
||||
license: license (GPL-2.0-or-later, MIT, etc)
|
||||
min_ansible_version: 2.1
|
||||
galaxy_tags: []
|
||||
dependencies: []
|
||||
|
||||
64
roles/docker_loki_client/tasks/main.yml
Normal file
64
roles/docker_loki_client/tasks/main.yml
Normal file
@@ -0,0 +1,64 @@
|
||||
---
|
||||
|
||||
|
||||
- name: Ensure config folder exists
|
||||
become: true
|
||||
ansible.builtin.file:
|
||||
path: "{{ docker_loki_client_setup.config_folderpath }}"
|
||||
state: directory
|
||||
mode: '0755'
|
||||
|
||||
|
||||
- name: Deploy vector config
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: templates/vector.yaml.j2
|
||||
dest: "{{ docker_loki_client_setup.config_folderpath }}/vector.yaml"
|
||||
owner: root
|
||||
|
||||
- name: Docker vector container
|
||||
become: true
|
||||
community.docker.docker_container:
|
||||
name: vector
|
||||
capabilities:
|
||||
- SYS_ADMIN
|
||||
image: timberio/vector:latest-debian
|
||||
state: started
|
||||
restart_policy: unless-stopped
|
||||
pull: yes
|
||||
env:
|
||||
VECTOR_LOG: info
|
||||
volumes:
|
||||
- /var/log/journal:/var/log/journal:ro
|
||||
- /etc/machine-id:/etc/machine-id:ro
|
||||
- "{{ docker_loki_client_setup.config_folderpath}}:/etc/vector"
|
||||
|
||||
|
||||
- name: Deploy alloy config
|
||||
become: true
|
||||
ansible.builtin.template:
|
||||
src: templates/config.alloy.j2
|
||||
dest: "{{ docker_loki_client_setup.config_folderpath }}/config.alloy"
|
||||
owner: root
|
||||
|
||||
|
||||
- name: Docker alloy container
|
||||
become: true
|
||||
community.docker.docker_container:
|
||||
name: alloy
|
||||
image: grafana/alloy:latest
|
||||
state: started
|
||||
restart_policy: unless-stopped
|
||||
pull: yes
|
||||
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- /var/lib/docker/containers:/var/lib/docker/containers
|
||||
- "{{ docker_loki_client_setup.config_folderpath}}:/etc/alloy"
|
||||
env:
|
||||
ALLOY_CONFIG: /etc/alloy/config.alloy
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
39
roles/docker_loki_client/templates/config.alloy.j2
Normal file
39
roles/docker_loki_client/templates/config.alloy.j2
Normal file
@@ -0,0 +1,39 @@
|
||||
discovery.docker "linux" {
|
||||
host = "unix:///var/run/docker.sock"
|
||||
}
|
||||
|
||||
discovery.relabel "logs_integrations_docker" {
|
||||
targets = []
|
||||
|
||||
rule {
|
||||
source_labels = ["__meta_docker_container_name"]
|
||||
regex = "/(.*)"
|
||||
target_label = "container_name"
|
||||
}
|
||||
|
||||
rule {
|
||||
source_labels = ["__meta_docker_image_name"]
|
||||
regex = "(.*)"
|
||||
target_label = "image_name"
|
||||
}
|
||||
|
||||
rule {
|
||||
source_labels = ["__meta_docker_container_id"]
|
||||
regex = "(.*)"
|
||||
target_label = "container_id"
|
||||
}
|
||||
}
|
||||
|
||||
loki.source.docker "default" {
|
||||
host = "unix:///var/run/docker.sock"
|
||||
targets = discovery.docker.linux.targets
|
||||
labels = {"source" = "docker", host = "{{ docker_loki_client_config.hostname }} "}
|
||||
relabel_rules = discovery.relabel.logs_integrations_docker.rules
|
||||
forward_to = [loki.write.default.receiver]
|
||||
}
|
||||
|
||||
loki.write "default" {
|
||||
endpoint {
|
||||
url = "{{ docker_loki_client_config.loki.address }}/loki/api/v1/push"
|
||||
}
|
||||
}
|
||||
34
roles/docker_loki_client/templates/vector.yaml.j2
Normal file
34
roles/docker_loki_client/templates/vector.yaml.j2
Normal file
@@ -0,0 +1,34 @@
|
||||
sources:
|
||||
journald:
|
||||
type: journald
|
||||
|
||||
transforms:
|
||||
tag_journald:
|
||||
type: remap
|
||||
inputs:
|
||||
- journald
|
||||
source: |
|
||||
.source = "journald"
|
||||
.unit = ._SYSTEMD_UNIT
|
||||
.process = ._COMM
|
||||
.priority = .PRIORITY
|
||||
.host = "{{ docker_loki_client_config.hostname }}"
|
||||
|
||||
sinks:
|
||||
loki:
|
||||
type: loki
|
||||
inputs:
|
||||
- tag_journald
|
||||
endpoint: "{{ docker_loki_client_config.loki.address }}"
|
||||
healthcheck:
|
||||
enabled: false
|
||||
encoding:
|
||||
codec: json
|
||||
labels:
|
||||
{% raw %}
|
||||
host: "{{ .host }}"
|
||||
source: "{{ .source }}"
|
||||
unit: "{{ .unit }}"
|
||||
process: "{{ .process }}"
|
||||
priority: "{{ .priority }}"
|
||||
{% endraw %}
|
||||
6
roles/docker_loki_client/tests/playbook.yaml
Normal file
6
roles/docker_loki_client/tests/playbook.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
- name: Vector Install
|
||||
hosts:
|
||||
- all
|
||||
roles:
|
||||
- role: docker_loki_client
|
||||
#
|
||||
@@ -3,4 +3,3 @@
|
||||
- all
|
||||
roles:
|
||||
- role: vector
|
||||
|
||||
|
||||
Reference in New Issue
Block a user