Filebeat

一、Filebeat基础概念

1.1、简介

Filebeat是一种轻量型日志采集器,内置有多种模块(auditd、Apache、Nginx、System、MySQL等等),可针对常见格式的日志大大简化收集、解析和可视化过程,只需一条命令即可。之所以能实现这一点,是因为它将自动默认路径(因操作系统而异)与Elasticsearch采集节点管道的定义和Kibana仪表板组合在一起。不仅如此,数个Filebeat模块还包括预配置的Machine Learning任务。另一点需要声明的是:根据采集的数据形式不同,形成了由多个模块组成的Beats。Beats是开源数据传输程序集,可以将其作为代理安装在服务器上,将操作数据发送给Elasticsearch,或者通过Logstash,在Kibana中可视化数据之前,在Logstash中进一步处理和增强数据。

Beats组成模块如下:

日志格式 采集所需组件框架
Audit data Auditbeat(轻量型审计日志采集器)
Log files Filebeat(轻量型日志采集器)
Availability Heartbeat(轻量型运行时间监控采集器)
Metrics Metricbeat(轻量型指标采集器)
Network traffic Packetbeat(轻量型网络数据采集器)
Windows event logs Winlogbeat(轻量型Windows事件日志采集器)

Beat日志采集流程图

1.2、Filebeat特点

  1. 轻量型日志采集器,占用资源更少,对机器配置要求极低。
  2. 操作简便,可将采集到的日志信息直接发送到ES集群、Logstash、Kafka集群等消息队列中。
  3. 异常中断重启后会继续上次停止的位置。(通过${filebeat_home}\data\registry文件来记录日志的偏移量)。
  4. 使用压力敏感协议(backpressure-sensitive)来传输数据,在logstash忙的时候,Filebeat会减慢读取-传输速度,一旦logstash恢复,则Filebeat恢复原来的速度。
  5. Filebeat带有内部模块(auditd,Apache,Nginx,System和MySQL),可通过一个指定命令来简化通用日志格式的收集,解析和可视化。
1
bin/logstash -e 'input stdin{} output stdout{} }'

1.3、Filebeat与Logstash对比

  1. Filebeat是轻量级数据托运者,您可以在服务器上将其作为代理安装,以将特定类型的操作数据发送到Elasticsearch。与Logstash相比,其占用空间小,使用的系统资源更少。
  2. Logstash具有更大的占用空间,但提供了大量的输入,过滤和输出插件,用于收集,丰富和转换来自各种来源的数据。
  3. Logstash是使用Java编写,插件是使用jruby编写,对机器的资源要求会比较高。在采集日志方面,对CPU、内存上都要比Filebeat高很多。

二、Filebeat安装

Filebeat本身对机器性能要求不高,所以对机器性能无需过多关注。加之,其采集数据后采用的Htp请求发送的数据,所以对运行环境也无过多要求,因此在部署Filebeat时,我们应过多的关注其它组件的部署问题。

2.1、安装地址

  1. Filebeat官网地址
    https://www.elastic.co/cn/products/beats/filebeat

  2. 安装包下载地址
    https://www.elastic.co/cn/downloads/beats/filebeat

  3. 文档地址

    https://www.elastic.co/guide/en/beats/filebeat/current/index.html

2.2、Filebeat部署安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 下载镜像
docker pull elastic/filebeat:8.5.3

docker rm -f filebeat

# 运行镜像
# docker run --name filebeat --restart=always -d elastic/filebeat:8.5.3

# 拷贝文件
# docker container cp filebeat:/usr/share/filebeat/filebeat.yml /opt/docker/volumes/filebeat/filebeat.yml
# docker container cp filebeat:/usr/share/filebeat /opt/docker/volumes/filebeat

# 运行镜像
docker run --name filebeat \
-v /opt/docker/volumes/filebeat/data:/usr/share/filebeat/data \
-v /opt/docker/volumes/filebeat/logs:/usr/share/filebeat/logs \
-v /opt/docker/volumes/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
--restart=always -d elastic/filebeat:8.5.3

# 打印日志
docker logs -f filebeat

2.3、Logstash部署安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# 下载镜像
docker pull logstash:8.5.3
# 运行容器
docker run --name logstash --link=elasticsearch:elasticsearch -p 9600:9600 -p 5044:5044 --restart=always -d logstash:8.5.3
# 查看 logstash ip
docker inspect --format='{{.NetworkSettings.IPAddress}}' logstash
# 访问 logstash 可以看到如下打印信息就代表成功了
curl http://172.17.0.10:9600
{
"host": "0b66d29b9b32",
"version": "8.5.3",
"http_address": "0.0.0.0:9600",
"id": "b010ea78-a58e-4fae-a7f0-aa189cd64627",
"name": "0b66d29b9b32",
"ephemeral_id": "887e8ec5-d9e3-4fde-a5bb-fd014f762cad",
"status": "green",
"snapshot": false,
"pipeline": {
"workers": 4,
"batch_size": 125,
"batch_delay": 50
},
"build_date": "2022-11-30T08:46:15+00:00",
"build_sha": "06074da6822ee451c3e8b4dca3ef8f519b1b0044",
"build_snapshot": false
}

# 进入logstash容器
docker exec -it logstash /bin/bash

===========================容器挂载配置相关准备=============================
# 拷贝配置文件
docker container cp logstash:/usr/share/logstash/config /opt/docker/volumes/logstash
docker container cp logstash:/usr/share/logstash/pipeline /opt/docker/volumes/logstash

# 在/opt/docker/volumes/logstash/pipeline创建文件minio-client-logstash.conf
vim /opt/docker/volumes/logstash/pipelin/minio-client-logstash.log
# 内容见下方

# 重新运行logstash
docker rm -f logstash

docker run --name logstash --link=elasticsearch:elasticsearch -p 9600:9600 -p 5044:5044 -p 4560:4560 \
-v /opt/docker/volumes/logstash/config:/usr/share/logstash/config \
-v /opt/docker/volumes/logstash/pipeline/minio-client-logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
--restart=always -d logstash:8.5.3

三、Filebeat实战


Filebeat
https://xiaoyu72.com/articles/4ea7f3a9/
Author
XiaoYu
Posted on
January 30, 2023
Updated on
August 28, 2023
Licensed under