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,一经查实,立即删除!

相关文章

GitHub Actions的 CI/CD

GitHub Actions 是一个强大的 CI/CD 工具&#xff0c;适用于自动化各种开发任务。GitHub Actions 的原理是基于事件驱动的自动化流水线工具&#xff0c;通过定义触发条件和执行步骤&#xff0c;可以让项目在特定条件下自动运行一系列操作&#xff0c;比如构建、测试、部署等。 …

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

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

基于行业分类的目标检测与跟踪系统

针对题目“目标检测跟踪”&#xff0c;我们可以根据行业类别、子类别、细分类别以及应用场景选择合适的图表进行可视化分析。以下是一些可能的图表选择及其对应的SQL示例&#xff08;假设有一个数据库包含相关字段&#xff09;&#xff1a; 1. 散点图 (Scatter Plot) 应用场景…

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

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

在Ubuntu上配置python环境

apt install python3.11-venv 是一个命令&#xff0c;用于在基于 Debian 的 Linux 系统&#xff08;如 Ubuntu&#xff09;上安装 Python 3.11 的虚拟环境模块。 解释&#xff1a; apt: 这是一个包管理工具&#xff0c;用于安装、更新、删除软件包。install: 这是一个命令&am…

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文库

Flink CDC系列之:理解学习YARN模式

Flink CDC系列之&#xff1a;理解学习YARN模式 准备会话模式在 YARN 上启动 Flink 会话设置 Flink CDC提交 Flink CDC Job Apache Hadoop YARN 是许多数据处理框架中流行的资源提供者。Flink 服务提交给 YARN 的 ResourceManager&#xff0c;后者在由 YARN NodeManagers 管理的…

使用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 监控及日常处理脚本-…

JavaEE企业级开发技术-利用Mybatis完成CRUD

参考书籍《JavaEE企业级开发技术》-黑马程序员 利用Mybatis框架实现客户&#xff08;银行账户&#xff09;信息&#xff08;tb_cust:id\cname\csex\cbirth\cfavs\ctel\caddr&#xff09;的查询&#xff0c;新增&#xff0c;更新及删除的功能。 pom.xml <?xml version&qu…

解析孤独症早期症状表现,早发现早干预

孤独症&#xff0c;作为一种神经发育障碍性疾病&#xff0c;给众多家庭带来了极大的困扰。在孩子成长过程中&#xff0c;早期发现孤独症的症状并及时进行干预&#xff0c;对其未来的成长与发展起着至关重要的作用。 于孤独症早期&#xff0c;在社交方面常常会呈现出一些显著的症…

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

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

问:SQL中的通用函数及用法?

SQL函数是在SQL语句中使用的预定义的计算工具&#xff0c;可以对一列数据进行操作并返回一个单一的结果。这些函数大致可以分为两类&#xff1a;Aggregate函数和Scalar函数。Aggregate函数对一组值执行计算&#xff0c;并返回单个值&#xff0c;如求和、平均值、最大值和最小值…

构建简单的梯度提升决策树(GBDT)模型:MATLAB 实现详解

梯度提升决策树&#xff08;Gradient Boosting Decision Trees&#xff0c;GBDT&#xff09;是一种强大的集成学习方法&#xff0c;广泛用于回归和分类任务。GBDT 的思想是通过串联多个弱学习器&#xff08;通常是决策树&#xff09;&#xff0c;逐步优化预测残差&#xff0c;从…