Elastic Stack - FileBeat 入门浅体验

  • Filebeat 是 Elastic Stack 中的一个轻量级日志转发器,主要用于收集和转发日志数据。
  • Filebeat 作为代理安装在您的服务器上,可以监控您指定的日志文件或位置,收集日志事件,并将其转发到 Elasticsearch 或 Logstash 进行索引。

一、原理

How Filebeat works | Filebeat Reference [8.15] | Elastic

Filebeat 的工作原理如下:启动 Filebeat 时,它会启动一个或多个输入,这些输入会查找您为日志数据指定的位置。对于 Filebeat 找到的每个日志,Filebeat 都会启动一个采集器。每个采集器都会读取新内容的单个日志,并将新的日志数据发送到 libbeat,libbeat 会聚合事件并将聚合数据发送到您为 Filebeat 配置的输出。

Filebeat 的两个主要组件

  • Harvester 负责读取单个文件的内容。Harvester 逐行读取每个文件,并将内容发送到输出。为每个文件启动一个 harvester。Harvester 负责打开和关闭文件,这意味着当 Harvester 运行时,文件描述符保持打开状态。
  • input 负责管理采集器并查找所有要读取的源

Filebeat 如何保持文件的状态

Filebeat 会保留每个文件的状态,并经常将状态刷新到注册表文件中的磁盘。该状态用于记住 Harvester 读取的最后一个偏移量,并确保发送所有 log 行。如果无法访问输出(例如 Elasticsearch 或 Logstash),Filebeat 会跟踪发送的最后一行,并在输出再次可用时继续读取文件。当 Filebeat 运行时,每个输入的状态信息也会保留在内存中。当 Filebeat 重新启动时,注册表文件中的数据用于重建状态,并且 Filebeat 在最后一个已知位置继续每个采集器。

二、安装及配置

下载安装

Filebeat quick start: installation and configuration | Filebeat Reference [8.15] | Elastic

下载解压即可。

windows 下启动命令:

.\filebeat.exe
## 这个命令启动无任何输出,添加 -e 可输出相关日志

配置

Configure Filebeat | Filebeat Reference [8.15] | Elastic

默认配置模版(仅保留部分)

###################### Filebeat Configuration Example ########################## ============================== Filebeat inputs ===============================filebeat.inputs:# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input-specific configurations.# filestream is an input for collecting log messages from files.
- type: filestream# Unique ID among all inputs, an ID is required.id: my-filestream-id# Change to true to enable this input configuration.enabled: false# Paths that should be crawled and fetched. Glob based paths.paths:- /var/log/*.log#- c:\programdata\elasticsearch\logs\*# Exclude lines. A list of regular expressions to match. It drops the lines that are# matching any regular expression from the list.# Line filtering happens after the parsers pipeline. If you would like to filter lines# before parsers, use include_message parser.#exclude_lines: ['^DBG']# Include lines. A list of regular expressions to match. It exports the lines that are# matching any regular expression from the list.# Line filtering happens after the parsers pipeline. If you would like to filter lines# before parsers, use include_message parser.#include_lines: ['^ERR', '^WARN']# Exclude files. A list of regular expressions to match. Filebeat drops the files that# are matching any regular expression from the list. By default, no files are dropped.#prospector.scanner.exclude_files: ['.gz$']# Optional additional fields. These fields can be freely picked# to add additional information to the crawled log files for filtering#fields:#  level: debug#  review: 1# ============================== Filebeat modules ==============================filebeat.config.modules:# Glob pattern for configuration loadingpath: ${path.config}/modules.d/*.yml# Set to true to enable config reloadingreload.enabled: false# Period on which files under path should be checked for changes#reload.period: 10s# ======================= Elasticsearch template setting =======================setup.template.settings:index.number_of_shards: 1#index.codec: best_compression#_source.enabled: false# ================================== Outputs ===================================# Configure what output to use when sending the data collected by the beat.# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:# Array of hosts to connect to.hosts: ["localhost:9200"]# Performance preset - one of "balanced", "throughput", "scale",# "latency", or "custom".preset: balanced# Protocol - either `http` (default) or `https`.#protocol: "https"# Authentication credentials - either API key or username/password.#api_key: "id:api_key"#username: "elastic"#password: "changeme"# ------------------------------ Logstash Output -------------------------------
#output.logstash:# The Logstash hosts#hosts: ["localhost:5044"]# Optional SSL. By default is off.# List of root certificates for HTTPS server verifications#ssl.certificate_authorities: ["/etc/pki/root/ca.pem"]# Certificate for SSL client authentication#ssl.certificate: "/etc/pki/client/cert.pem"# Client Certificate Key#ssl.key: "/etc/pki/client/cert.key"# ================================= Processors =================================
processors:- add_host_metadata:when.not.contains.tags: forwarded- add_cloud_metadata: ~- add_docker_metadata: ~- add_kubernetes_metadata: ~# ================================== Logging ===================================# Sets log level. The default log level is info.
# Available log levels are: error, warning, info, debug
#logging.level: debug# At debug level, you can selectively enable logging only for some components.
# To enable all selectors, use ["*"]. Examples of other selectors are "beat",
# "publisher", "service".
#logging.selectors: ["*"]
inputs

指定 Filebeat 如何查找和处理输入数据。

  • type :指定输入的类型,支持以下类型(仅列举常见部分):
    • filestream
    • HTTP JSON
    • Kafka
    • Log (deprecated in 7.16.0, use filestream)
    • MQTT
    • Redis
    • Stdin
    • Syslog
    • TCP
    • UDP
    • Websocket
  • id:此输入的唯一标识符。每个 filestream 输入都必须具有唯一的 ID。注意:更改输入 ID 可能会导致数据重复,因为文件的状态将丢失,并且将再次从头开始读取它们。
  • paths:必选项,读取文件的路径,基于glob匹配语法。
  • enabled:是否启用该模块。
  • exclude_lines:排除匹配列表中的正则表达式。
  • include_lines:包含匹配列表中的正则表达式。
  • exclude_files:排除的文件,匹配正则表达式的列表。
  • fields:可选的附加字段。这些字段可以自由选择,添加附加信息到抓取的日志文件进行过滤。
outputs

可以通过在 <font style="color:rgb(85, 85, 85);background-color:rgb(248, 248, 248);">filebeat.yml</font> 配置文件的 Outputs 部分中设置选项,将 Filebeat 配置为写入特定输出。只能定义单个输出。

  • type :指定输出的类型,支持以下类型(仅列举常见部分):
    • Elasticsearch
    • Logstash
    • Kafka
    • Redis
    • File
    • Console

三、 模块 modules

Filebeat 的模块(Modules)主要是为了简化了常见日志格式的收集、解析和可视化而生。

每个模块都包含一组预定义的配置文件,这些配置文件定义了如何收集特定类型的数据。使用模块可以让 Filebeat 更加易于配置和管理,特别是在处理多种不同类型的数据源时。

主要作用

  • 简化配置:每个模块都有预定义的配置模板,包含了采集数据所需的默认配置项,使得用户不需要手动编写复杂的配置文件。
  • 自动化采集:模块可以自动检测并采集特定类型的日志文件。例如,<font style="color:rgb(44, 44, 54);">system</font> 模块可以自动采集操作系统日志,<font style="color:rgb(44, 44, 54);">nginx</font> 模块可以自动采集 Nginx 的访问日志。
  • 预处理和格式化数据:模块包含了预定义的处理器(processors),这些处理器可以对采集到的数据进行格式化和标准化。
  • 集成和索引模板:模块可以与 Elasticsearch 配合使用,自动创建索引模板。索引模板定义了如何存储和索引数据,确保数据的一致性和可查询性。
  • 监控和健康检查:一些模块还包含了监控和健康检查功能,可以定期检查数据源的状态,并报告任何问题。

内置模块

windows 可以使用以下命令查看已经启用和禁用的模块:

PS D:\program\filebeat-8.15.3-windows-x86_64> .\filebeat.exe modules list
Enabled:Disabled:
activemq
apache
auditd
aws
awsfargate
azure
cef
checkpoint
cisco
coredns
crowdstrike
cyberarkpas
elasticsearch
envoyproxy
fortinet
gcp
google_workspace
haproxy
ibmmq
icinga
iis
iptables
juniper
kafka
kibana
logstash
microsoft
misp
mongodb
mssql
mysql
mysqlenterprise
nats
netflow
nginx
o365
okta
oracle
osquery
panw
pensando
postgresql
rabbitmq
redis
salesforce
santa
snyk
sophos
suricata
system
threatintel
traefik
zeek
zookeeper
zoom

启用模块

执行以下命令即可启用特定模块:

PS D:\program\filebeat-8.15.3-windows-x86_64> .\filebeat.exe modules enable mysql
Enabled mysql

启用后需要在 modules.d 目录中修改启用的模块的配置文件,具体配置需要根据具体模块文档来处理,如以下 mysql 模块的配置文件:

- module: mysqlerror:enabled: truevar.paths: ["C:/ProgramData/MySQL/MySQL Server 8.0/Data/PC202105231223.err*"]slowlog:enabled: truevar.paths: ["C:/ProgramData/MySQL/MySQL Server 8.0/Data/PC202105231223-slow.log*"]

四、使用实例

文件输入,控制台输出

# 输入
filebeat.inputs:
- type: filestreamid: my-filestream-idenabled: truepaths:- D:\logdemo\*.log
# 输出
output.console:pretty: true

TCP 输入,控制台输出

filebeat.inputs:
- type: tcpid: my-filestream-idenabled: truehost: "localhost:9000"fields: aTestField: this is a test!!

默认使用 \n 作为 line_delimiter(行分隔符),可自行修改 :

filebeat.inputs:
- type: tcpid: my-filestream-idenabled: truehost: "localhost:9000"fields: aTestField: this is a test!!line_delimiter: '&'

使用 mysql 模块采集慢日志,控制台输出

配置方式参见 三、modules 3启用模块

五、参考文档

  • Filebeat quick start: installation and configuration | Filebeat Reference [8.15] | Elastic
  • Filebeat的基本使用-CSDN博客

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

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

相关文章

STM32--基于STM32F103C8T6的OV7670摄像头显示

本文介绍基于STM32F103C8T6实现的OV7670摄像头显示设计&#xff08;完整资源及代码见文末链接&#xff09; 一、简介 本文实现的功能&#xff1a;基于STM32F103C8T6实现的OV7670摄像头模组实时在2.2寸TFT彩屏上显示出来 所需硬件&#xff1a; STM32F103C8T6最小系统板、OV76…

C#与C++交互开发系列(十一):委托和函数指针传递

前言 在C#与C的互操作中&#xff0c;委托&#xff08;delegate&#xff09;和函数指针的传递是一个复杂但非常强大的功能。这可以实现从C回调C#方法&#xff0c;或者在C#中调用C函数指针的能力。无论是跨语言调用回调函数&#xff0c;还是在多线程、异步任务中使用委托&#x…

CloudStack云平台搭建:XenServer服务器系统安装

1.打开VMware虚拟机&#xff0c;点击“创建新的虚拟机” 2. 点击“自定义&#xff08;高级&#xff09;” → “下一步” 3. 点击“下一步” 4. 点击“稍后安装操作系统” → “下一步” 5. 选择“其他” → “其他64位” → “下一步” 6. 修改“虚拟机名称” 、“位置”&…

[linux]和windows间传输命令scp 执行WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!错误解决

[linux]和windows间传输命令scp 执行WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!错误解决. 现象&#xff1a; 原因&#xff1a; 接收方服务器系统做了某些更改&#xff0c;导致登录时会报错。主要因为接收方服务器对登录过它的主机都会把该主机登录标识证书记录下来&a…

.NET代码打包加密工具

下载地址: dotNet代码打包加密工具资源-CSDN文库

使用Node.js与Express构建RESTful API

&#x1f496; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4bb; Gitee主页&#xff1a;瑕疵的gitee主页 &#x1f680; 文章专栏&#xff1a;《热点资讯》 使用Node.js与Express构建RESTful API 1 引言 2 Node.js与Express简介 3 安装Node.js与Express 4 创建Express项目 5…

Server - 配置 HuggingFace 工程数据 Transformers-CLI 格式与 Huggingface-CLI 格式的差别

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/141140498 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Huggin…

【机器学习(十九)】零代码开发之随机森林(Random Forest,RF)算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理&#xff08;一&#xff09;定义&#xff08;二&#xff09;袋外数据 三、随机森林的优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 四、随机森林分类任务实现&#xff08;一&#xff09;数据加载&#xff08;二&…

天地图实现海量聚合marker--uniapp后端详细实现

本文章详细的讲解了前后端代码来 实现uniapp天地图功能的实现 以及 后端海量数据的聚合查询 和网格算法实现思路。 并对当数据量增加和用户频繁请求接口时可能导致服务器负载过高做了前后端优化。 前端uniapp&#xff1a; 实现了天地图的行政区划边界/地图切换/比例尺/海量数…

数据结构预备知识---Java集合框架、List接口、包装类、装箱拆箱和泛型

文章目录 Java集合框架List接口包装类 和 装箱、拆箱泛型 Java集合框架 Java 集合框架 Java Collection Framework &#xff0c;又被称为容器 container &#xff0c;是定义在 java.util 包下的一组接口 interfaces和其实现类 classes .其主要表现为将多个元素 element 置于一个…

Oracle自动处理表空间不足脚本

关注过我的朋友们应该知道我分享过一些常用的监控脚本&#xff0c;其中最常用的就是监控表空间使用率的脚本&#xff0c;具体可以参考如下链接​&#xff1b; oracle常用监控脚本&#xff08;纯干货&#xff0c;没有EMCC,ZABBIX也不怕&#xff09;_oracle 监控及日常处理脚本-…

基于springboot+vue实现的免费体育馆场地预约系统 (源码+L文+ppt)4-099

基于springbootvue实现的免费体育馆场地预约系统 &#xff08;源码L文ppt&#xff09;4-099 4.1 系统总体结构设计 本系统是基于B/S架构的网站系统&#xff0c;分为系统前台和系统后台&#xff0c;前台主要是提供给注册用户和未注册登录的游客使用的&#xff0c;包括首页、场馆…

文案语音图片视频管理分析系统-视频矩阵

文案语音图片视频管理分析系统-视频矩阵 1.产品介绍 产品介绍方案 产品名称&#xff1a; 智驭视频矩阵深度分析系统&#xff08;SmartVMatrix&#xff09; 主要功能&#xff1a; 深度学习驱动的视频内容分析多源视频整合与智能分类高效视频检索与编辑实时视频监控与异常预警…

openlayers 封装加载本地geojson数据 - vue3

Geojson数据是矢量数据&#xff0c;主要是点、线、面数据集合 Geojson数据获取&#xff1a;DataV.GeoAtlas地理小工具系列 实现代码如下&#xff1a; import {ref,toRaw} from vue; import { Vector as VectorLayer } from ol/layer.js; import { Vector as VectorSource } fr…

OpenCV图像处理方法:腐蚀操作

腐蚀操作 前提 图像数据为二值的&#xff08;黑/白&#xff09; 作用 去掉图片中字上的毛刺 显示图片 读取一个图像文件&#xff0c;并在一个窗口中显示它。用户可以查看这个图像&#xff0c;直到按下任意键&#xff0c;然后程序会关闭显示图像的窗口 # cv2是OpenCV库的P…

【运维心得】U盘启动安装Dell服务器踩坑指南

目录 第一坑&#xff1a;没有键盘选择 第二坑&#xff1a;没有修改mount路径 最近碰到一台Dell服务器R720需要重新安装centos操作系统&#xff0c;由于之前已经配置好了Raid&#xff0c;这里就节省了配置磁盘的步骤。 以前都是通过光盘安装的&#xff0c;考虑到R720是支持U盘…

RAGChecker:显著超越RAGAS,一个精细化评估和诊断 RAG 系统的创新框架

RAG应用已经是当下利用大模型能力的典型应用代表&#xff0c;也获得了极大的推广&#xff0c;各种提升RAG性能的技术层出不穷。然而,如何全面、准确地评估 RAG 系统一直是一个挑战。传统评估方法存在诸多局限性:无法有效评估长文本回复、难以区分检索和生成模块的错误来源、与人…

Jmeter自动化实战

一、前言 由于系统业务流程很复杂,在不同的阶段需要不同的数据,且数据无法重复使用,每次造新的数据特别繁琐,故想着能不能使用jmeter一键造数据 二、创建录制模板 可参考:jmeter录制接口 首先创建一个录制模板 因为会有各种请求头,cookies,签名,认证信息等原因,导致手动复制…

JDK的下载

目录 JDK官网 Windows Ubantu 1.安装JDK 2.确定JDK版本 卸载OpenJDK Centos 1.下载JDK 2.安装JDK 3.验证JDK JDK官网 官网网址&#xff1a;Java Downloads | Oracle Windows 双击运⾏exe⽂件, 选择安装⽬录, 直⾄安装完成 Ubantu 1.安装JDK 更新软件包 sudo apt u…

【YOLO 系列】基于YOLO的工业自动化轴承缺陷检测系统【python源码+Pyqt5界面+数据集+训练代码】

前言 轴承作为机械设备中的关键部件&#xff0c;其性能直接影响到设备的稳定性和寿命。轴承缺陷的早期检测对于预防设备故障、减少维护成本和提高生产效率至关重要。然而&#xff0c;传统的轴承缺陷检测方法往往依赖于人工检查&#xff0c;这不仅效率低下&#xff0c;而且容易…