bimdata.fluentbit

Ansibleロール Fluentbit

このロールはFluentbitをインストールし、設定します。

要件

  • このロールはAnsible >= 2.9でのみテストされています。

ロール変数

このロールは、手動でFluentbitをインストールした場合と同じデフォルト設定を維持しようとします。 各オプションについての詳細はFluentbitドキュメントを参照してください。

インストールに使用する変数:

変数名 デフォルト値 説明
fluentbit_prerequisites ['apt-transport-https', 'curl', 'gnupg'] Fluentbitをインストールする前に必要なパッケージのリスト。
fluentbit_apt_key_path "/usr/share/keyrings/fluentbit-keyring.gpg" Fluentbitキーを格納するためのAPTキーチェーンパス。
fluentbit_apt_key_url https://packages.fluentbit.io/fluentbit.key Fluentbitパッケージ用のAPTキー。
fluentbit_apt_repos_url "https://packages.fluentbit.io/{{ ansible_distribution lower }}/{{ ansible_distribution_release
fluentbit_apt_repos_component main APTリポジトリコンポーネント。
fluentbit_pkg_name fluent-bit Fluentbit APTパッケージ名。
fluentbit_pkg_version "" 特定のパッケージバージョンをインストール。
fluentbit_pkg_version_hold "{{ fluentbit_pkg_version default(False)
fluentbit_svc_name fluent-bit デーモンを起動/停止するためのFluentbitサービス名。
fluentbit_apt_cleanup_legacy false trueの場合、古いキーと古いAPTソースを削除。
fluentbit_apt_key_legacy_id F209D8762A60CD49E680633B4FF8368B6EA0722A キーチェーンから削除する古いGPGキーのID。
fluentbit_naming_cleanup_legacy false td-agent名の古いサービス/設定/APTを削除。
fluentbit_pkg_name_legacy td-agent-bit レガシークリーンアップで削除されるパッケージ名。
fluentbit_svc_name_legacy td-agent-bit レガシークリーンアップで削除されるサービス名。
fluentbit_conf_directory_legacy /etc/td-agent-bit/ レガシークリーンアップで削除される設定ディレクトリ。

一般設定に使用する変数:

変数名 デフォルト値 説明
fluentbit_svc_flush 5 フラッシュ時間(秒.ナノ秒形式)。
fluentbit_svc_grace 5 グレース時間(形式)。
fluentbit_svc_daemon "off" Fluentbitがデーモンとして実行されるかどうかのOn/Off値。提供されたSystemdユニットを使用する場合はOffにする必要があります。
fluentbit_svc_logfile "" オプションのログファイルの絶対パス。指定されていない場合はstdoutにログします。
fluentbit_svc_loglevel info ロギングの冗長性レベルを設定します。
fluentbit_svc_parsers_file ["parsers.conf"] パーサー設定ファイルのパスのリスト。
fluentbit_svc_plugins_file ["plugins.conf"] プラグイン設定ファイルのパスのリスト。
fluentbit_svc_streams_file [] ストリーム処理設定ファイルのパスのリスト。
fluentbit_managed_parsers_enable "{{ ((_fluentbit_parsers length) or (_fluentbit_mlparsers
fluentbit_managed_parsers_file "{{ fluentbit_conf_directory }}/managed-parsers.conf" 必要に応じてカスタムパーサーが定義されるファイル。
fluentbit_svc_http {} HTTP内蔵サーバー設定のための辞書。
fluentbit_svc_storage {} ストレージ/バッファ設定のための辞書。
fluentbit_svc_limit_open_files 未定義 定義されている場合にシステムdサービスのLimitNOFILEを設定します。

fluentbit_svc_httpの各キーは、設定オプション名として使用され、値はそのまま値として使用されます。 ただし、HTTP_プレフィックスを追加する必要はありません。テンプレートによって追加されます。 例えば、次のように定義できます:

fluentbit_svc_http:
  server: On
  listen: 0.0.0.0
  port: "{{ fluentbit_monitoring_port }}"

fluentbit_svc_storageも同様で、storage.プレフィックスを指定する必要はありません。 例:

fluentbit_svc_storage:
  path: /var/log/flb-storage/
  sync: full
  checksum: "off"

その他の変数:

変数名 デフォルト値 説明
fluentbit_dbs_path "" ロールによって作成されるディレクトリのパス。入力DBファイルを保存するための例。

ログ処理のための変数:

変数名 デフォルト値 説明
_fluentbit_inputs "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='input') }}" すべてのログ入力を定義する辞書のリスト。
_fluentbit_filters "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='filter') }}" すべてのログフィルタを定義する辞書のリスト。
_fluentbit_outputs "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='output') }}" すべてのログ出力を定義する辞書のリスト。
_fluentbit_parsers "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='parser') }}" すべてのログ管理パーサーを定義する辞書のリスト。
_fluentbit_mlparsers "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='mlparser') }}" すべてのログ管理マルチラインパーサーを定義する辞書のリスト。

ほとんどの場合、これらの変数を変更するべきではありません。 テンプレートを使用してこれらのリストを他の変数と組み合わせて構築します。

  • _fluentbit_inputs は、名前がこの正規表現に一致するすべての変数を集約します: ^fluentbit_.+_input(s)?$'
  • _fluentbit_filters は、名前がこの正規表現に一致するすべての変数を集約します: ^fluentbit_.+_filter(s)?$'
  • _fluentbit_outputs は、名前がこの正規表現に一致するすべての変数を集約します: ^fluentbit_.+_output(s)?$'
  • _fluentbit_parsers は、名前がこの正規表現に一致するすべての変数を集約します: ^fluentbit_.+_parser(s)?$'
  • _fluentbit_outputs は、名前がこの正規表現に一致するすべての変数を集約します: ^fluentbit_.+_mlparser(s)?$'

これらの正規表現に一致する各変数は:

  • 入力/フィルタ/出力/パーサーを定義する辞書 または
  • 1つ以上の入力/フィルタ/出力/パーサーを定義する辞書のリストである必要があります。

各辞書はFluentbit設定ファイル内や管理パーサーファイルにおける1つの[INPUT][FILTER][OUTPUT][PARSER]、または[MULTILINE_PARSER]セクションを定義するために使用されます。それぞれの設定セクションはキー/値のペアで構成されているため、辞書のキーは設定のキーとして、値はその値として使用されます。

例えば:

fluentbit_nginx_input:
  - name: tail
    path: /var/log/nginx/access.log
  - name: tail
    path: /var/log/nginx/error.log

fluentbit_kernel_input:
  name: tail
  path: /var/log/kern.log

は次のように作成されます:

[INPUT]
  name tail
  path /var/log/nginx/access.log
[INPUT]
  name tail
  path /var/log/nginx/error.log
[INPUT]
  name tail
  path /var/log/kern.log

これにより、複数のgroup_varsで変数を定義し、それを複数のグループのホストに累積することができ、完全なリストを再記述する必要がなくなります。

Ansibleの辞書は同じキーを複数回持つことができません。これが recordのようなものを使用する際の問題になり得ます。 この問題を克服するために、各キーは番号でプレフィックス付けされ、それはテンプレートファイル内で削除されます。このプレフィックスはこの正規表現に一致する必要があります: '^[0-9]+__'

例えば:

fluentbit_add_context_filter:
  - name: record_modifier
    match: '*'
    0__record: hostname ${HOSTNAME}
    1__record: product Awesome_Tool

は次のように作成されます:

[FILTER]
  name record_modifier
  match *
  record hostname ${HOSTNAME}
  record product Awesome_Tool

依存関係

なし

例プレイブック

group_vars/all.yml内:

fluentbit_kernel_input:
  name: tail
  path: /var/log/kern.log

fluentbit_env_filter:
  name: record_modifier
  match: '*'
  record: "env {{ env }}"
  
fluentbit_central_output:
  name: forward
  match: '*'
  host: "{{ logs_server_address }}"
  port: "{{ log_forward_port }}"

group_vars/web.yml内:

fluentbit_nginx_input:
  - name: tail
    path: /var/log/nginx/access.log
  - name: tail
    path: /var/log/nginx/error.log

playbook.yml内:

- hosts: web
  gather_facts: True
  become: yes
  roles:
    - bimdata.fluentbit

ライセンス

BSD

著者情報

BIMData.io

プロジェクトについて

This role installs and configures Fluentbit.

インストール
ansible-galaxy install bimdata.fluentbit
ライセンス
mit
ダウンロード
2.7k
所有者