一、安装Filebeat
在CentOS上安装Filebeat可通过官方YUM仓库完成(推荐),确保软件包版本与Elastic Stack兼容:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo tee /etc/yum.repos.d/elastic.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
sudo yum install filebeat -y
二、配置Filebeat监控系统性能
Filebeat自带system模块,可快速采集CentOS服务器的核心性能指标(CPU、内存、磁盘、网络、进程等),无需手动编写解析规则:
/etc/filebeat/filebeat.yml,定位filebeat.modules section,启用system模块并设置采集周期(如每10秒采集一次):filebeat.modules:
- module: system
  enabled: true
  period: 10s
  # 可选:仅采集特定子模块(如cpu、memory),默认全量采集
  # cpu: {}
  # memory: {}
  # diskio: {}
  # network: {}
  # process: {}
output.elasticsearch:
  hosts: ["localhost:9200"]  # 若为远程ES,替换为实际IP
  index: "filebeat-system-%{+yyyy.MM.dd}"  # 索引命名规则
三、启动与验证Filebeat服务
sudo systemctl daemon-reload
sudo systemctl start filebeat
sudo systemctl enable filebeat
sudo systemctl status filebeat  # 确认状态为"active (running)"
sudo journalctl -u filebeat -f
四、通过Kibana可视化性能数据
http://localhost:5601),进入Stack Management > Index Patterns,创建新索引模式filebeat-system-*,选择@timestamp作为时间字段。system.cpu.usage、内存使用量system.memory.actual.used、磁盘IOsystem.diskio.read.bytes等)。五、性能优化与稳定性保障
filebeat.inputs.harvester.max_bytes(单文件最大读取字节数,默认1MB)和scan_frequency(文件扫描间隔,默认10s),避免大文件或频繁扫描导致资源占用过高。output.elasticsearch.bulk_max_size(每次批量发送的事件数,默认50),减少网络请求次数,提升传输效率。queue.type: persisted(默认内存队列易丢失数据)和queue.max_bytes(队列最大容量,默认100MB),确保数据不丢失。top/htop命令查看Filebeat进程的CPU/内存占用(如ps aux | grep filebeat获取进程ID)。monitoring.enabled: true
monitoring.elasticsearch.hosts: ["localhost:9200"]
通过Kibana的Monitoring页面查看Filebeat的性能指标(如事件处理延迟、队列长度)。六、常见问题排查
filebeat.yml中的paths路径是否正确(如/var/log/*.log是否存在)、output.elasticsearch.hosts是否可达(ping localhost)。harvester数量(max_procs参数,默认等于CPU核心数)、增大queue.max_bytes,或升级服务器配置。module配置是否符合日志格式(如JSON日志需设置json.keys_under_root: true)。