filebeat主要用于收集和转发日志。filebeat监视指定的日志文件和位置,收集日志事件,并将它们转发到es或logstash进行索引。

安装 

官网:https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html

# curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.2-x86_64.rpm
# sudo rpm -vi filebeat-6.5.2-x86_64.rpm

说明

Filebeat的工作原理:启动Filebeat时,它会启动一个或多个inputs,这些inputs将查找指定的log的路径。对于查找到的每个日志,Filebeat将启动一个harvester。每个harvester读取单个日志的新内容,并将新日志数据发送到libbeat,libbeat聚合事件并将聚合数据发送到配置的output。

我们采用的是 filebeat -> kafka ->logstash -> es。

配置文件

filebeat 配置文件比较简单, 只需要配置一个filebeat.yml

input

#============== Filebeat prospectors ===========
filebeat.inputs: # 6.3以前是 filebeat.prospectors:
- type: log # input类型,默认为log,6.0以前配置是 - input_type: log
paths:
- /var/log/java/test-java.log
- /var/log/java/*.log
- /var/log/*/*.log
fields:
log_topic: java_log # 附加的可选字段,以向output添加额外的信息。output里面可以使用这个变量
multiline.pattern: '^\[' #多行合并 同logstash的multiline用法相似
multiline.negate: true
multiline.match: after - type: log # 一个配置文件里面可以同时收集多个日志
enabled: true
paths:
- /var/log/nginx/*.log
fields:
my_log_topic: nginx_log

常用配置

type:   指定input类型,有log、stdin、redis、tcp、syslog等

fields: 可以自定义添加字段,到output中去,后续可以使用这些字段,例如:

  fields:
log_topic: mysql_slow
idc: szjf

tail_files:  默认为false。配置为true时,filebeat将从新文件的最后位置开始读取,而不是从开头读取新文件, 注意:如果配合日志轮循使用,新文件的第一行将被跳过。

此选项适用于Filebeat尚未处理的文件。如果先前运行了Filebeat并且文件的状态已经保留,tail_files则不会应用。

第一次运行Filebeat时,可​​以使用 tail_files: true 来避免索引旧的日志行。第一次运行后,建议禁用此选项。

registry file
    filebeat会将自己处理日志文件的进度信息写入到registry文件中,以保证filebeat在重启之后能够接着处理未处理过的数据,而无需从头开始。

如果要让filebeat从头开始读文件,需要停止filebeat,然后删除registry file:

systemctl stop filebeat ;rm -fr /var/lib/filebeat/registry/* ; systemctl start filebaet

registry文件里字段的解释:

  • source: 日志文件的路径
  • offset:已经采集的日志的字节数;已经采集到日志的哪个字节位置
  • inode: 日志文件的inode号
  • device: 日志所在的磁盘编号
  • timestamp: 日志最后一次发生变化的时间戳
  • ttl: 采集失效时间,-1表示只要日志存在,就一直采集该日志

 multiline:   https://www.elastic.co/guide/en/beats/filebeat/current/multiline-examples.html#multiline  处理多行合并

output

配置输出的位置,比如kafka,logstash,es,redis,file 等

#================================ Outputs =====================================
#-------------------------Kafka output ------------------------------
output.kafka:
hosts: ["kafka01:9092","kafka02:9092","kafka03:9092]
topic: '%{[fields.my_log_topic]}'
partition.round_robin:
reachable_only: false
version: 0.10.0.0
required_acks: 1
compression: none
max_message_bytes: 1000000
#output.logstash:
# hosts: ["localhost:5044"]

还可以有一些其他配置,比如processor处理器配置(不是必需的)

#====================Preocessors=====================
processors:
- drop_fields: #删除字段,不再kibana里面展示,默认情况kibana里面会自动展示这些beat字段
fields: ["beat.hostname","beat.version","beat.name","prospector.type","input.type"] #也可以在logstash里面通过remove_field 删除字段
#mutate{
# remove_field => ["[beat][hostname]","[beat][version]","input","prospector"]
# }

配置完filebeat.yml,启动filebeat 即可。# /etc/init.d/filebeat start

使用filebeat遇到的问题

filebeat7.2  output 到kafka_2.12-2.0.1 的时候报错:
 
2020-01-16T14:38:52.023+0800    INFO    kafka/log.go:53    kafka message: client/metadata found some partitions to be leaderless
2020-01-16T14:38:52.023+0800    INFO    kafka/log.go:53    client/metadata retrying after 250ms... (1 attempts remaining)
 

手动在kafka创建topic后,再重新启动filebeat, 问题解决。

./bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 6 --topic nginx_log

经检查发现是因为kafka配置文件里面配置了 auto.create.topics.enable = false。auto.create.topics.enable 参数可以用来配置Kafka Server是否自动创建topic。

 

filebeat配置文件的更多相关文章

  1. Elasticsearch优化 & filebeat配置文件优化 & logstash格式配置 & grok实践

    Elasticsearch优化 & filebeat配置文件优化 & logstash格式配置 & grok实践 编码转换问题(主要就是中文乱码) (1)input 中的cod ...

  2. Filebeat配置文件解析-转载

    转载地址:https://dongbo0737.github.io/2017/06/13/filebeat-config/ Filebeat配置文件解析 filebeat 一个ELK架构中,专门用来收 ...

  3. filebeat 配置文件参数

      filebeat 配置 所有的 beats 组件在 output 方面的配置都是一致的,之前章节已经介绍过.这里只介绍 filebeat 在 input 段的配置,如下: filebeat: sp ...

  4. FileBeat yml配置文件 -常用参数详解

    #filebeat 5.2.2 #prospector(input)段配置 filebeat.prospectors: #每一个prospectors,起始于一个破折号"-" - ...

  5. logstash配合filebeat监控tomcat日志

    环境:logstash版本:5.0.1&&filebeat 5.0.1 ABC为三台服务器.保证彼此tcp能够相互连接. Index服务器A - 接收BC两台服务器的tomcat日志 ...

  6. Filebeat轻量级日志采集工具

    Beats 平台集合了多种单一用途数据采集器.这些采集器安装后可用作轻量型代理,从成百上千或成千上万台机器向 Logstash 或 Elasticsearch 发送数据. 一.架构图 此次试验基于前几 ...

  7. Elastic 技术栈之 Filebeat

    Elastic 技术栈之 Filebeat 简介 Beats 是安装在服务器上的数据中转代理. Beats 可以将数据直接传输到 Elasticsearch 或传输到 Logstash . Beats ...

  8. ELK 架构之 Logstash 和 Filebeat 安装配置

    上一篇:ELK 架构之 Elasticsearch 和 Kibana 安装配置 阅读目录: 1. 环境准备 2. 安装 Logstash 3. 配置 Logstash 4. Logstash 采集的日 ...

  9. 2-4、配置Filebeat使用logstash

    配置filebeat使用logstash 重要:要将事件发送到Logstash,还需要创建一个Logstash配置管道,该管道监听传入的Beats连接并将收到的事件编入索引到Elasticsearch ...

随机推荐

  1. Python3基础 list in/not in 判断一个变量是否在列表中存在

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  2. PowerShell Gallery

    https://docs.microsoft.com/en-us/powershell/gallery/getting-started https://www.powershellgallery.co ...

  3. Shell: nohup守护进程化

    如果想在终端会话中启动shell脚本,然后让脚本一直以后台模式运行,直到其完成,即使你退出了终端会话,可以使用nohup命令实现.感觉nohup就是将一个进程初始化为一个守护进程. nohup命令运行 ...

  4. 消息队列之ActiveMQ简单环境搭建

    准备: 环境:win7,Eclipse,jdk1.8 ActiveMQ版本:ActiveMQ 5.9.0 Release下载地址:http://activemq.apache.org/download ...

  5. URAL 1004 Sightseeing Trip(floyd求最小环+路径输出)

    https://vjudge.net/problem/URAL-1004 题意:求路径最小的环(至少三个点),并且输出路径. 思路: 一开始INF开大了...无限wa,原来相加时会爆int... 路径 ...

  6. memset()函数用法及其作用

    memset()函数原型是: extern void *memset(void *buffer, int c, int count) //buffer:为指针或是数组, //c:是赋给buffer的值 ...

  7. 【Java】【存储&作用域】

    [存储] 1. 寄存器.这是最快的保存群裕,因为它位于和其他所有保存方式不同的地方:处理器内部.然而,寄存器的数量有限,所以寄存器是根据需要由编译器分配.我们对此没有直接的控制权,也不可能在自己的程序 ...

  8. linux 校准时间方法

        Debian.Ubuntu 系统安装NTP校时包:    apt-get install ntpdate   CentOS系统安装NTP校时包:    yum install ntp   校时 ...

  9. git 恢复单个文件的历史版本

    首先查看该文件的历史版本信息:git log Default@2x.png 记录下需要恢复的commit版本号:如 9aa51d89799716aa68cff3f30c26f8815408e926 恢 ...

  10. 【三十二】thinkphp之连接数据库、实例化模型

    1.连接数据库 Thinlphp内置了抽象数据库访问层,把不同的数据操作封装起来.我们只需要调用公共的DB类进行操作即可.DB类会自动调用相应的数据库驱动来处理. 在应用目录/common/conf/ ...