一、安装配置fluent-bit、采集nginx日志案例
下载路径:https://github.com/fluent/fluent-bit/archive/refs/tags/v1.8.12.tar.gz
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 %z
Time_Key_Nanos On
Types timestamp:float costs:integer # 定义字段的类型(方便在kibana中查询)
启动命令 ./fluent-bit -c ../etc/fluent-bit/fluent-bit.conf
Rackup通过Rack的默认处理程序成功运行任何Rack应用程序。例如:classRackAppdefcall(environment)['200',{'Content-Type'=>'text/html'},["Helloworld"]]endendrunRackApp.new但是当最后一行更改为使用Rack的内置CGI处理程序时,rackup给出“NoMethodErrorat/undefinedmethod`call'fornil:NilClass”:Rack::Handler::CGI.runRackApp.newRack的其他内置处理程序也提出了同样的反对意见。例如Rack
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m
文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
注意:本文主要掌握DCN自研无线产品的基本配置方法和注意事项,能够进行一般的项目实施、调试与运维AP基本配置命令AP登录用户名和密码均为:adminAP默认IP地址为:192.168.1.10AP默认情况下DHCP开启AP静态地址配置:setmanagementstatic-ip192.168.10.1AP开启/关闭DHCP功能:setmanagementdhcp-statusup/downAP设置默认网关:setstatic-ip-routegeteway192.168.10.254查看AP基本信息:getsystemgetmanagementgetmanaged-apgetrouteAP配
1.1.1 YARN的介绍 为克服Hadoop1.0中HDFS和MapReduce存在的各种问题⽽提出的,针对Hadoop1.0中的MapReduce在扩展性和多框架⽀持⽅⾯的不⾜,提出了全新的资源管理框架YARN. ApacheYARN(YetanotherResourceNegotiator的缩写)是Hadoop集群的资源管理系统,负责为计算程序提供服务器计算资源,相当于⼀个分布式的操作系统平台,⽽MapReduce等计算程序则相当于运⾏于操作系统之上的应⽤程序。 YARN被引⼊Hadoop2,最初是为了改善MapReduce的实现,但是因为具有⾜够的通⽤性,同样可以⽀持其他的分布式计算模