Filebeat采集数据与日志分析实战

🌟Filebeat采集数据的原理

Filebeat默认按行采集数据,如果数据没有换行,则该条数据无法采集到

属于有状态服务,可以记录上一次采集数据的位置点信息

修改配置文件

vim /etc/filebeat/config/03-log-to-console.yaml
filebeat.inputs:
- type: logpaths:- /tmp/student.jsonoutput.console:pretty: true

启动Filebeat

filebeat -e -c /etc/filebeat/config/03-log-to-console.yaml

发送测试数据

echo haha >> /tmp/student.json

offset记录的是上一次采集数据的位置点,haha是第一行,所以offset偏移量是0

echo www >> /tmp/student.json[root@elk92 ~]# tail -1 /var/lib/filebeat/registry/filebeat/log.json
{"k":"filebeat::logs::native::1703963-2052","v":{"id":"native::1703963-2052","source":"/tmp/student.json","timestamp":[45803107,1756344477],"identifier_name":"native","FileStateOS":{"inode":1703963,"device":2052},"prev_id":"","offset":0,"ttl":-1,"type":"log"}}

echo -n .zhubl. >> /tmp/student.json
echo xyz >> /tmp/student.json

🌟Filebeat采集nginx日志

安装nginx

apt -y install nginx
systemctl start nginx
ss -ntl | grep 80

访问nginx测试

http://10.0.0.92

编写Filebeat采集nginx日志

vim /etc/filebeat/config/04-nginx-to-es.yaml
filebeat.inputs:
- type: logpaths:- /var/log/nginx/access.log*#output.console:
#  pretty: true# 将数据写入到ES集群
output.elasticsearch:# 指定ES集群地址hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]# 指定ES的索引名称index: zhu-nginx# 禁用索引的生命周期,否则自定义索引名称无效
setup.ilm.enabled: false
# 定义索引模板
setup.template.name: "zhu-nginx"
# 定义索引模板的匹配模式
setup.template.pattern: "zhu-nginx*"
# 如果索引模板已经存在是否覆盖
setup.template.overwrite: false
# 配置索引模板
setup.template.settings:# 指定分片数量index.number_of_shards: 3# 指定副本数量index.number_of_replicas: 0

启动Filebeat

filebeat -e -c /etc/filebeat/config/04-nginx-to-es.yaml

Kibana查看数据

🌟Filebeat采集tomcat日志案例

下载tomcat

官网下载tomcat:https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.10/bin/apache-tomcat-11.0.8.tar.gz

wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.10/bin/apache-tomcat-11.0.8.tar.gz

解压软件包

tar xf apache-tomcat-11.0.8.tar.gz -C /usr/local/

添加环境变量

1.编辑环境变量配置文件
vim /etc/profile.d/tomcat.sh
#!/bin/bash
export TOMCAT_HOME=/usr/local/apache-tomcat-11.0.8
export JAVA_HOME=/usr/share/elasticsearch/jdk
export PATH=$PATH:$TOMCAT_HOME/bin:$JAVA_HOME/bin2.加载环境变量配置文件
source /etc/profile.d/tomcat.sh

启动tomcat

startup.sh

浏览器访问

http://10.0.0.93:8080/

编写Filebeat的配置文件

vim /etc/filebeat/config/05-tomcat-to-es.yml
filebeat.inputs:
- type: logpaths:- /usr/local/apache-tomcat-11.0.8/logs/localhost_access_log.*.txt#output.console:
#  pretty: true# 将数据写入到ES集群
output.elasticsearch:# 指定ES集群地址hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]# 指定ES的索引名称index: zhu-tomcat# 禁用索引的生命周期,否则自定义索引名称无效
setup.ilm.enabled: false
# 定义索引模板
setup.template.name: "zhu-tomcat"
# 定义索引模板的匹配模式
setup.template.pattern: "zhu-tomcat*"
# 如果索引模板已经存在是否覆盖
setup.template.overwrite: false
# 配置索引模板
setup.template.settings:# 指定分片数量index.number_of_shards: 3# 指定副本数量index.number_of_replicas: 0

启动Filebeat

filebeat -e -c /etc/filebeat/config/06-tomcat-to-es.yaml

Kibana查看数据

🌟Filebeat多实例

如果在工作中需要启动多个Filebeat实例,则可以使用" --path.data"参数指定不同的数据目录,若目录不存在则会自动创建

如果工作中Filebeat停止可以使用kill命令操作来停止服务

启动实例一

filebeat -e -c /etc/filebeat/config/04-nginx-to-es.yml

启动实例二

filebeat -e -c /etc/filebeat/config/05-tomcat-to-es.yaml --path.data /tmp/xixi

查看进程信息

ps -ef | grep filebeat

🌟Filebeat采集多种业务日志

编写Filebeat配置文件

vim /etc/filebeat/config/06-multiple_input-to-es.yaml
filebeat.inputs:
- type: logpaths:- /var/log/nginx/access.log*tags: "nginx"
- type: logpaths:- /usr/local/apache-tomcat-11.0.8/logs/localhost_access_log.*.txttags: "tomcat"output.elasticsearch:hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]# 根据条件判断,将数据写入不同的索引indices:# 指定索引的名称- index: "zhu-contains-nginx-%{+yyyy.MM.dd}"# 指定匹配条件when.contains:tags: "nginx"- index: "zhu-contains-tomcat-%{+yyyy.MM.dd}"when.contains:tags: "tomcat"setup.ilm.enabled: false
setup.template.name: "zhu-contains"
setup.template.pattern: "zhu-contains*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 3index.number_of_replicas: 0

启动实例

filebeat -e -c /etc/filebeat/config/06-multiple_input-to-es.yaml

kibana出图展示

🌟Filebeat采集docker日志

安装Filebeat

dpkg -i filebeat-7.17.29-amd64.deb

编写Filebeat配置文件

vim /etc/filebeat/docker-to-es.yaml
filebeat.inputs:
- type: containerpaths: - '/var/lib/docker/containers/*/*.log'# 添加处理器。
processors:# 添加docker的元数据信息。- add_docker_metadata:# 找本地的套接字文件。host: "unix:///var/run/docker.sock"output.elasticsearch:hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]index: zhu-dockersetup.ilm.enabled: false
setup.template.name: "zhu-docker"
setup.template.pattern: "zhu-docker*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 6index.number_of_replicas: 0

启动实例

filebeat -e -c /etc/filebeat/docker-to-es.yaml

kibana查询

🌟Filebeat排除不必要的行exclude_lines

编写Filebeat配置文件

vim /etc/filebeat/docker-to-es.yaml
filebeat.inputs:
- type: containerpaths: - '/var/lib/docker/containers/*/*.log'# 排除不必要的行。exclude_lines: ['.*notice','.*entrypoint','.*listen']# 添加处理器。
processors:# 添加docker的元数据信息。- add_docker_metadata:# 找本地的套接字文件。host: "unix:///var/run/docker.sock"output.elasticsearch:hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]index: zhu-dockersetup.ilm.enabled: false
setup.template.name: "zhu-docker"
setup.template.pattern: "zhu-docker*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 6index.number_of_replicas: 0

启动Filebeat实例

filebeat -e -c /etc/filebeat/docker-to-es.yaml

Kibana出图展示

🌟Kibana分析容器的相关指标

创建可视化

选择基于聚合

选择指标

选择docker

计数显示记录的日志总数

显示容器的数量

🌟Filebeat模块应用案例

启用模块

filebeat modules enable nginx tomcat

修改nginx的模块文件

vim /etc/filebeat/modules.d/nginx.yml
- module: nginxaccess:enabled: truevar.paths: ["/var/log/nginx/access.log*"]error:enabled: truevar.paths: ["/var/log/nginx/error.log*"]ingress_controller:enabled: false

修改tomcat的模块文件

vim /etc/filebeat/modules.d/tomcat.yml
- module: tomcatlog:enabled: truevar.input: filevar.paths:- /usr/local/apache-tomcat-11.0.8/logs/localhost_access_log.*.txt

修改Filebeat的配置文件

vim /etc/filebeat/config/07-modules-to-es.yaml
# 启用Filebeat模块
filebeat.config.modules:# 指定模块的路径path: ${path.config}/modules.d/*.yml# 是否支持热加载配置reload.enabled: trueoutput.elasticsearch:hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]index: zhu-modules-xixisetup.ilm.enabled: false
setup.template.name: "zhu-modules"
setup.template.pattern: "zhu-modules*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 3index.number_of_replicas: 0

启动Filebeat实例

filebeat -e -c /etc/filebeat/config/07-modules-to-es.yaml

🌟基于Filebeat的模块分析nginx访问日志

Filebeat模块配置

vim /etc/filebeat/modules.d/nginx.yml
- module: nginxaccess:enabled: truevar.paths: ["/root/access.log*"]error:enabled: falsevar.paths: ["/var/log/nginx/error.log*"]ingress_controller:enabled: false

编写Filebeat配置文件

vim /etc/filebeat/config/08-modules_nginx-to-es.yaml
filebeat.config.modules:path: ${path.config}/modules.d/nginx.ymlreload.enabled: trueoutput.elasticsearch:hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]index: zhu-modules-efk-nginxsetup.ilm.enabled: false
setup.template.name: "zhu-modules"
setup.template.pattern: "zhu-modules*"
setup.template.overwrite: false
setup.template.settings:index.number_of_shards: 3index.number_of_replicas: 0

启动Filebeat实例

filebeat -e -c /etc/filebeat/config/08-modules_nginx-to-es.yaml

Kibana出图分析指标

wc -l /root/access.log

kibana统计全球用户分布图

kibana统计带宽

kibana统计PV

kibana统计IP

Kibana统计设备类型

kibana统计操作系统占比

kibana仪表盘Dasboard制作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/97610.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/97610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Fluent Bit针对kafka心跳重连机制详解(下)

#作者:程宏斌 文章目录disconnectreconnect接上篇:https://blog.csdn.net/qq_40477248/article/details/150957571?spm1001.2014.3001.5501disconnect 断开连接的情况主要是两种: 连接或传输过程中有错误发生 超时, 比如空闲时间超时 ** * Close and …

React 第七十一节 Router中generatePath的使用详解及注意事项

前言 generatePath 是 React Router 的一个实用工具函数,用于根据路径模式和参数对象生成实际的 URL 路径。它在需要动态构建链接的场景中非常有用,比如生成导航链接或重定向路径。 1、基本用法和注意事项 import { generatePath } from react-router-do…

Python 爬虫案例:爬取豆瓣电影 Top250 数据

一、案例背景与目标 豆瓣电影 Top250 是国内权威的电影评分榜单之一,包含电影名称、评分、评价人数、导演、主演、上映年份、国家 / 地区、类型等关键信息。本案例将使用 Python 编写爬虫,实现以下目标: 自动请求豆瓣电影 Top250 的 10 个分…

SPA安全警示:OAuth2.0致命漏洞

OAuth2.0在SPA应用中的安全陷阱SPA(单页应用)通常采用隐式授权(Implicit Flow)或PKCE(Proof Key for Code Exchange)授权模式,但存在以下安全隐患:隐式授权模式的漏洞访问令牌直接暴…

table表格字段明细展示

文章目录1、字段渲染2、异步请求展示明细3、hover展示问题3.1 基本逻辑3.2 hover时长判断3.3 renderhover表格字段明细展示,属于比较小的需求,但是也有一定交互细节,本文选取部分场景。 1、字段渲染 render和渲染组件是有区别的。render常见为…

主网上线后生态极速扩张的 Berachain 生态,有哪些值得关注的项目?

Berachain 是典型的将 DeFi 思维嵌入到共识机制中的 Layer1,其核心是 PoL(Proof of Liquidity)共识。PoL 要求验证者在获得区块奖励前,必须将流动性导入白名单协议,并由市场决定资金流向。这样,验证者的权重…

claude-code对比GitHub-Copilot

Claude Code 文档日期:2025 年 08 月 20 日 定位 项目级开发助手,专注于全局视野和复杂任务的处理。 特点 超长上下文支持:支持 200k 超长上下文,适合处理复杂项目。丰富的自定义命令:提供灵活的命令配置,满…

Roo Code自定义Mode(模式)

什么是自定义模式? 简单来说,自定义模式就像是给Roo Code穿上不同的"职业装"。你可以创建针对特定任务或工作流程量身定制的模式,让Roo在不同场景下表现出专业的行为。 这些模式分为两种类型:全局模式(在所有…

Next.js渲染模式:SSR、SSG与ISR揭秘

Next.js 核心渲染模式深度解析:SSR、SSG 与 ISR 在构建现代 Web 应用时,性能和用户体验是至关重要的考量。Next.js 作为 React 生态中一个备受推崇的框架,其强大的服务端渲染(SSR)、静态站点生成(SSG&#…

Veo Videos Generation API 对接说明

本文介绍了如何对接 Veo Videos Generation API,通过输入自定义参数生成Veo官方视频。 下面将详细阐述 Veo Videos Generation API 的对接流程。 申请流程 使用 API 前,需前往 Veo Videos Generation API 页面申请服务。进入页面后,点击「…

YOLO 目标检测:YOLOv3网络结构、特征输出、FPN、多尺度预测

文章目录一、YOLOV31、网络结构1.1 整体结构1.2 主干网络1.3 特征输出1.4 特征融合FPN(Feature Pyramid Networks)FPN 融合上采样融合2、多尺度预测3、损失函数4、性能对比一、YOLOV3 YOLOv3(You Only Look Once v3)是YOLO系列中…

【GIS图像处理】有哪些SOTA方法可以用于将1.5米分辨率遥感图像超分辨率至0.8米精度的?

针对将1.5米分辨率遥感图像超分辨率至0.8米的需求,当前主流方法可分为以下几类,结合最新研究进展和实际应用场景,具体技术方案及SOTA方法如下: 一、基于Transformer的高效建模 1. Top-k标记选择Transformer(TTST) 核心机制:通过动态选择前k个关键标记(token),消除冗…

【电力电子】逆变器控制策略:PQ Droop下垂控制、电压电流双环控制与SPWM调制

逆变器中的 PQ Droop 控制。 1. PQ Droop 控制的定义 PQ Droop(有时也称为功率下垂控制,Power Droop Control)是微电网、并联系统或逆变器并网运行中常用的一种分布式功率控制方法。 P-Droop(有功下垂):通过调节逆变器输出频率与有功功率之间的关系实现功率分配。 Q-Dro…

【LeetCode 热题 100】5. 最长回文子串——中心扩散法

Problem: 5. 最长回文子串 文章目录整体思路完整代码时空复杂度时间复杂度:O(N^2)空间复杂度:O(1)整体思路 这段代码旨在解决经典的 “最长回文子串” (Longest Palindromic Substring) 问题。问题要求在一个给定的字符串 S 中,找到一个最长…

六、练习3:Gitee平台操作

练习3:Gitee平台操作 练习目标 掌握Gitee平台的基本操作,包括创建仓库、推送代码、团队协作等。 练习步骤 步骤1:Gitee账号准备 访问 gitee.com注册账号(如果还没有)登录Gitee 步骤2:配置SSH密钥 # …

Git软件版本控制

软件版本控制作用:软件源码版本管理、多人协作开发、版本多分支开发、代码回滚(回退)等功能。集中式版本控制:将代码仓库放在一台服务器上,开发时要依赖这台服务器。优点:简单、方便管理、适合中小型项目缺…

生产环境Spark Structured Streaming实时数据处理应用实践分享

生产环境Spark Structured Streaming实时数据处理应用实践分享 一、业务场景描述 我们所在的电商平台需要实时监控用户行为数据(如点击、下单、支付等),基于事件级别的流式数据进行实时统计、会话聚合、漏斗分析,并将结果推送到Da…

海康相机开发---HCNetSDK

HCNetSDK(Hikvision Network Software Development Kit)是海康威视专为旗下安防监控设备打造的二次开发工具包,是连接上层应用与海康设备的核心桥梁。其封装了设备底层通信协议(包括私有协议与部分标准协议)&#xff0…

构建无广告私人图书馆Reader与cpolar让电子书库随身携带

文章目录前言:告别书荒,拯救灵魂的“摸鱼神器”1、关于Reader:小而美的开源在线阅读器2、Docker部署3、简单使用reader和添加书源4.群晖安装Cpolar工具5.创建reader阅读器的公网地址6.配置固定公网地址前言:告别书荒,拯…

amd cpu是x86架构吗

是的,AMD CPU属于x86架构‌,其64位扩展(x86-64)最初由AMD设计并成为行业标准。‌ ‌AMD与x86架构的关系‌ ‌技术渊源‌:AMD自1976年起通过技术授权成为x86架构的合法制造商,与英特尔共同主导x86市场。2003…