温馨提示×

Debian下Filebeat怎么用

小樊
37
2026-09-12 08:50:33
栏目: 智能运维

在 Debian 下使用 Filebeat(Elastic 官方的轻量级日志采集器)通常分为 安装 → 配置 → 启动 → 验证 几个步骤。下面给你一个从零开始的实用指南。


一、环境准备

  • 系统:Debian 10 / 11 / 12
  • 权限:需要 root 或 sudo
  • 常见用途:
    • 收集日志 → Elasticsearch
    • 收集日志 → Logstash
    • 收集日志 → Kafka

二、安装 Filebeat(Debian)

方法 1:使用 Elastic 官方 APT 源(推荐)

sudo apt update
sudo apt install -y curl gnupg apt-transport-https
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | \
sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg
echo "deb [signed-by=/usr/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" \
| sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt update
sudo apt install filebeat

想装 7.x 把 8.x 改成 7.x


方法 2:直接下载 deb 包

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.13.0-amd64.deb
sudo dpkg -i filebeat-8.13.0-amd64.deb

三、Filebeat 核心目录

/etc/filebeat/filebeat.yml      # 主配置文件
/etc/filebeat/modules.d/        # 模块配置
/usr/bin/filebeat               # 可执行文件
/var/lib/filebeat/              # 状态数据(记录读取位置)

四、基础配置(示例)

1️⃣ 最简单配置(输出到 Elasticsearch)

编辑:

sudo vim /etc/filebeat/filebeat.yml
filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /var/log/*.log

output.elasticsearch:
  hosts: ["http://localhost:9200"]

2️⃣ 输出到 Logstash(更常见)

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /var/log/nginx/*.log

output.logstash:
  hosts: ["logstash:5044"]

3️⃣ 使用 Filebeat 模块(推荐)

例如 Nginx:

sudo filebeat modules enable nginx

编辑模块配置:

sudo vim /etc/filebeat/modules.d/nginx.yml
- module: nginx
  access:
    enabled: true
    var.paths: ["/var/log/nginx/access.log"]
  error:
    enabled: true
    var.paths: ["/var/log/nginx/error.log"]

五、测试配置

sudo filebeat test config
sudo filebeat test output

六、启动 Filebeat

systemd 方式(Debian 默认)

sudo systemctl enable filebeat
sudo systemctl start filebeat
sudo systemctl status filebeat

七、查看运行状态 & 排错

查看日志

journalctl -u filebeat -f

查看是否发送数据

curl localhost:9200/_cat/indices?v

八、常见使用场景

场景 1:多行日志(如 Java 堆栈)

filebeat.inputs:
  - type: log
    paths:
      - /app/logs/app.log
    multiline:
      pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
      negate: true
      match: after

场景 2:只采集新增日志

Filebeat 默认就会记录文件读取位置(/var/lib/filebeat/registry)


场景 3:Docker 日志

filebeat.inputs:
  - type: container
    paths:
      - '/var/lib/docker/containers/*/*.log'

九、卸载 Filebeat

sudo systemctl stop filebeat
sudo apt remove filebeat
sudo rm -rf /etc/filebeat /var/lib/filebeat

十、一句话总结

Debian 下用 Filebeat = 装包 → 改 /etc/filebeat/filebeat.yml → enable module → systemctl 启动

如果你告诉我:

  • 日志类型(Nginx / 系统 / 应用 / Docker)
  • 输出到 ES / Logstash / Kafka

我可以直接给你一份 可复制的配置文件。

0 踩