温馨提示×

filebeat在centos怎么用

小樊
38
2026-08-18 20:25:00
栏目: 智能运维

CentOS 上使用 Filebeat(属于 Elastic Stack)一般分为 安装 → 配置 → 启动 → 验证 几个步骤。下面给你一个从零开始的实战流程,假设你是要把日志发送到 Elasticsearch 或 Logstash


一、环境说明

  • 系统:CentOS 7 / 8 / Stream
  • Filebeat 版本:建议和 Elasticsearch 版本一致(如 8.x)
  • 常见用途:收集日志 → 发送 ES / Logstash

二、安装 Filebeat(CentOS)

✅ 方法一:使用 RPM(推荐)

1️⃣ 导入 Elastic GPG Key

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2️⃣ 创建 YUM 仓库

sudo tee /etc/yum.repos.d/filebeat.repo <<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

3️⃣ 安装 Filebeat

sudo yum install filebeat -y

安装完成后,Filebeat 会在:

  • 配置目录:/etc/filebeat/
  • 二进制:/usr/bin/filebeat
  • 日志:/var/log/filebeat/

三、配置 Filebeat(核心)

配置文件路径:

/etc/filebeat/filebeat.yml

✅ 示例 1:收集系统日志并发送到 Elasticsearch

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

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

✅ 示例 2:发送到 Logstash

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

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

✅ 示例 3:收集 JSON 日志

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /data/app/*.json
    json.keys_under_root: true
    json.add_error_key: true

四、测试配置文件(非常重要)

filebeat test config

测试输出:

filebeat test output

五、启动并设置为开机自启

sudo systemctl enable filebeat
sudo systemctl start filebeat

查看状态:

systemctl status filebeat

查看日志:

journalctl -u filebeat -f

六、验证数据是否发送成功

1️⃣ 查看索引是否创建

如果发送到 ES:

curl -X GET "localhost:9200/_cat/indices?v"

你应该能看到类似:

filebeat-8.x.x-2026.xx.xx

2️⃣ Kibana 中查看日志

Kibana → Discover 中:

  • 创建 Index Pattern:filebeat-*
  • 即可看到日志

七、常见场景示例

✅ 收集 Nginx 日志

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

✅ 收集 Docker 容器日志

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

八、常见问题排查

❌ Filebeat 启动失败

journalctl -u filebeat --no-pager | tail -n 50

❌ 日志没进 ES

  • 确认 output.elasticsearch.hosts 正确
  • 确认 ES 无权限限制(或配置 username/password)
output.elasticsearch:
  hosts: ["https://es-host:9200"]
  username: "elastic"
  password: "xxxxxx"
  ssl.verification_mode: none

九、卸载 Filebeat

sudo systemctl stop filebeat
sudo yum remove filebeat -y
sudo rm -rf /etc/filebeat /var/log/filebeat

十、进阶建议

  • ✅ 使用 modules(nginx、system、mysql)
  • ✅ 避免重复采集:registry 目录
  • ✅ 生产环境建议走 Logstash → ES

如果你愿意,可以告诉我:

  • ✅ 是 ES 还是 Logstash
  • ✅ 收集 什么日志(nginx / docker / 业务日志)
  • ✅ CentOS 版本

我可以帮你写一套 完整的 filebeat.yml

0