artem_shestakov.fluentbit
Ansible Fluent-bit 角色
一个简单的角色,用于安装和设置 Fluent-bit
角色变量
配置
名称 | 描述 | 默认值 |
---|---|---|
fluentbit_config_path | 配置和解析器文件的路径 | /etc/fluent-bit |
fluentbit_flush | 设置刷新时间(秒.纳秒)。引擎循环使用 Flush 超时来定义何时需要通过定义的输出插件刷新输入插件获取的记录。 | 5 |
fluentbit_grace | 设置退出时的宽限时间(秒,整数值)。引擎循环使用 Grace 超时来定义退出等待时间 | 5 |
fluentbit_daemon | 布尔值,设置 Fluent Bit 是否应该以守护进程(后台)方式运行。允许的值有:yes,no,on,off | off |
fluentbit_dns_mode | 设置异步DNS解析器使用的主传输层协议,可以在每个插件基础上覆盖 | UDP |
fluentbit_log_file | 可选日志文件的绝对路径。默认情况下,所有日志会重定向到标准错误界面(stderr)。 | |
fluentbit_log_level | 设置日志详细程度级别。 | info |
fluentbit_http_server | 启用内置HTTP服务器 | off |
fluentbit_http_listen | 设置启用时HTTP服务器的监听接口 | 0.0.0.0 |
fluentbit_http_port | 设置HTTP服务器的TCP端口 | 2020 |
fluentbit_coro_stack_size | 设置协程堆栈大小(字节)。值必须大于运行系统的页面大小。请勿设置过小的值(例如4096),否则协程线程可能会溢出堆栈缓冲区。除非您知道自己在做什么,否则请不要更改此参数的默认值 | 24576 |
fluentbit_scheduler_cap | 设置最大重试时间(秒)。该属性自 v1.8.7 起支持。 | 2000 |
fluentbit_scheduler_base | 设置指数退避的基数。该属性自 v1.8.7 起支持。 | 5 |
fluentbit_inputs | 输入部分定义一个来源(与输入插件相关) | 名称:forward 监听:0.0.0.0 端口:24224 |
fluentbit_outputs | 输出部分指定记录在满足标签匹配后应该跟随的目标 | 名称:srdout 匹配:'*' |
管道
fluentbit_inputs
- 输入(来源)列表。每个输入的元素是键/值字典的集合。默认值为:
fluentbit_inputs:
- Name: forward
Listen: 0.0.0.0
Port: 24224
fluentbit_outputs
- 输出(接收端)列表。每个输出的元素是键/值字典的集合。默认值为:
fluentbit_outputs:
- Name: stdout
Match: '*'
fluentbit_filters
- 过滤器列表。每个元素是键/值字典的集合。默认值为[]
。示例:
---
- name: 部署 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
- 解析器列表。每个解析器的元素是键/值字典的集合。默认值为[]
。示例:
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
- 多行解析器列表。每个解析器的元素是键/值字典的集合。每个解析器应包含rules
列表。每条规则是三个元素的字典:state_name
,regex_pattern
和next_state
。默认值为[]
。示例:
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
示例剧本
示例在这里
许可证
BSD
作者信息
Artem Shestakov artem.s.shestakov@yandex.ru