r/f-b-arr: Configure Fluent Bit for Servarr logs
The _fluent-bit-servarr_ role creates a configuration file for Fluent Bit to read and parse logs from Radarr, Sonarr, and Prowlarr. These logs can then be sent to an output by defining the `fluent_bit_servarr_outputs` variable.
This commit is contained in:
1
roles/fluent-bit-servarr/defaults/main.yml
Normal file
1
roles/fluent-bit-servarr/defaults/main.yml
Normal file
@@ -0,0 +1 @@
|
||||
fluent_bit_servarr_outputs: []
|
||||
4
roles/fluent-bit-servarr/handlers/main.yml
Normal file
4
roles/fluent-bit-servarr/handlers/main.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
- name: restart fluent-bit
|
||||
service:
|
||||
name: fluent-bit
|
||||
state: restarted
|
||||
2
roles/fluent-bit-servarr/meta/main.yml
Normal file
2
roles/fluent-bit-servarr/meta/main.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
dependencies:
|
||||
- role: systemd-base
|
||||
12
roles/fluent-bit-servarr/tasks/main.yml
Normal file
12
roles/fluent-bit-servarr/tasks/main.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
- name: ensure fluent-bit configuration for servarr is in place
|
||||
copy:
|
||||
content: |+
|
||||
{{ fluent_bit_servarr_config | to_nice_yaml(indent=2) }}
|
||||
dest: /etc/fluent-bit/include/servarr.yml
|
||||
mode: u=rw,go=r
|
||||
owner: root
|
||||
group: root
|
||||
notify:
|
||||
- restart fluent-bit
|
||||
tags:
|
||||
- config
|
||||
45
roles/fluent-bit-servarr/vars/main.yml
Normal file
45
roles/fluent-bit-servarr/vars/main.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
servarr_logs:
|
||||
- /var/log/prowlarr/*.txt
|
||||
- /var/log/radarr/*.txt
|
||||
- /var/log/sonarr/*.txt
|
||||
|
||||
fluent_bit_servarr_config:
|
||||
multiline_parsers:
|
||||
- name: multiline_servarr
|
||||
type: regex
|
||||
flush_timeout: 500
|
||||
rules:
|
||||
- state: start_state
|
||||
regex: ^\d{4}-\d{2}-\d{2} [ 0-2]?\d:\d{2}:\d{2}\.\d+\|
|
||||
next_state: cont
|
||||
- state: cont
|
||||
regex: ^(?!\d{4}-\d{2}-\d{2} [ 0-2]?\d:\d{2}:\d{2}\.\d+\|).*
|
||||
next_state: cont
|
||||
|
||||
parsers:
|
||||
- name: servarr
|
||||
format: regex
|
||||
regex: /^(?<timestamp>\d{4}-\d{2}-\d{2} [ 0-2]?\d:\d{2}:\d{2}\.\d+)\|(?<level>[^|]+)\|(?<logger>[^|]+)\|(?<log>.*)/m
|
||||
time_key: timestamp
|
||||
time_format: '%Y-%m-%d %H:%M:%S.%L'
|
||||
|
||||
pipeline:
|
||||
inputs:
|
||||
- name: tail
|
||||
alias: servarr
|
||||
tag: servarr
|
||||
path: '{{ servarr_logs | join(",") }}'
|
||||
path_key: filename
|
||||
multiline.parser: multiline_servarr
|
||||
db: /var/lib/fluent-bit/servarr.db
|
||||
read_from_head: true
|
||||
|
||||
filters:
|
||||
- name: parser
|
||||
alias: servarr
|
||||
match: servarr
|
||||
key_name: log
|
||||
parser: servarr
|
||||
reserve_data: true
|
||||
|
||||
outputs: '{{ fluent_bit_servarr_outputs }}'
|
||||
@@ -1,3 +1,9 @@
|
||||
- import_playbook: prowlarr.yml
|
||||
- import_playbook: radarr.yml
|
||||
- import_playbook: sonarr.yml
|
||||
|
||||
- hosts: servarr
|
||||
roles:
|
||||
- role: fluent-bit-servarr
|
||||
tags:
|
||||
- fluent-bit
|
||||
|
||||
Reference in New Issue
Block a user