1. 安装Filebeat
在Ubuntu上安装Filebeat需通过APT包管理器完成。首先更新系统包列表,导入Elastic官方GPG密钥,添加Elastic APT仓库,最后安装Filebeat:
sudo apt update
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
sudo apt install filebeat -y
安装完成后,Filebeat会自动生成默认配置文件/etc/filebeat/filebeat.yml。
2. 配置Filebeat
配置文件/etc/filebeat/filebeat.yml是Filebeat的核心,主要包含输入(Inputs)、**输出(Outputs)和模块(Modules)**三部分:
filebeat.inputs定义要收集的日志文件。例如,监控系统日志(/var/log/syslog)和Nginx日志(/var/log/nginx/*.log):filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog
- /var/log/nginx/*.log
output.elasticsearch:
hosts: ["localhost:9200"]
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}" # 按日期分割索引
若发送至Logstash(默认端口5044),则配置:output.logstash:
hosts: ["localhost:5044"]
sudo filebeat modules enable nginx
启用后会自动生成模块对应的输入配置(如/etc/filebeat/modules.d/nginx.yml)。3. 启动与启用Filebeat
配置完成后,启动Filebeat服务并设置为开机自启:
sudo systemctl start filebeat
sudo systemctl enable filebeat
通过以下命令检查服务状态,确认是否运行正常:
sudo systemctl status filebeat
若状态显示为active (running),则表示启动成功。
4. 验证配置与数据传输
journalctl实时查看Filebeat运行日志,排查配置错误:sudo journalctl -u filebeat -f
curl命令查询Elasticsearch中的索引,确认日志是否成功传输:curl -X GET "localhost:9200/_cat/indices?v"
若看到以filebeat-开头的索引(如filebeat-7.17.0-2025.11.03),则表示数据传输正常。5. 监控与优化
curl http://localhost:8080/api/v1/summary
返回的JSON数据包含事件数、队列大小等指标。harvester.buffer.size(提升缓冲区大小,避免数据丢失)、flush.min.events(批量发送阈值,减少网络请求)等参数:harvester.buffer.size: 16384 # 缓冲区大小(字节)
flush.min.events: 2048 # 每批次发送的最小事件数
ssl.certificate_authorities、ssl.certificate等参数)和seccomp(限制系统调用,减少攻击面):output.elasticsearch:
ssl.verification_mode: certificate
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
ssl.certificate: "/etc/filebeat/certs/client.crt"
ssl.key: "/etc/filebeat/certs/client.key"
seccomp.enabled: true
注意:使用TLS需提前配置证书。6. 高级功能(可选)
processors对日志数据进行过滤、添加字段。例如,添加主机名标签:processors:
- add_host_metadata: ~ # 自动添加主机名、IP等信息