This commit is contained in:
Pim Kunis 2023-08-09 21:06:25 +02:00
commit d265705364
8 changed files with 180 additions and 0 deletions

10
ansible.cfg Normal file
View file

@ -0,0 +1,10 @@
[defaults]
roles_path=~/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:roles
inventory=inventory
# vault_password_file=util/secret-service-client.sh
interpreter_python=/usr/bin/python3
host_key_checking = False
remote_user = root
[diff]
always = True

4
fluentbit.yml Normal file
View file

@ -0,0 +1,4 @@
- name: Install fluentbit
hosts: hypervisors
roles:
- {role: fluentbit, tags: fluentbit}

10
inventory/hosts.yml Normal file
View file

@ -0,0 +1,10 @@
all:
children:
hypervisors:
hosts:
atlas:
ansible_host: atlas.hyp
jefke:
ansible_host: jefke.hyp
lewis:
ansible_host: lewis.hyp

View file

@ -0,0 +1,119 @@
# vi: ft=conf
[SERVICE]
# Flush
# =====
# set an interval of seconds before to flush records to a destination
flush 1
# Daemon
# ======
# instruct Fluent Bit to run in foreground or background mode.
daemon Off
# Log_Level
# =========
# Set the verbosity level of the service, values can be:
#
# - error
# - warning
# - info
# - debug
# - trace
#
# by default 'info' is set, that means it includes 'error' and 'warning'.
log_level info
# Parsers File
# ============
# specify an optional 'Parsers' configuration file
parsers_file parsers.conf
# Plugins File
# ============
# specify an optional 'Plugins' configuration file to load external plugins.
plugins_file plugins.conf
# HTTP Server
# ===========
# Enable/Disable the built-in HTTP Server for metrics
http_server Off
http_listen 0.0.0.0
http_port 2020
# Storage
# =======
# Fluent Bit can use memory and filesystem buffering based mechanisms
#
# - https://docs.fluentbit.io/manual/administration/buffering-and-storage
#
# storage metrics
# ---------------
# publish storage pipeline metrics in '/api/v1/storage'. The metrics are
# exported only if the 'http_server' option is enabled.
#
storage.metrics on
# storage.path
# ------------
# absolute file system path to store filesystem data buffers (chunks).
#
# storage.path /tmp/storage
# storage.sync
# ------------
# configure the synchronization mode used to store the data into the
# filesystem. It can take the values normal or full.
#
# storage.sync normal
# storage.checksum
# ----------------
# enable the data integrity check when writing and reading data from the
# filesystem. The storage layer uses the CRC32 algorithm.
#
# storage.checksum off
# storage.backlog.mem_limit
# -------------------------
# if storage.path is set, Fluent Bit will look for data chunks that were
# not delivered and are still in the storage layer, these are called
# backlog data. This option configure a hint of maximum value of memory
# to use when processing these records.
#
# storage.backlog.mem_limit 5M
[INPUT]
Name cpu
Tag cpu
# Read interval (sec) Default: 1
Interval_sec 1
[INPUT]
Name exec
Tag memory
Command free -m | tail -2 | tr '\n' ' '
Interval_Sec 1
[OUTPUT]
Name forward
Match *
Host maestro.dmz
Port {{ fluent_forward_port }}
[FILTER]
Name parser
Match memory
Key_Name exec
Parser free
[FILTER]
Name record_modifier
Match *
Record hostname ${HOSTNAME}
[FILTER]
Name record_modifier
Match cpu
Allowlist_key hostname
Allowlist_key cpu_p

View file

@ -0,0 +1,4 @@
- name: restart fluent-bit
systemd:
name: fluent-bit
state: restarted

View file

@ -0,0 +1,6 @@
# vi: ft=conf
[PARSER]
Name free
Format regex
Regex ^Mem:\s+(?<mem_total>\d+)\s+(?<mem_used>\d+)\s+(?<mem_free>\d+)\s+(?<mem_shared>\d+)\s+(?<mem_buff_cache>\d+)\s+(?<mem_available>\d+) Swap:\s+(?<swap_total>\d+)\s+(?<swap_used>\d+)\s+(?<swap_free>\d+)
Types mem_total:integer mem_used:integer mem_free:integer mem_shared:integer mem_buff_cache:integer mem_available:integer swap_total:integer swap_used:integer

View file

@ -0,0 +1,26 @@
- name: Install APT key
apt_key:
url: https://packages.fluentbit.io/fluentbit.key
state: present
- name: Install APT repository
apt_repository:
repo: "deb https://packages.fluentbit.io/debian/{{ ansible_distribution_release }} {{ ansible_distribution_release }} main"
state: present
update_cache: true
- name: Install fluent-bit
apt:
name: fluent-bit
- name: Copy fluent-bit configuration
template:
src: "{{ role_path }}/fluent-bit.conf.j2"
dest: /etc/fluent-bit/fluent-bit.conf
notify: restart fluent-bit
- name: Copy fluent-bit parsers configuration
template:
src: "{{ role_path }}/parsers.conf.j2"
dest: /etc/fluent-bit/parsers.conf
notify: restart fluent-bit

View file

@ -0,0 +1 @@
fluent_forward_port: 24224