温馨提示×

centos filebeat怎么收集日志

小樊
34
2026-09-02 21:39:18
栏目: 智能运维

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


一、环境准备

1. 系统要求

  • CentOS 7 / 8
  • 已安装 curlsudo
  • 可访问外网(或内网 yum 源)

二、安装 Filebeat

方式一:使用官方 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 Filebeat
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

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


三、配置 Filebeat

配置文件路径:

/etc/filebeat/filebeat.yml

示例:收集 Nginx 日志

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

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

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

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

四、常用输出方式

1. 输出到 Elasticsearch

output.elasticsearch:
  hosts: ["http://es-host:9200"]

2. 输出到 Logstash

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

3. 输出到 Kafka

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

五、启动 Filebeat

sudo systemctl enable filebeat
sudo systemctl start filebeat

查看状态:

systemctl status filebeat

查看日志:

journalctl -u filebeat -f

六、验证日志是否收集

如果是 Elasticsearch

curl http://localhost:9200/_cat/indices?v

如果是 Logstash

在 Logstash 中配置 beats 输入并查看输出。


七、常见问题

1. 权限问题

确保 Filebeat 能读取日志:

sudo usermod -aG adm filebeat

2. 日志不生效

  • 检查 enabled: true
  • 检查 paths 是否正确
  • 删除 registry(调试用):
rm -rf /var/lib/filebeat/registry
systemctl restart filebeat

八、典型使用场景

  • ✅ Nginx / Apache 日志
  • ✅ Java / Spring Boot 应用日志
  • ✅ Docker 容器日志(/var/lib/docker/containers/*)
  • ✅ 系统日志 /var/log/messages

如果你有具体日志路径 / 输出目标(ES / Logstash / Kafka),我可以帮你写一份完整可用的 filebeat.yml

0