Filebeat提供了几种不同的方式来启用模块:

  • modules.d编辑目录中启用模块配置
  • 运行Filebeat 编辑时启用模块
  • filebeat.yml文件编辑中启用模块配置

例如,要在 目录中启用apache2mysql配置modules.d,请使用:

./filebeat modules enable apache2 mysql

然后,当您运行Filebeat时,会加载modules.d目录中指定的相应模块配置

要查看启用和禁用模块的列表,请运行:

./filebeat modules list

要在命令行运行Filebeat时启用特定的模块,可以使用该--modules标志。

./filebeat -e --modules nginx,mysql,system

要启用filebeat.yml配置文件中的特定模块,可以将条目添加到filebeat.modules列表中。

filebeat.modules:
- module:nginx
- module:mysql
- module:system

配置文件中的变量:

每个模块和文件集都有变量,您可以设置这些变量来更改模块的默认行为,包括模块查找日志文件的路径。

- module: nginx
access:
var.paths: ["/var/log/nginx/access.log*"] #示例中的设置将设置nginx访问日志文件的路径
./filebeat -M“nginx.access.var.paths = [/ var / log / nginx / access.log *]” 
#在命令行设置变量时,变量名称需要包含模块和文件集名称。您可以指定多个覆盖。每个覆盖必须以-M
./filebeat --modules nginx -M "nginx.access.var.paths=[/var/log/nginx/access.log*]" -M "nginx.error.var.paths=[/var/log/nginx/error.log*]"#完整例子

测试配置文件是否有效:

./filebeat -e -c filebeat.yml -configtest -d "publish"  #可以测试您的配置文件以验证结构是否有效

  如果您需要在YAML文件中指定正则表达式,最好将正则表达式包装在单引号中  

  如果09在数值字段中使用前导零(例如,)而不用单引号包装值,那么YAML解析器可能会错误地解释该值。

  如果该值是有效的八进制数,则将其转换为整数。如果不是,则转换为浮点数。

Filebeat使用探勘器来定位和处理文件

可以filebeat.prospectorsfilebeat.yml配置文件的部分 指定一个探测器列表。

filebeat.prospectors:
- type: log
paths:
- /var/log/apache/httpd-*.log - type: log
paths:
- /var/log/messages
- /var/log/*.log

选项配置:

  • log:读取日志文件的每一行(默认)。
  • stdin:读入标准
  • redis:从redis中读取慢日志条目(实验性)。
  • udp:通过UDP读取事件。 max_message_size
  • docker:从Docker中读取日志。 containers
path
应该被抓取和抓取的基于全局路径的列表可以使用以下模式:/var/log/*/*.log
recursive_glob.enabled
启用扩展**到递归全局模式。启用此功能后,**每个路径中的最右边将扩展为固定数量的全局模式。例如:/foo/**扩展到/foo,/foo/*,/foo/*/*。此功能默认启用,设置recursive_glob.enabled为false将其禁用
encoding
以下是W3C推荐的一些示例编码:
utf-16be,utf-16be,big5,gb18030,gbk,hz-gb-2312,euc-kr,euc-jp,iso-2022-jp,shift-jis等等
exclude_lines
正则表达式的列表,以匹配您希望Filebeat排除的行。Filebeat删除与列表中正则表达式匹配的所有行。
filebeat.prospectors:
- paths:
- /var/log/myapp/*.log
exclude_lines: ['^DBG']
include_lines
正则表达式的列表,以匹配您希望Filebeat包含的行。Filebeat仅导出与列表中正则表达式匹配的行。
filebeat.prospectors:
- paths:
- /var/log/myapp/*.log
include_lines: ['^ERR', '^WARN']
exclude_files
正则表达式的列表,以匹配您希望Filebeat忽略的文件。
exclude_files:['\ .gz $']
tags
Beat包含在tags每个发布事件的字段中的标签列表。标签可以很容易地在Kibana中选择特定的事件,或者在Logstash中应用条件过滤。这些标签将被追加到一般配置中指定的标签列表中。
filebeat.prospectors:
- paths: ["/var/log/app/*.json"]
tags: ["json"]
fields
您可以指定的可选字段将其他信息添加到输出。例如,您可以添加可用于过滤日志数据的字段。字段可以是标量值,数组,字典或这些的任何嵌套组合。
filebeat.prospectors:
- paths: ["/var/log/app/*.log"]
fields:
app_id: query_engine_12
fields_under_root
如果此选项设置为true,则自定义字段将作为顶级字段存储在输出文档中,而不是在fields子字典下进行分组 。如果自定义字段名称与由Filebeat添加的其他字段名称冲突,则自定义字段会覆盖其他字段。
processors
要应用于探矿者生成的数据的处理器列表。
ignore_older
如果启用此选项,Filebeat将忽略在指定时间范围之前修改的任何文件。
close_*
的close_*配置选项用于之后的某一标准或时间以关闭收割机。关闭收割机意味着关闭文件处理程序。如果在收割机关闭后文件被更新,文件将在scan_frequency经过之后再被拾取。
close_inactive
启用此选项时,Filebeat将关闭文件句柄(如果文件尚未在指定的时间内收获)。例如,如果您的日志文件每隔几秒更新一次,则可以安全地设置close_inactive为1m。如果存在具有完全不同更新速率的日志文件,则可以使用具有不同值的多个探测器配置。
close_renamed
启用此选项时,文件重命名时Filebeat会关闭文件处理程序。例如,在旋转文件时发生这种情况。默认情况下,采集器保持打开状态并持续读取文件,因为文件处理程序不依赖于文件名。如果close_renamed启用该选项,并且文件被重命名或移动的方式不再与为探矿者指定的文件模式匹配,则文件将不会被再次拾取。Filebeat不会完成读取文件。
clean_removed
启用此选项后,Filebeat会在删除文件时关闭收割机。通常情况下,文件只能在指定的时间内无效后才能被删除close_inactive。但是,如果文件被提前删除,而您没有启用close_removed,Filebeat会保持打开文件以确保收割机已经完成。如果此设置导致文件因磁盘太早从磁盘中删除而未完全读取,请禁用此选项。
close_eof
启用此选项后,Filebeat会在文件结束时立即关闭文件。当您的文件只写入一次而不是不时更新时,这非常有用。例如,当您将每个日志事件写入新文件时,都会发生这种情况。该选项默认是禁用的。
close_timeout
该选项在输出被阻塞的情况下特别有用,这使得Filebeat即使对于从磁盘中删除的文件也保持打开的文件处理程序。设置close_timeout为5m确保文件定期关闭,以便操作系统释放它们。
clean_*
这些clean_*选项用于清理注册表文件中的状态条目。这些设置有助于减小注册表文件的大小,并可以防止潜在的inode重用问题。
clean_inactive
启用此选项后,Filebeat会在指定的非活动时间段过去后移除文件的状态。如果文件已被Filebeat忽略(文件比文件早ignore_older),则只能删除状态。该clean_inactive设置必须大于ignore_older + scan_frequency在收集文件时确保没有状态被删除。否则,该设置可能会导致Filebeat不断重新发送完整内容,因为它将clean_inactive删除探测器 仍然检测到的文件的状态。如果文件更新或再次出现,则从头开始读取文件。
clean_removed
启用此选项后,Filebeat将清除注册表中的文件(如果在最后一个已知名称下不能在磁盘上找到)。这意味着收割机完成后重命名的文件将被删除。该选项默认启用。
scan_frequency
探矿者在指定收获的路径中检查新文件的频率。例如,如果您指定一个glob /var/log/*,则使用指定的频率扫描目录中的文件 scan_frequency。指定1以尽可能频繁地扫描目录,而不会导致Filebeat过于频繁地扫描。我们不建议设置此值<1s。
harvester_buffer_sizeedit
每个采集器在获取文件时使用的缓冲区的大小(以字节为单位)。默认是16384
max_bytes
单个日志消息可以拥有的最大字节数。之后的所有字节max_bytes被丢弃并且不被发送。此设置对于可能变大的多行日志消息特别有用。默认值是10MB(10485760)。
json
这些选项使得Filebeat能够解码构造为JSON消息的日志。Filebeat逐行处理日志,所以JSON解码只在每行有一个JSON对象时才起作用。
json.keys_under_root:true
json.add_error_key:true
json.message_key:log
keys_under_root
默认情况下,解码后的JSON放在输出文档中的“json”键
下。如果启用此设置,则会将键复制到输出文档的顶层。默认值是false。
overwrite_keys
如果keys_under_root启用此设置,那么来自解码的JSON对象的值会覆盖Filebeat通常添加的字段(类型,源,偏移量等)以防冲突。
add_error_key
如果启用此设置,则在出现JSON解组错误或者message_key在配置中定义了a 但不能使用的情况下,Filebeat将添加“error.message”和“error.type:json”键。
message_key
一个可选的配置设置,用于指定应用行筛选和多行设置的JSON密钥。如果指定,键必须位于JSON对象的顶层,并且与键关联的值必须是字符串,否则不会发生筛选或多行聚合。
multiline
控制Filebeat如何处理跨越多行的日志消息的选项。
tail_files
如果此选项设置为true,Filebeat开始在每个文件的末尾读取新文件,而不是开始。将此选项与日志循环结合使用时,可能会跳过新文件中的第一个日志条目。默认设置是false。
pipeline
摄取节点管道标识,用于为探测器生成的事件设置。
symlinks
该symlinks选项允许Filebeat除了常规文件之外还收集符号链接。收集符号链接时,Filebeat会打开并读取原始文件,即使它报告符号链接的路径。
backoff
退避选项指定Filebeat如何积极地搜索打开的文件以进行更新。在大多数情况下,您可以使用默认值。
harvester_limit
该harvester_limit选项限制了一个探矿者并行启动的收割机的数量。这直接关系到打开的文件处理程序的最大数量。默认为harvester_limit0,这意味着没有限制。如果要采集的文件数超过操作系统的打开文件处理程序限制,则此配置很有用。
enabled
该enabled选项可与每个探矿者一起使用,以定义探矿者是否启用。默认情况下,enabled被设置为true。
msx_message_size
当使用type: udp,指定通过UDP接收的消息的最大大小。默认值是10240。

指定多个探矿器

当您需要从多个文件中收集行时,可以简单地配置一个探测器,并指定多个路径来为每个文件启动一个收集器。但是,如果你想申请额外的特定探矿(如fieldsinclude_linesexclude_linesmultiline,等),以从特定文件中获取的线,你需要在Filebeat配置文件中定义多个探矿。

filebeat.prospectors:
- type: log
paths:
- /var/log/system.log
- /var/log/wifi.log
- type: log
paths:
- "/var/log/apache2/*"
fields:
apache: true
fields_under_root: true
config_dir
filebeat.config_dir: path/to/configs

包含其他探测器配置文件的目录的完整路径。每个配置文件必须以.yml。即使只处理文件的探测器部分,每个配置文件也必须指定完整的Filebeat配置层次结构。

shutdown_timeout

filebeat.shutdown_timeout:5s

您可以配置该shutdown_timeout选项以指定Filebeat在关闭之前等待发布者完成发送事件的最长时间。如果所有事件都被确认之前shutdown_timeout,Filebeat将关闭。

普通配置:

name: "my-shipper"
tags: ["service-X", "web-tier"]
name:Beat的名字。如果此选项为空,hostname则使用服务器。该名称被包括beat.name在每个已发布的交易中的字段中。您可以使用该名称对由单个节拍发送的所有交易进行分组。
tags:Beat包含在tags每个已发布事务的字段中的标签列表。通过标签可以很容易地将服务器按不同的逻辑属性分组 例如,如果您有一组Web服务器,
  则可以将“webservers”标记添加到每个服务器上的Beat,然后在Kibana Web界面中使用过滤器和查询来获取整个服务器组的可视化。
  tags: ["my-service", "hardware", "test"]

fields

fields: {project: "myproject", instance-id: "574734885120952459"}
您可以指定的可选字段将其他信息添加到输出。字段可以是标量值,数组,字典或这些的任何嵌套组合。默认情况下,您在此处指定的字段将被分组在fields输出文档的子字典下。
要将自定义字段存储为顶级字段,请将该fields_under_root选项设置为true。
fields_under_root
如果此选项设置为true,则自定义字段将作为顶级字段存储在输出文档中,而不是在fields子字典下进行分组。如果自定义字段名称与其他字段名称冲突,则自定义字段将覆盖其他字段。
fields_under_root: true
fields:
instance_id: i-10a64379
region: us-east-1

探矿者配置

对于探矿者配置,您path可以在文件的filebeat.config.prospectors部分指定选项 filebeat.yml。
filebeat.config.prospectors:
enabled: true
path: configs/*.yml
- type: log
paths:
- /var/log/mysql.log
scan_frequency: 10s - type: log
paths:
- /var/log/apache.log
scan_frequency: 5s
两个正在运行的探矿者没有定义重叠的文件路径是至关重要的。如果多个探矿者同时收获同一个文件,可能会导致意想不到的行为。

  

模块配置

filebeat.config.modules:
enabled: true
path: ${path.config}/modules.d/*.yml
-  module:apache2
access:
enabled:true
var.paths:[/var/log /apache2 / access.log*]
error:
enabled:true
var.paths:[/var/log/apache2/error.log*]
对于模块配置,您path可以在文件filebeat.config.modules部分指定选项 filebeat.yml。默认情况下,Filebeat加载modules.d目录中启用的模块配置

ELK--filebeat详解的更多相关文章

  1. 日志分析工具ELK配置详解

    日志分析工具ELK配置详解 一.ELK介绍 1.1 elasticsearch 1.1.1 elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分 ...

  2. ELK部署详解--filebeat

    filebeat.yml ###################### Filebeat Configuration Example ######################### # This ...

  3. 集中式日志系统 ELK 协议栈详解

    简介 在我们日常生活中,我们经常需要回顾以前发生的一些事情:或者,当出现了一些问题的时候,可以从某些地方去查找原因,寻找发生问题的痕迹.无可避免需要用到文字的.图像的等等不同形式的记录.用计算机的术语 ...

  4. ELK部署详解--elasticsearch

    #Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析.它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编 ...

  5. ELK部署详解--kibana

    kibana.yml # Kibana is served by a back end server. This setting specifies the port to use.#端口server ...

  6. ELK部署详解--logstash

    logstash.yml # Settings file in YAML## Settings can be specified either in hierarchical form, e.g.:# ...

  7. ELK+Filebeat 集中式日志解决方案详解

    链接:https://www.ibm.com/developerworks/cn/opensource/os-cn-elk-filebeat/index.html?ca=drs- ELK Stack ...

  8. elk + filebeat,6.3.2版本简单搭建,实现我们自己的集中式日志系统

    前言 刚从事开发那段时间不习惯输出日志,认为那是无用功,徒增代码量,总认为自己的代码无懈可击:老大的叮嘱.强调也都视为耳旁风,最终导致的结果是我加班排查问题,花的时间还挺长的,要复现问题.排查问题等, ...

  9. Filebeat-1.3.1安装和设置(图文详解)(多节点的ELK集群安装在一个节点就好)(以Console Output为例)

    前期博客 Filebeat的下载(图文讲解) 前提 Elasticsearch-2.4.3的下载(图文详解) Elasticsearch-2.4.3的单节点安装(多种方式图文详解) Elasticse ...

  10. ElasticSearch实战系列八: Filebeat快速入门和使用---图文详解

    前言 本文主要介绍的是ELK日志系统中的Filebeat快速入门教程. ELK介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是 ...

随机推荐

  1. 【Codeforces 142C】Help Caretaker

    Codeforces 142 C 题意:给一个\(n\times m\)的空矩阵,求里面放最多的可旋转的\(T\)字形的个数,并输出方案. 思路1: 由于\(n\)和\(m\)比较小,所以可以尝试搜索 ...

  2. Euler:欧拉函数&素数筛

    一.欧拉函数 欧拉函数是小于x的整数中与x互质的数的个数,一般用φ(x)表示. 通式:   其中p1, p2……pn为x的所有质因数,x是不为0的整数. 比如x=12,拆成质因数为12=2*2*3, ...

  3. linux笔记-多服务器同时执行相同命令

    1.服务器的ip地址写到文件中,命名为nodelist.txt 192.168.1.160 192.168.1.166 2.编写运行脚本 for i in `cat nodelist.txt`do s ...

  4. Skyline 二次实现单体化模型选择查询示例代码

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...

  5. 关于PCB开窗

    如果走220V,那么线宽一点,一般高电压下面不覆铜 https://blog.csdn.net/zhy295006359/article/details/77412566 假设感觉需要走大电流,那么就 ...

  6. ASP.NET MVC学习笔记(二)笔记

    接下来我们一起了解ASP.NET MVC的最重要的核心技术,了解ASP.NET MVC的开发框架,生命周期,技术细节. 一.Routing与ASP.NET MVC生命周期 1.Routing——网址路 ...

  7. WPF,ListView设置分组

    原文:WPF,ListView设置分组 今天遇到一个问题,就是在ListView中设置分组.想了很久在网上早了些资料作出一个例子. 分组字段也可以在后台中定义: CollectionView view ...

  8. python语言程序设计9

    1, 数字转换形式中有很多东西都不会,但是总不能放仍不管把? 总结点东西吧,比如 print()中增加end=""参数表示输入后不增加换行,多个print可以连续输出. 2, 我还 ...

  9. 【福利】送Spark大数据平台视频学习资料

    没有套路真的是送!! 大家都知道,大数据行业spark很重要,那话我就不多说了,贴心的大叔给你找了份spark的资料.   多啰嗦两句,一个好的程序猿的基本素养是学习能力和自驱力.视频给了你们,能不能 ...

  10. dp入门——由分杆问题认识动态规划

    简介 如果你常刷leetcode,会发现许多问题带有Dynamic Programming的标签.事实上带有dp标签的题目有115道,大部分为中等和难题,占所有题目的12.8%(2018年9月),是占 ...