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
著者情報
ansible-galaxy install bimdata.fluentbit