温馨提示×

centos filebeat怎样收集日志

小樊
36
2026-09-06 02:04:31
栏目: 智能运维

在 CentOS 上使用 Filebeat 收集日志,一般流程如下(以 Elastic Stack / ELK 为例,也适用于直接输出到 Kafka、Logstash、ES 等)。


一、安装 Filebeat(CentOS)

1. 使用 RPM 安装(推荐)

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

sudo cat > /etc/yum.repos.d/filebeat.repo <<EOF
[filebeat]
name=Elasticsearch 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

sudo yum install filebeat -y

如果是 7.x,把 8.x 改成 7.x


二、配置 Filebeat

配置文件位置:

/etc/filebeat/filebeat.yml

示例 1:收集系统日志并输出到 Elasticsearch

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

output.elasticsearch:
  hosts: ["http://localhost:9200"]
  username: "elastic"
  password: "your_password"

示例 2:收集自定义应用日志

filebeat.inputs:
  - type: filestream
    enabled: true
    paths:
      - /app/logs/app/*.log
    fields:
      app: myapp
    fields_under_root: true

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

三、常用输入类型说明

类型 说明
filestream 新版本推荐(7.14+)
log 老版本常用
- type: log
  paths:
    - /var/log/nginx/access.log

四、启动 Filebeat

systemctl enable filebeat
systemctl start filebeat
systemctl status filebeat

查看日志:

journalctl -u filebeat -f

五、验证日志是否收集

到 Elasticsearch 查询

curl -u elastic:password http://localhost:9200/_cat/indices

或用 Kibana

  • Stack Management → Index Patterns
  • 创建 filebeat-*
  • Discover 中查看日志

六、常见场景

1. 收集多行日志(如 Java 异常)

multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after

2. 收集 Docker 日志

paths:
  - /var/lib/docker/containers/*/*.log

3. 输出到 Kafka

output.kafka:
  hosts: ["kafka:9092"]
  topic: filebeat-logs

七、常见问题

1. 权限问题

chmod 644 /var/log/messages
usermod -aG adm filebeat

2. 日志不显示

  • 检查 enabled: true
  • 检查 paths 是否正确
  • filebeat test config
  • filebeat test output

如果你有 具体日志路径 / 输出目标(ES / Kafka / Logstash),我可以帮你写一份完整配置。

0