在CentOS系统上安装Filebeat,推荐通过YUM仓库安装(自动处理依赖),步骤如下:
sudo yum update -ysudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.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若需手动安装,可下载RPM包后通过rpm -ivh filebeat-*.rpm命令安装。
Filebeat的核心配置文件位于/etc/filebeat/filebeat.yml,需重点配置输入源、输出目标及处理器:
filebeat.inputs配置监控的日志文件路径。例如,监控/var/log/myapp/*.log(应用日志目录):filebeat.inputs:
- type: log  # 输入类型为日志
  enabled: true
  paths:
    - /var/log/myapp/*.log  # 监控所有.log后缀文件
  exclude_files: ['\.gz$']  # 排除.gz压缩文件
output.elasticsearch:
  hosts: ["localhost:9200"]  # Elasticsearch地址
  index: "myapp-logs-%{+yyyy.MM.dd}"  # 动态生成日期索引(如myapp-logs-2025.09.24)
timestamp level message),可使用dissect处理器提取字段:filebeat.inputs:
- type: log
  paths:
    - /var/log/myapp/*.log
  processors:
  - dissect:
      tokenizer: "%{timestamp} %{level} %{message}"  # 日志格式模板
      field: "message"  # 从message字段提取
      target_prefix: ""  # 直接添加到事件根字段
完整配置示例可参考Filebeat官方文档。sudo systemctl start filebeatsudo systemctl enable filebeatsudo systemctl status filebeat(若显示“active (running)”则表示正常)sudo tail -f /var/log/filebeat/filebeat.log(确认是否成功读取应用日志并发送至Elasticsearch)。kibana.yml连接Elasticsearch:server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
sudo systemctl start kibana,通过浏览器访问http://localhost:5601。myapp-logs-*(与Filebeat输出的索引名称匹配),选择时间字段(如@timestamp)。level:ERROR)筛选、分析应用日志(如错误日志统计、时间趋势分析)。filestream替代log,提升大文件处理效率和资源占用:filebeat.inputs:
- type: filestream
  enabled: true
  paths:
    - /var/log/myapp/*.log
bulk_max_size(批量发送大小,默认50MB)提高传输效率;设置scan_frequency(文件扫描间隔,默认10s)平衡实时性与性能。