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 | lower }}" | 安装 Fluentbit 所需的 APT 存储库地址。 |
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) | ternary(True, False) }}" | 锁定包版本以防止意外更新。如果定义了 fluentbit_pkg_version ,默认值为 True ,否则为 False 。 |
fluentbit_svc_name | fluent-bit | 启动/停止守护进程的 Fluentbit 服务名称。 |
fluentbit_apt_cleanup_legacy | false | 如果为真,则删除旧密钥和旧的 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 是否作为守护进程运行的开关值。当使用提供的 Systemd 单元时应为 Off。 |
fluentbit_svc_logfile | "" | 用于可选日志文件的绝对路径。如果未指定则记录到 stdout。 |
fluentbit_svc_loglevel | info | 设置日志的详细程度。 |
fluentbit_svc_parsers_file | ["parsers.conf"] | parsers 配置文件的路径列表。 |
fluentbit_svc_plugins_file | ["plugins.conf"] | plugins 配置文件的路径列表。 |
fluentbit_svc_streams_file | [] | stream processors 配置文件的路径列表。 |
fluentbit_managed_parsers_enable | "{{ ((_fluentbit_parsers | length) or (_fluentbit_mlparsers | length)) | bool }}" | 定义是否应由 Ansible 创建/更新用户定义的解析器的自定义文件。 |
fluentbit_managed_parsers_file | "{{ fluentbit_conf_directory }}/managed-parsers.conf" | 如果需要定义自定义解析器的文件。 |
fluentbit_svc_http | {} | 内置 HTTP 服务器配置的字典。 |
fluentbit_svc_storage | {} | 存储/缓冲区配置的字典。 |
fluentbit_svc_limit_open_files | Undefined | 如果定义则配置 systemd 服务的 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)?$'
的变量。
每个与这些正则表达式匹配的变量必须是:
- 定义一个输入/过滤器/输出/解析器的字典 或
- 定义一个或多个输入/过滤器/输出/解析器的字典列表。
每个字典用于定义 Fluentbit 配置文件或管理解析器文件中的一个 [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
许可证
mit
下载
2.7k
拥有者