filebeat介绍
filebeat是一个用于转发和收集日志数据的轻量级托运工具,监控日志文件或指定的本地路径,收集日志事件,并转发到Elasticsearch和Logstash用于检索。
Filebeat工作介绍:当启动Filebeat时,它启动一个或多个输入,这些输入查看为日志数据指定的位置。对于Filebeat定位的每个日志,Filebeat都会启动一个收集器。每个收集器读取单个日志以获取新内容,并将新日志数据发送给libbeat, libbeat聚合事件并将聚合的数据发送到为Filebea配置的输出。
filebeat官网:https://www.elastic.co/guide/en/beats/filebeat/current/index.html
安装运行filebeat
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
[root@docker1 yum.repos.d]# cat << EOF >>
> [elastic-8.x]
> name=Elastic repository for 8.x packages
> baseurl=https://artifacts.elastic.co/packages/8.x/yum
> gpgcheck=1
> gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
> enabled=1
> autorefresh=1
> type=rpm-md
> EOF
-bash: syntax error near unexpected token `newline'
[root@docker1 yum.repos.d]# cat << EOF >> /etc/yum.repos.d/elastic.repo
> [elastic-8.x]
> name=Elastic repository for 8.x packages
> baseurl=https://artifacts.elastic.co/packages/8.x/yum
> gpgcheck=1
> gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
> enabled=1
> autorefresh=1
> type=rpm-md
> EOF
[root@docker1 yum.repos.d]# ll elastic.repo
-rw-r--r-- 1 root root 214 Apr 25 14:00 elastic.repo
[root@docker1 yum.repos.d]# systemctl start filebeat #启动filebeat服务,二进制方式安装,直接使用fielbeat命令启动,默认在前台运行。
配置filebeat
对filebeat配置文件做出一些解释,本文将从文件读取日志,经过filebeat输出到logstash,其他没有涉及到的配置可以参考filebeat官方文档进行配置。
rpm方式安装配置文件路径:/etc/filebeat/filebeat.yml
filebeat.inputs:
- type: filestream #日志输入类型
enabled: true #激活输入配置,默认是false
paths: #日志输入路径,支持通配符,支持列表方式写出多个路径
- /usr/local/apache-tomcat-8.5.99/logs/*
# 以下配置是合并java多行日志
parsers:
- multiline:
type: pattern
pattern: '^[[:space:]]'
negate: false
match: after
# ------------------------------ Logstash Output -------------------------------
output.logstash:
hosts: ["10.10.0.3:5044"] #logstash的主机地址和端口
codec.json: #输出到logstash的日志格式
# ================================= Processors =================================
processors: #通过processors增加或删除原始数据的阈值,下面一些元数据在不需要的场景下可以禁止,防止输出一些无用的数据。
# - add_host_metadata:
# when.not.contains.tags: forwarded
# - add_cloud_metadata: ~
# - add_docker_metadata: ~
# - add_kubernetes_metadata: ~