filestream安装使用全套+filebeat的模块用法
1 filestream介绍
官方宣布:输入类型为log在filebeat7.16版本已经弃用了
Filestream 是 Filebeat 中的一种 输入类型(Input),用于处理日志文件的读取。它是为了取代 Filebeat 中传统的 log 输入(Input)设计的,更加现代化和高效
-
filestream直接与操作系统的文件系统事件接口(如 Linux 的inotify或 Windows 的ReadDirectoryChangesW)集成,从而更高效地监听文件变化 -
专为处理容器化环境或日志动态生成的场景设计,能够动态追踪日志文件的创建和删除
-
使用唯一的文件标识符(如 inode + dev)而非文件路径,避免因路径变化导致日志丢失或重复采集
-
未来版本中,
filestream将成为日志文件采集的首选,逐步取代log输入
2 filestream解析nginx json日志
1.filebeat执行该文件
cat > 11-filestream-to-es.yaml <<EOF
filebeat.inputs:
- type: filestreampaths:- /var/log/nginx/access.log# 配置解析parsers:# 解析json格式- ndjson:# 将解析的数据放在哪个字段,若为""代表放在顶级字段中target: ""# 对哪个字段进行解析,若不指定,则默认会对message字段进行解析,并删除该字段。message_key: messageoutput.elasticsearch:hosts: - "http://10.0.0.91:9200"- "http://10.0.0.92:9200"- "http://10.0.0.93:9200"index: "zhiyong18-luckyboy-log-filestream-nginx"setup.ilm.enabled: false
setup.template.name: "zhiyong18-luckyboy"
setup.template.pattern: "zhiyong18-luckyboy-log*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 5index.number_of_replicas: 0
EOF
2.索引可以正常创建,discover 中看到内容和 之前的 nginx json 格式采集一样
3 filestream多行匹配
1.filebeat执行该文件
cat > 12-filestream_multiple-to-es.yaml <<EOF
filebeat.inputs:
- type: filestreampaths:- /app/apache-tomcat-10.1.25/logs/catalina.outparsers:- multiline:type: patternpattern: '^\d{2}'negate: truematch: afteroutput.elasticsearch:hosts: - "http://10.0.0.91:9200"- "http://10.0.0.92:9200"- "http://10.0.0.93:9200"index: "zhiyong18-luckyboy-log-filestream-tomcat-errorlog"setup.ilm.enabled: false
setup.template.name: "zhiyong18-luckyboy"
setup.template.pattern: "zhiyong18-luckyboy-log*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 5index.number_of_replicas: 0
EOF
2.验证采集的错误日志

4 filestream count多行匹配+json采集
1.准备测试文件 /tmp/apps.json
{"name": "韩V童","hobby": ["下海","睡觉","抽奖"]
}
{"name": "康Z阳","hobby": ["看美女","打游戏","学习"]
}
2.编写测试 filebeat 采集配置。
注意:如果这条索引同时匹配到了多个索引模版,可能就会报错。建议修改匹配模式
cat > 13-filestream_json_multiple_line-to-es.yaml <<EOF
filebeat.config.modules:# 注意,此处的"${path.config}"对应的路径是/etc/filebeat目录path: ${path.config}/modules.d/*.yml# 支持热加载reload.enabled: true# 指定每间隔多长时间检测一次“${path.config}/modules.d/*.yml”reload.period: 5soutput.elasticsearch:hosts: - "http://10.0.0.91:9200"- "http://10.0.0.92:9200"- "http://10.0.0.93:9200"index: "zhiyong18-luckyboy-log-modules-nginx"etup.ilm.enabled: false
setup.template.name: "zhiyong18-luckyboy-modules"
setup.template.pattern: "zhiyong18-luckyboy-log-modules*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 5index.number_of_replicas: 0
EOF
3.查看采集到的日志

5 filebeat模块介绍
filebeat模块是官方提供的一种对各种中间件进行日志采集的解决方案,用于简化常见服务(如 NGINX、MySQL、Apache 等)日志的采集、解析和可视化过程。
-
模块在/etc/filebeat/modules.d/ 下, 启用模块本质上是将 /etc/filebeat/modules.d/ 目录下的
*.yml.disabled文件更名为*.yml -
filebeat启用,禁用和查看模块
# 查看支持的模块
[root@elk91 filebeat]# ll modules.d/ | egrep "tomcat|nginx"
-rw-r--r-- 1 root root 784 May 30 21:52 nginx.yml.disabled
-rw-r--r-- 1 root root 623 May 30 21:52 tomcat.yml.disabled# 进行模块开启操作
[root@elk91 filebeat]# filebeat modules enable nginx tomcat
Enabled nginx# 查看已开启的模块
[root@elk91 filebeat]# ll modules.d/ | egrep "tomcat|nginx"
-rw-r--r-- 1 root root 784 May 30 21:52 nginx.yml
-rw-r--r-- 1 root root 623 May 30 21:52 tomcat.yml# 禁用模块
[root@elk91 filebeat]# filebeat modules disable nginx tomcat
模块大全:
[root@elk93~]# ls /etc/filebeat/modules.d/
activemq.yml.disabled cyberark.yml.disabled infoblox.yml.disabled nginx.yml snyk.yml.disabled
apache.yml.disabled cylance.yml.disabled iptables.yml.disabled o365.yml.disabled sonicwall.yml.disabled
auditd.yml.disabled envoyproxy.yml.disabled juniper.yml.disabled okta.yml.disabled sophos.yml.disabled
awsfargate.yml.disabled f5.yml.disabled kafka.yml.disabled oracle.yml.disabled squid.yml.disabled
aws.yml.disabled fortinet.yml.disabled logstash.yml.disabled osquery.yml.disabled suricata.yml.disabled
azure.yml.disabled gcp.yml.disabled microsoft.yml.disabled panw.yml.disabled system.yml.disabled
barracuda.yml.disabled googlecloud.yml.disabled misp.yml.disabled pensando.yml.disabled threatintel.yml.disabled
bluecoat.yml.disabled google_workspace.yml.disabled mongodb.yml.disabled postgresql.yml.disabled tomcat.yml
cef.yml.disabled gsuite.yml.disabled mssql.yml.disabled proofpoint.yml.disabled traefik.yml.disabled
checkpoint.yml.disabled haproxy.yml.disabled mysqlenterprise.yml.disabled rabbitmq.yml.disabled zeek.yml.disabled
cisco.yml.disabled ibmmq.yml.disabled mysql.yml.disabled radware.yml.disabled zookeeper.yml.disabled
coredns.yml.disabled icinga.yml.disabled nats.yml.disabled redis.yml.disabled zoom.yml.disabled
crowdstrike.yml.disabled iis.yml.disabled netflow.yml.disabled santa.yml.disabled zscaler.yml.disabled
cyberarkpas.yml.disabled imperva.yml.disabled netscout.yml.disabled snort.yml.disabled
6 使用模块采集nginx日志
前提: nginx 模块已经开启,nginx日志是常规格式
1.修改nginx模块配置
cat > /etc/filebeat/modules.d/nginx.yml <<EOF
- module: nginxaccess:enabled: truevar.paths: ["/var/log/nginx/access.log*"]error:enabled: truevar.paths: ["/var/log/nginx/error.log*"]ingress_controller:enabled: false
EOF
2.filebeat执行该文件。
可能遇到的故障:
- 由于之前创建了大量索引模式,可能会导致索引匹配冲突,要么改优先级或匹配其他索引。
- 索引模式冲突举例:
zhiyong18-luckyboy-log*和zhiyong18-luckyboy-log-modules*
- 索引模式冲突举例:
- vim access.log 后日志不采集,或这不写入。需要重启nginx
cat > 14-modules_nginx-to-es.yaml <<'EOF'
filebeat.config.modules:# 注意,此处的"${path.config}"对应的路径是/etc/filebeat目录path: ${path.config}/modules.d/*.yml# 支持热加载reload.enabled: true# 指定每间隔多长时间检测一次“${path.config}/modules.d/*.yml”reload.period: 5soutput.elasticsearch:hosts: - "http://10.0.0.91:9200"- "http://10.0.0.92:9200"- "http://10.0.0.93:9200"index: "zhiyong18-luckyboy-log-modules-nginx"# 禁用索引的生命周期(Index Lifecycle Management,简称"ilm"),如果不禁用则忽略自定义索引名称
setup.ilm.enabled: false
# ES的索引模板名称,和ES最好别冲突
setup.template.name: "zhiyong18-luckyboy-modules"
# ES索引模板的匹配模式
setup.template.pattern: "zhiyong18-luckyboy-log*"
# 如果索引模板已经存在,是否覆盖,推荐设置为false
setup.template.overwrite: false
EOF
"source": {"geo": {"continent_name": "Africa","country_iso_code": "SC","country_name": "Seychelles","location": {"lon": 55.6667,"lat": -4.5833}},
3.去 discover 查看,官方模块非常详细,把日志中隐藏的国家、IP、状态码都显示出来了

7 nginx模块中经纬度混合问题
1.在使用了nginx模块采集原生nginx日志后,若发现地理位置坐标点全在一个字段中,无法确定其地理位置坐标点。需要使用数据映射。
下图为正确的示例,地理位置正确映射

2.创建一条索引模式,以后使用nginx模块采集日志时就匹配这条索引
| 索引名称 | zhiyong18-luckyboy-modules |
| 索引模式 | zhiyong18-luckyboy-log* |
3.索引设置:
{"number_of_shards": 3,"number_of_replicas": 0
}
4.设置数据映射:source.geo.location --> 地理位置坐标点

5.创建后预览:
{"template": {"settings": {"index": {"number_of_shards": "3","number_of_replicas": "0"}},"mappings": {"properties": {"source": {"properties": {"geo": {"properties": {"location": {"type": "geo_point"}}}}}}},"aliases": {}}
}
最后,创建地图查看分布图
最后,创建地图查看分布图

相关文章:
filestream安装使用全套+filebeat的模块用法
1 filestream介绍 官方宣布:输入类型为log在filebeat7.16版本已经弃用了 Filestream 是 Filebeat 中的一种 输入类型(Input),用于处理日志文件的读取。它是为了取代 Filebeat 中传统的 log 输入(Input)设…...
java项目之房屋租赁系统源码(springboot+mysql+vue)
项目简介 房屋租赁系统实现了以下功能: 房屋租赁系统的主要使用者分为: 系统管理:个人中心、房屋信息管理、预约看房管理、合同信息管理、房屋报修管理、维修处理管理、房屋评价管理等模块的查看及相应操作; 房屋信息管理&#…...
sap mm学习笔记
1. 业务流程 2. 组织架构 3. 物料主数据 4.采购主数据 5. 采购管理 6. 库存管理 7.物料主数据 8. 采购申请 ME51N...
代码随想录_链表
代码随想录02 链表 203.移除链表元素 力扣题目链接(opens new window) 题意:删除链表中等于给定值 val 的所有节点。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5] 示例 2: 输入:he…...
EF Code 并发控制
【悲观控制】 不推荐用,EF Core 没有封装悲观并发控制的使用,需要使用原生Sql来使用悲观并发控制 一般使用行锁、表锁等排他锁对资源进行锁定,同时只有一个使用者操作被锁定的资源 拿sql server举例,可以使用表所、或者行所解决…...
ceph fs status 输出详解
ceph fs status 命令用于显示 Ceph 文件系统的状态信息,其中各列的含义如下: RANK:元数据服务器(MDS)的等级或标识符。 STATE:MDS 的当前状态,例如 active(活跃)、stan…...
FFmpeg Muxer HLS
使用FFmpeg命令来研究它对HLS协议的支持程度是最好的方法: ffmpeg -h muxerhls Muxer HLS Muxer hls [Apple HTTP Live Streaming]:Common extensions: m3u8.Default video codec: h264.Default audio codec: aac.Default subtitle codec: webvtt. 这里面告诉我…...
如何用SQL语句来查询表或索引的行存/列存存储方式|OceanBase 用户问题集锦
一、问题背景 自OceanBase 4.3.0版本起,支持了列存引擎,允许表和索引以行存、纯列存或行列冗余的形式创建,且这些存储方式可以自由组合。除了使用 show create table命令来查看表和索引的存储类型外,也有用户询问如何通过SQL语句…...
回归预测 | MATLAB实GRU多输入单输出回归预测
回归预测 | MATLAB实GRU多输入单输出回归预测 目录 回归预测 | MATLAB实GRU多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实GRU多输入单输出回归预测。使用GRU作为RNN的一种变体来处理时间序列数据。GRU相比传统的RNN有较好的记…...
【OpenGL/Assimp】渲染模型、半透明材质与封装光源
文章目录 渲染成果Assimp库准备:Mesh类修改:透明贴图使用:光源封装:使用方式在如下测试环境中: 渲染成果 Assimp库准备: 从GitHub拉取源码,根据网络教程,借助CMake生成VS工程项目&a…...
pandas与sql对应关系【帮助sql使用者快速上手pandas】
本页旨在提供一些如何使用pandas执行各种SQL操作的示例,来帮助SQL使用者快速上手使用pandas。 目录 SQL语法一、选择SELECT1、选择2、添加计算列 二、连接JOIN ON1、内连接2、左外连接3、右外连接4、全外连接 三、过滤WHERE1、AND2、OR3、IS NULL4、IS NOT NULL5、B…...
Linux WEB漏洞
定义:Linux Web 漏洞是指在基于 Linux 操作系统的 Web 应用程序、Web 服务器软件或者相关的网络服务配置中存在的安全弱点。这些漏洞可能导致攻击者未经授权访问敏感信息、篡改网页内容、执行恶意代码,甚至完全控制服务器。 常见类型及原理 SQL 注入漏…...
音视频入门基础:RTP专题(2)——使用FFmpeg命令生成RTP流
通过FFmpeg命令可以将一个媒体文件转推RTP: ffmpeg -re -stream_loop -1 -i input.mp4 -c:v copy -an -f rtp rtp://192.168.0.102:5400 但是通过ffplay尝试播放上述产生的RTP流时会报错:“Unable to receive RTP payload type 96 without an SDP file …...
大语言模型预训练、微调、RLHF
转发,如有侵权,请联系删除: 1.【LLM】3:从零开始训练大语言模型(预训练、微调、RLHF) 2.老婆饼里没有老婆,RLHF里也没有真正的RL 3.【大模型微调】一文掌握7种大模型微调的方法 4.基于 Qwen2.…...
vue3后台系统动态路由实现
动态路由的流程:用户登录之后拿到用户信息和token,再去请求后端给的动态路由表,前端处理路由格式为vue路由格式。 1)拿到用户信息里面的角色之后再去请求路由表,返回的路由为tree格式 后端返回路由如下: …...
解决idea中无法拖动tab标签页的问题
1、按 Ctrl Alt S 打开设置,找到路径 File | Settings | Appearance & Behavior | Appearance 2、去掉勾选 Drag-and-drop with Alt pressed only 即可...
WMS仓库管理系统,Vue前端开发,Java后端技术源码(源码学习)
一、项目背景和建设目标 随着企业业务的不断扩展,仓库管理成为影响生产效率、成本控制及客户满意度的重要环节。为了提升仓库作业的透明度、准确性和效率,本方案旨在构建一套全面、高效、易用的仓库管理系统(WMS)。该系统将涵盖库…...
25/1/12 嵌入式笔记 学习esp32
了解了一下位选线和段选线的知识: 位选线: 作用:用于选择数码管的某一位,例如4位数码管的第1位,第2位) 通过控制位选线的电平(高低电平),决定当前哪一位数码管处于激活状…...
【NLP】ELMO、GPT、BERT、BART模型解读及对比分析
文章目录 一、基础知识1.1 Word Embedding(词嵌入)1.2 词嵌入模型1.3 神经网络语言模型NNLM 二、ELMO2.1 ELMO的提出2.2 ELMO核心思想2.3 ELMO的优缺点 三、GPT3.1 Transformer3.2 GPT简介3.3 GPT模型架构3.4 预训练及微调3.5 GPT和ELMO对比 四、BERT4.1…...
go语言学习(数组,切片,字符串)
字符串 如果里面存储的是汉字,那么其实就是存储的是UTF--8编码,所以一个字会对应多个字节.如果想要获取汉字的个数,可以使用rune,来处理unicode字符 length: utf8.RuneCountInString( s) 如果只使用len()获取的是字节的个数, 字符串的功能 1,获取字节长度 len(xx) 2,获取字…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践
在电商行业蓬勃发展的当下,多平台运营已成为众多商家的必然选择。然而,不同电商平台在商品数据接口方面存在差异,导致商家在跨平台运营时面临诸多挑战,如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...
python打卡第47天
昨天代码中注意力热图的部分顺移至今天 知识点回顾: 热力图 作业:对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图,展示模…...
简单介绍C++中 string与wstring
在C中,string和wstring是两种用于处理不同字符编码的字符串类型,分别基于char和wchar_t字符类型。以下是它们的详细说明和对比: 1. 基础定义 string 类型:std::string 字符类型:char(通常为8位)…...
