温馨提示×

CentOS Filebeat如何收集日志

小樊
33
2026-07-20 08:10:06
栏目: 智能运维

CentOS 上使用 Filebeat 收集日志,一般流程如下(以 7.x / 8.x 版本为例,适用于 ELK/Elastic Stack 场景)。


一、安装 Filebeat(CentOS)

方式一:使用 RPM(推荐)

# 导入 Elastic GPG 密钥
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

# 创建 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

如果你用的是 7.x,把 8.x 改成 7.x

# 安装
sudo yum install filebeat -y

二、配置 Filebeat

配置文件路径:

/etc/filebeat/filebeat.yml

1️⃣ 基本结构说明

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

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

# 或输出到 Logstash
# output.logstash:
#   hosts: ["localhost:5044"]

三、常见日志收集示例

示例 1:收集系统日志

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

示例 2:收集 Nginx 日志

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

示例 3:收集多行日志(Java / Python 堆栈)

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

四、输出方式选择

✅ 输出到 Elasticsearch(最简单)

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

✅ 输出到 Logstash(推荐生产环境)

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

五、启动并设置开机自启

# 测试配置
filebeat test config

# 启动
sudo systemctl start filebeat

# 开机自启
sudo systemctl enable filebeat

# 查看状态
sudo systemctl status filebeat

六、查看 Filebeat 运行情况

# 查看日志
journalctl -u filebeat -f

# 或
tail -f /var/log/filebeat/filebeat

七、常用调试命令

# 测试能否读取日志
filebeat test input

# 测试输出是否可达
filebeat test output

八、常见问题

1️⃣ 没有权限读取日志

sudo chmod 644 /var/log/xxx.log
# 或
sudo usermod -aG root filebeat

2️⃣ SELinux 导致无法读取

getenforce
setenforce 0  # 临时关闭(不推荐生产)

九、简单架构图

日志文件
   ↓
Filebeat
   ↓
Elasticsearch / Logstash
   ↓
Kibana

如果你需要:

  • Filebeat + Logstash + Elasticsearch + Kibana 完整配置
  • Docker 中部署 Filebeat
  • 收集 JSON 日志 / 自定义字段
  • CentOS 6 版本

可以直接告诉我你的具体场景,我可以一步步给你定制 ✅

0