artem_shestakov.fluentbit

Rola Ansible Fluent-bit

Prosta rola do instalacji i konfiguracji Fluent-bit

Zmienne Roli

Konfiguracja

Nazwa Opis Domyślnie
fluentbit_config_path Ścieżka do pliku konfiguracyjnego i parserów /etc/fluent-bit
fluentbit_flush Ustaw czas flush w sekundach. Pętla silnika używa limitu Flush, aby określić, kiedy należy wyczyścić rekordy pobrane przez wtyczki wejściowe przez zdefiniowane wtyczki wyjściowe. 5
fluentbit_grace Ustaw czas oczekiwania w sekundach jako wartość całkowitą. Pętla silnika używa limitu Grace, aby określić czas oczekiwania przed wyjściem 5
fluentbit_daemon Wartość logiczna do ustawienia, czy Fluent Bit powinien działać jako demon (w tle) czy nie. Dozwolone wartości: tak, nie, on i off off
fluentbit_dns_mode Ustaw główny protokół transportu używany przez asynchroniczny resolver DNS, który może być nadpisany dla poszczególnych wtyczek UDP
fluentbit_log_file Absolutna ścieżka do opcjonalnego pliku dziennika. Domyślnie wszystkie dzienniki są przekazywane do standardowego interfejsu błędów (stderr).
fluentbit_log_level Ustaw poziom szczegółowości dziennika. info
fluentbit_http_server Włącz wbudowany serwer HTTP off
fluentbit_http_listen Ustaw interfejs nasłuchujący dla serwera HTTP, gdy jest włączony 0.0.0.0
fluentbit_http_port Ustaw port TCP dla serwera HTTP 2020
fluentbit_coro_stack_size Ustaw rozmiar stosu współrzędnych w bajtach. Wartość musi być większa niż rozmiar strony działającego systemu. Nie ustawiaj zbyt małej wartości (np. 4096), ponieważ wątki współrzędne mogą przepełnić bufor stosu. Nie zmieniaj domyślnej wartości, chyba że wiesz, co robisz 24576
fluentbit_scheduler_cap Ustaw maksymalny czas ponownego próby w sekundach. Właściwość jest wspierana od v1.8.7. 2000
fluentbit_scheduler_base Ustaw podstawę eksponencjalnej strategii ponownej. Właściwość jest wspierana od v1.8.7. 5
fluentbit_inputs Sekcja wejściowa definiuje źródło (związane z wtyczką wejściową) Nazwa: forward
Nasłuch: 0.0.0.0
Port: 24224
fluentbit_outputs Sekcja wyjściowa określa miejsce, do którego określone rekordy powinny trafić po dopasowaniu Tagu Nazwa: srdout
Dopasowanie: '*'

Pipeline

  • fluentbit_inputs - lista wejść (źródeł). Każdy element wejścia to kolekcja słownika par klucz/wartość. Wartość domyślna:
fluentbit_inputs:
  - Name: forward
    Listen: 0.0.0.0
    Port: 24224
  • fluentbit_outputs - lista wyjść (opuszczalników). Każdy element wyjścia to kolekcja słownika par klucz/wartość. Wartość domyślna:
fluentbit_outputs:
  - Name: stdout
    Match: '*'
  • fluentbit_filters - lista filtrów. Każdy element to kolekcja słownika par klucz/wartość. Wartość domyślna to []. Przykład:
---
- name: Uruchom usługę fluent-bit
  hosts: "{{ lookup('env', 'TARGET') }}"
  become: true
  roles:
    - role: artem_shestakov.fluentbit
      version: "v1.0.0"
  vars:
    fluentbit_inputs:
      - Name: forward
        Listen: 0.0.0.0
        Port: 24224
      - Name: syslog
        Tag: haproxy
        Path: /var/lib/haproxy/dev/log
        Unix_Perm: "0666"
    fluentbit_filters:
      - Name: record_modifier
        Match: "*"
        Record: hostname ${HOSTNAME}
      - Name: parser
        Match: "*"
        Key_Name: data
        Parser: syslog-rfc3164-local
    fluentbit_outputs:
      - Name: es
        Match: *
        Host: 192.168.2.3
        Port: 9200
        Index: my_index
        Type: my_type
    fluentbit_parsers:
      - Name: syslog-rfc3164-local
        Format: regex
        Regex: ^\<(?<pri>[0-9]+)\>(?<time>[^ ]* {1,2}[^ ]* [^ ]*) (?<ident>[a-zA-Z0-9_\/\.\-]*)(?:\[(?<pid>[0-9]+)\])?(?:[^\:]*\:)? *(?<message>.*)$
        Time_Key: time
        Time_Format: '%b %d %H:%M:%S'
        Time_Keep: On
  • fluentbit_parsers - lista parserów. Każdy element parsera to kolekcja słownika par klucz/wartość. Wartość domyślna to []. Przykład:
fluentbit_parsers:
  - Name: named-capture-test
    Format: regex
    Regex: /^(?<date>[a-zA-Z]+ \d+ \d+\:\d+\:\d+) (?<message>.*)/m
  - Name: docker
    Format: json
    Time_Key: time
    Time_Format: "%Y-%m-%dT%H:%M:%S %z"
  • fluentbit_multiline_parsers - lista parserów wieloliniowych. Każdy element parsera to kolekcja słownika par klucz/wartość. Każdy parser powinien zawierać listę rules. Każda reguła to słownik z trzema elementami: state_name, regex_pattern oraz next_state. Wartość domyślna to []. Przykład:
fluentbit_multiline_parsers:
  - name: multiline-regex-test
    type: regex
    flush_timeout: 1000
    rules:
      - state_name: start_state
        regex_pattern: /([a-zA-Z]+ \d+ \d+\:\d+\:\d+)(.*)/
        next_state: cont
      - state_name: cont
        regex_pattern: /^\s+at.*/
        next_state: cont

Przykładowy Playbook

przykład tutaj

Licencja

BSD

Informacje o autorze

Artem Shestakov artem.s.shestakov@yandex.ru

O projekcie

Ansible role to install Fluent bit https://fluentbit.io/

Zainstaluj
ansible-galaxy install artem_shestakov.fluentbit
Licencja
Unknown
Pobrania
5.3k
Właściciel