fluent-bit 本地安装及配置
1. 安裝與啟動
1.1. YUM方式安裝
官方文檔:https://docs.fluentbit.io/manual/installation/linux/redhat-centos
1.請在/etc/yum.repos.d/中添加一個名為td-agent-bit.repo的新文件,其內容如下:
[td-agent-bit] name = TD Agent Bit baseurl =
https://packages.fluentbit.io/centos/7/$basearch/ gpgcheck=1
gpgkey=https://packages.fluentbit.io/fluentbit.key enabled=1:
2.運行以下命令進行安裝
yum install td-agent-bit3.Systemd啟用服務
#啟用服務 sudo service td-agent-bit start#重啟服務 sudo service td-agent-bit restart#停止服務 sudo service td-agent-bit stop4.狀態檢查
service td-agent-bit status5. 查看
d-agent-bit的默認配置是收集CPU使用率指標并將記錄發送到標準輸出,您可以在/var/log/messages文件中看到傳出數據。
1.2. Docker方式安裝
官方文檔:https://docs.fluentbit.io/manual/installation/docker
docker pull fluent/fluent-bit:1.5.6 docker run -it -v /root/fluentBit/:/fluent-bit/etc/ fluent/fluent-bit:1.5.6在/root/fluentBit創建 parsers.conf文件和fluent-bit.conf
parsers.conf 參考2.1
fluent-bit.conf2.2
2. 配置文件修改
Inputs:https://docs.fluentbit.io/manual/pipeline/inputs/tail
Outputs:https://docs.fluentbit.io/manual/pipeline/outputs/kafka
Parsers:https://docs.fluentbit.io/manual/pipeline/filters/parser
配置文件在:/etc/td-agent-bit 目錄下
2.1. 修改 parsers.conf
添加以下配置:
multiline_pattern :用于解決多行日志問題
log_parser :用于對日志進行分割
[PARSER]
Name multiline_pattern
Format regex
Regex ^(?\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}.\d{3}.*)
[PARSER]
Name log_parser
Format regex
Regex (?[^]][ ]) (?[^ ]) [(?[^ ]),(?[^ ]),(?[^ ]),(?[^ ]),(?[^ ]),(?[^ ])] (?[^ ]) — [(?[^[]\n])] (?[^ ][ ]): (?[^ ]].)
正則表達式測試地址:https://rubular.com/r/X7BH0M4Ivm
表達式:
(?[^]][ ]) (?[^ ]) [(?[^ ]),(?[^ ]),(?[^ ]),(?[^ ]),(?[^ ]),(?[^ ])] (?[^ ]) — [(?[^[]\n])] (?[^ ][ ]): (?[^ ]].)
日志內容:
2020-09-11 17:27:20.261 INFO [feng-cjmfeng,b95f714e14fed76e,b95f714e14fed76e,false,] 10806 — [ Thread-53] com.bzl.feng.service.aop.ServiceAspect : Leave com.bzl.feng.service.impl.JobRelationServiceImpl::handleTrafficConflict()
2.2. 修改 td-agent-bit.conf
2.2.1. [INPUT] 獲取日志
官方文檔:https://docs.fluentbit.io/manual/pipeline/inputs/tail
字段值含義Nametail使用 INPUT Tail插件Tagfeng-sit.給日志打標簽Path/var/log/feng-sit/.log日志所在的目錄DB/var/log/feng-sit.db指定數據庫文件以跟蹤受監視的文件和偏移量Refresh_Interval1刷新監視文件列表的時間間隔(以秒為單位)Rotate_Wait60以秒為單位指定額外時間,以防在刷新某些未決數據時旋轉文件后對其進行監視Skip_Long_LinesOn當受監視的文件由于行很長(Buffer_Max_Size)而達到緩沖區容量時,默認行為是停止監視該文件。Skip_Long_Lines會更改該行為,并指示Fluent Bit跳過長行并繼續處理適合緩沖區大小的其他行MultilineOn如果啟用,插件將嘗試發現多行消息,并使用適當的解析器來編寫傳出的消息Parser_Firstlinemultiline_pattern匹配多行消息開頭的解析器的名稱,在parsers.conf中配置
2.2.2.
[FILTER] 過濾日志
官方文檔:https://docs.fluentbit.io/manual/pipeline/filters/parser
字段值含義Nameparser使用 FILTER parser插件Matchfeng-sit.匹配 feng-sit. 的日志,在INPUT中打過標簽Key_Namelog指定要解析的記錄中的字段名Parserlog_parser使用的 Parser規則,在parsers.conf 配置Reserve_DataOn在解析后的結果中保留所有其他原始字段,如果為false,則將刪除所有其他原始字段。Preserve_KeyOn如果鍵是一個轉義的字符串(例如stringify JSON),在應用解析器之前取消轉義。
2.2.3. [OUTPUT] 輸出日志~調試
查看效果: tail -f /var/log/messages
[OUTPUT]
Name stdout
Match feng-sit.*
字段值含義Namestdout使用 OUTPUT stdout插件Matchfeng-sit.匹配 feng-sit. 的日志,在INPUT中打過標簽
2.2.4.
[OUTPUT] 輸出日志 到kafka
官方文檔:https://docs.fluentbit.io/manual/pipeline/outputs/kafka
字段值含義Namestdout使用 OUTPUT stdout插件Matchfeng-sit.var.log.feng-sit.feng-cjmfeng匹配var/log/feng-sit/feng-cjmfeng 的日志
feng INPUT中的Tag為: feng-sit.* Path為:/var/log/feng-sit/.log
Math寫成 feng-sit.var.log.feng-sit.feng-cjmfengBrokers10.8.xxx.xxx:32001,10.8.xxx.xxx:32002,10.8.xxx.xxx:32003kafka地址Topicstest.sit.feng-cjmfeng.logkafka 的Topic。命名規則:環境.項目.log 例:sit.feng-cjmfeng.logrdkafka.message.max.bytes200000000最大Kafka協議請求消息大小。由于協議版本之間的框架開銷不同,生成方無法可靠地在生成時強制執行嚴格的最大消息限制,并且可能超過協議生成方請求中的最大消息大小,代理將強制執行主題的max.message。字節限制(請參閱Apache Kafka文檔)。rdkafka.fetch.message.max.bytes204857600從代理獲取消息時,每個主題+分區請求的初始最大字節數。如果客戶端遇到大于此值的消息,它將逐步嘗試增加該值,直到可以獲取整個消息。
[SERVICE]
Flush 5
Daemon Off
Log_Level info
Parsers_File parsers.conf
Plugins_File plugins.conf
HTTP_Server Off
HTTP_Listen 0.0.0.0
HTTP_Port 2020
[INPUT]
Name tail
Tag feng-sit.*
Path /var/log/feng-sit/*.log
DB /var/log/feng-sit.db
Refresh_Interval 1
Rotate_Wait 60
Skip_Long_Lines On
Multiline On
Parser_Firstline multiline_pattern
[INPUT]
Name tail
Tag feng-elevator.*
Path /var/log/feng-elevator/*.log
DB /var/log/feng-elevator.db
Refresh_Interval 1
Rotate_Wait 60
Skip_Long_Lines On
Multiline On
Parser_Firstline multiline_pattern
[FILTER]
Name parser
Match feng-sit.*
Key_Name log
Parser log_parser
Reserve_Data On
Preserve_Key On
[FILTER]
Name parser
Match feng-elevator.*
Key_Name log
Parser log_parser
Reserve_Data On
Preserve_Key On
[OUTPUT]
Name kafka
Match feng-sit.var.log.feng-sit.feng-cjmfeng*
Brokers 10.8.xxx.xxx:32001,10.8.xxx.xxx:32002,10.8.xxx.xxx:32003
Topics test.sit.feng-cjmfeng.log
rdkafka.message.max.bytes 200000000
rdkafka.fetch.message.max.bytes 204857600
[OUTPUT]
Name kafka
Match feng-elevator.var.log.feng-elevator.feng-cjmfeng*
Brokers 10.8.xxx.xxx:32001,10.8.xxx.xxx:32002,10.8.xxx.xxx:32003
Topics test.elevator.feng-cjmfeng.log
rdkafka.message.max.bytes 200000000
rdkafka.fetch.message.max.bytes 204857600
總結
以上是生活随笔為你收集整理的fluent-bit 本地安装及配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Taro+react开发(98):问答模
- 下一篇: [react] react中可以在ren