许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  fluent-bit采集日志配置:结构化处理到ES集群完整教程

fluent-bit采集日志配置:结构化处理到ES集群完整教程

阅读数 2
点赞 0
article_banner

一、安装配置fluent-bit、采集nginx日志案例

下载路径:https://github.com/fluent/fluent-bit/archive/refs/tags/v1.8.12.tar.gz

官方github地址:GitHub - fluent/fluent-bit: Fast and Lightweight Logs and Metrics processor for Linux, BSD, OSX and Windows

1、解压fluent-bit的 tar

2、安装依赖包cmake flex.x86_64、bison.x86_64、 gcc.x86_64、gcc-c++.x86_64((cmake依赖包必须是3.0以上的版本)在cenos镜像中就有)

官方依赖包

解压fluent-bit的tar包

3、进入到解压后的目录找到build目录  

进入到build目录执行cmake进行编译安装(cmake必须是3.0以上版本)

执行以下命令进行编译安装

    cmake -DCMAKE_INSTALL_PREFIX=/home/zz/panjian/ .. #指定路径编译    make   # 为管理员添加属组权限 方便管理员进入到当前用户解压后的路径/home/zz/fluent-bit-1.8.12/build中执行make install /home/zz/panjian    sudo chmod -R 750 /home/zz/fluent-bit-1.8.12/build    sudo make install /home/zz/panjian/ # 此时需要用户须有sudo权限,如无sudo权限 可使用有sudo权限的用户执行,执行后 在修改 指定的路径权限为zz:如下:    sudo chown -R zz:zz /home/zz/panjian # 修改路径权限 为当前用户 否则无法进入

指定安装后的目录结构作用

二、进行配置文件修改以实现采集nginx日志

编辑input_nginx.con配置文件(采集的日志的位置和采集日志文件的位置记录)

#编辑主配置文件如下   [SERVICE] Flush 1 #buffer里的数据每隔1秒写到output插件里,这里写到ES里。 Daemon yes #守护进程 使用ststemcat 的启动方式应设置为off Log_Level info #fluent-bit的日志级别 Log_FIle /root/iSoft/fluent-bit/log/flb.log #定义服务的日志文件 storage.path /root/iSoft/fluent-bit/log/flb-storage #在文件系统中设置一个位置来存储数据流和数据块 storage.sync normal #在从文件系统写入和读取数据时启用数据完整性检查 storage.checksum off #如果输入插件已启用文件系统存储类型,则此属性将设置内存中可以达到的最大块数 。这有助于控制内存使用量 storage.backlog.mem_limit 5M #如果设置了 storage.path,Fluent Bit 将查找未传送且仍在存储层中的数据块,这些数据块称为积压数据。此选项配置在处理这些记录时要使用的最大内存值提示。 Parsers_File parsers.conf # 引用了parsers.conf,里面配置所有几个常程序,结构处理日志的正则表达式 HTTP_Server On HTTP_Listen 0.0.0.0 HTTP_Port 2020 @INCLUDE input_nginx.conf #引用input_nginx.conf配置文件 @INCLUDE output_es.conf #引用output_es.conf配置文件 @INCLUDE filter.conf #引用filter.conf配置文件

编辑input_nginx.conf配置文件

[INPUT] Name tail # tail #指定了input插件的类型,这里是tail类型 tag nginxaccess # 给采集的日志打个标签,后面filter和output根据这个标签选择数据源 parser nginx # 引用parsers.conf配置文件中的nginx配置项(json化处理nginx日志) Path /usr/local/nginx/logs/access.log # 定义采集日志的路径 DB /root/iSoft/fluent-bit/db/nginx.db # 记录哪个文件采集到哪一行 (非常重要) DB.Sync Full # 用哪种方法同步数据到磁盘,full为安全优先 Mem_Buf_Limit 32MB # 一旦buffer里的数据超过Mem_buf_limit,tail就会暂停采集,直到buffer数据被flush到output。 Skip_Long_Lines On # 跳过长度大于Buffer_Max_Size的行 Buffer_Chunk_Size 32k # tail命令的buffer初始大小 Buffer_Max_Size 32k # tail命令的buffer最大值 Refresh_Interval 10 # 定时扫描磁盘上的新文件的间隔 Rotate_Wait 5 # 文件rotate后的等待一段时间后再继续监控这个文件,以防flush一些pending data Ignore_Older 10d # 忽略近十天来未更改的文件 storage.type filesystem # 指定要使用的缓冲机制。它可以是内存或文件系统。filesystem类型是文件系统 (在主配置文件一旦配置了文件系统,在input配置中一定要此行配置(参考官方文档)) 

编辑 output_es.conf配置文件

[OUTPUT] Name es # 输出的插件类型 Match nginxaccess # 匹配input配置文件中的tar标记的数据源 Host 192.168.1.128 # es的hostname 可以是域名也可以是IP地址 Port 9200 # es的端口号 Index nginx_log # 生成的索引名称 默认的是fluent-bit Type my_nginx_log # 类型的名称 Logstash_Format On # 启用日志哈希格式兼容性。此选项采用布尔值:真/假、开/关,启用Logstash_Format后,索引名称将使用前缀和日期组成 Logstash_Prefix nginx-log # 索引的前缀 Logstash_DateFormat %Y.%m.%d # 索引的后缀 Generate_ID on # 启用后, 为传出记录生成_id。这可以防止在重试 ES 时出现重复记录。 Time_Key_Nanos On # 启用Logstash_Format时,启用此项配置属性将:发送纳秒级精度时间戳。(防止在同一秒或者毫秒中相同的日志无法采集的问题)将时间戳精确到纳秒级别 如果不启用同一秒/毫秒的相同日志将会丢失

编辑parsers.conf配置文件(使用正则表达式解析日志)

可以使用下面的链接自行编译正则表达式解析 需要的日志Rubular: a Ruby regular expression editor

[PARSER] Name nginx Format regex Regex ^(?[^ ]) (?[^ ]) (?[^ ]) [(?[^]])] "(?\S+)(?: +(?[^"]?)(?: +\S)?)?" (?[^ ]) (?[^ ]) "(?[^ ])" "(?[^"]+)" (?[^ ]) [(? [^]])] [(?[^]])]  Time_Key time Time_Format %d/%b/%Y:%H:%M:%S %z # 此位置匹配了日志解析后的时间,需要注释, 改用output的Time_Key_Nanos 将时间精确到纳秒# Time_Format %d/%b/%Y:%H:%M:%S %zTime_Key_Nanos On Types timestamp:float costs:integer # 定义字段的类型(方便在kibana中查询) 

启动命令 ./fluent-bit -c ../etc/fluent-bit/fluent-bit.conf


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空