filebeat安装使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了filebeat安装使用相关的知识,希望对你有一定的参考价值。

参考技术A

1.配置文件含义

2.启动filebeat测试

输出信息

filebeat找不到配置文件时可以指定配置文件

./filebeat -c /usrlocal/filebeat/filebeat.yml

-e 将启动信息输出到屏幕上

filebeat进程日志

filebeat本身运行的日志默认位置 $install_path/logs/filebeat

要修改filebeat的日子路径,可以添加一下内容在filebeat.yml配置文件

查看可用的模块列表

模块配置文件保存位置

$install_path/filebeat/modules.d/

启动nginx模块

sudo ./filebeat modules enable nginx

1.使用模板默认路径

nginx模块配置收集日志的默认路径是

CentOS

Ubuntu

测试

2.nginx日志不在默认存储路径下时

如果不设置此项,filebeat将根据你的操作系统选择使用默认路径

注意:此种方式十一追加的方式和模块默认路径合并在一起的,也就是说使用了此种方式,nginx模块还是回去默认路径下查找。

3.配置ouput

filebeat是用于搜集日志,之后把日志推送到某个接受的系统中,这些系统或者装置在filebeat中称为output。

output类型

完整的output列表在filebeat官方文档

filebeat在运行的时候,以上的output只可配置其中一种

输出到console

输出完整的json数据

前台运行filebeat

如果只想输出完整json数据中的某些字段

其他输出目标:

输出到elasticsearch

输出到 logstash

有时候处于实验目的,可能需要重新读取日志文件,这个时候需要删除安装目录下的 data 文件夹,重新运行 filebeat 即可。
[图片上传失败...(image-c04404-1650615591430)]

报错

假如出现如下报错,请删制除安装目录中的data文件夹

查看一下是否有一个进程已经处于运行状态,尝试杀死此进程,之后重新运行filebeat

可以在配置中定义处理器,以便在事件发送到配置的输出之前对其进行处理。libbeat库提供以下处理器∶

工作方式

每个处理器都接收一个事件,对该事件应用已定义的操作,然后返回该事件。如果定义

处理器列表,则将按照在Filebeat配置文件中定义的顺序执行它们。

去重日志中的某些行

配置位置在 filebeat.yml 文件中

删除所有以 DBG: 开头的行

像输出的信息中添加某些自定义字段

从事件中删除某些字段

以上配置,将删除字段: field1 和 field2

ignore_missing 的值为 false 表示,字段名不存在则会返回错误。为true不会返回错误。

注意: 事件中的 "@timestamp 和 type 字段是无法删除的。

下面的配置示例是删除顶级字段 input 和顶级字段 ecs 中的 version 字段。

Filbeat安装到使用

Filebeat简介

Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstarsh中存放。

这里的filebeat就是beats 的一员,目前beat可以发送数据给Elasticsearch,Logstash,File,Console四个目的地址。

 filebeat 工作原理

(下图来自:http://www.linuxidc.com/Linux/2016-10/135850.htm)

技术分享

 

 

Filebeat 下载地址:

https://www.elastic.co/downloads/beats/filebeat

根据不同的环境,下载不同的源文件 进行安装(本文中使用linux 的免安装板)。

 

解压完成后会看到如下目录结构

技术分享

    • module 目录中存放的是一些常用的(nginx、mysql 等) 日志读取配置
    • filebeat.template.json (输出的文件格式,在filebeat的template中指定,当服务启动时,会被加载)
    • filebeat.yml(所有的配置都在该文件下进行)

 

Filebeat 配置介绍(配置较多,经常使用到的已标红)

最简单基本配置

技术分享

 

 

paths: 配置日志路径,

         1、配置单个文件-( /opt/export/log/a.log  );

         2、配置多个文件( /opt/export/log/*.log) -- 这种方式配置 filbeat 只会去读取/opt/export/log 目录下 以 .log 结尾的文件 。filebeat 处理文件是不递归处理(假如/opt/export/log 目录下存在 /opt/export/log/test/ 目录中存在有.log 结尾的文件, filebeat 不处理)

exclude_lines: 输出是去掉符合某种规则的行

include_lines: 输出符合某种规则的行

注意: 两个同时存在 include_lines 生效

fields 向输出的每一条日志添加额外的信息,比如“level:debug”,方便后续对日志进行分组统计。

          默认情况下,会在输出信息的fields子目录下以指定的新增fields建立子目录,例如fields.level。

fields_under_root  如果该选项设置为true,则新增fields成为顶级目录,而不是将其放在fields目录下。自定义的field会覆盖filebeat默认的field。例如添加如下配置:

multiline:适用于日志中每一条日志占据多行的情况,比如各种语言的报错信息调用栈。这个配置的下面包含如下配置:

pattern多行日志开始的那一行匹配的pattern

negate是否需要对pattern条件转置使用,不翻转设为true,反转设置为false

match匹配pattern后,与前面(before)还是后面(after)的内容合并为一条日志

max_lines合并的最多行数(包含匹配pattern的那一行)

 

ignore_older可以指定Filebeat忽略指定时间段以外修改的日志内容,比如2h(两个小时)或者5m(5分钟)。

 

close_older:如果一个文件在某个时间段内没有发生过更新,则关闭监控的文件handle。默认1h。

 

force_close_files:Filebeat会在没有到达close_older之前一直保持文件的handle,如果在这个时间窗内删除文件会有问题,所以可以把force_close_files设置为true,只要filebeat检测到文件名字发生变化,就会关掉这个handle。

 

scan_frequencyFilebeat以多快的频率去prospector指定的目录下面检测文件更新(比如是否有新增文件),

 

             如果设置为0s,则Filebeat会尽可能快地感知更新(占用的CPU会变高)。默认是10s。

 

document_type设定Elasticsearch输出时的document的type字段,也可以用来给日志进行分类。

 

harvester_buffer_size:每个harvester监控文件时,使用的buffer的大小。

 

max_bytes:日志文件中增加一行算一个日志事件,max_bytes限制在一次日志事件中最多上传的字节数,多出的字节会被丢弃。

 

tail_files:如果设置为true,Filebeat从文件尾开始监控文件新增内容,把新增的每一行文件作为一个事件依次发送,而不是从文件开始处重新发送所有内容。

 

backoff:Filebeat检测到某个文件到了EOF之后,每次等待多久再去检测文件是否有更新,默认为1s。

 

max_backoff:Filebeat检测到某个文件到了EOF之后,等待检测文件更新的最大时间,默认是10秒。

 

backoff_factor:定义到达max_backoff的速度,默认因子是2,到达max_backoff后,变成每次等待max_backoff那么长的时间才backoff一次,直到文件有更新才会重置为backoff。比如:

 

          这里写图片描述

 

        如果设置成1,意味着去使能了退避算法,每隔backoff那么长的时间退避一次。

 

spool_size:spooler的大小,spooler中的事件数量超过这个阈值的时候会清空发送出去(不论是否到达超时时间)。

 

idle_timeout:spooler的超时时间,如果到了超时时间,spooler也会清空发送出去(不论是否到达容量的阈值)。

 

registry_file:记录filebeat处理日志文件的位置的文件

 

config_dir:如果要在本配置文件中引入其他位置的配置文件,可以写在这里(需要写完整路径),但是只处理prospector的部分。

 

publish_async:是否采用异步发送模式(实验功能)。

 

输出到logstash

#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"

输出到elasticsearch

output.elasticsearch:
# Array of hosts to connect to.
hosts: ["localhost:9200"]

# Optional protocol and basic auth credentials.
#protocol: "https"
#username: "elastic"
#password: "changeme"

filebeat 启动

启动脚本:sudo ./filebeat -e -c filebeat.yml -d "publish"

注意 启动需要使用root 用户启动

 

 

 

 

     

 












以上是关于filebeat安装使用的主要内容,如果未能解决你的问题,请参考以下文章

cent os安装filebeat

FileBeat安装配置

Es数据采集工具之filebeat安装和使用

filebeat安装部署

filebeat安装部署

最简化 Elasticsearch & Kibana & Filebeat 安装说明