1. 安装Filebeat
根据Linux发行版选择对应安装方式(以Debian/Ubuntu、RHEL/CentOS为例):
sudo apt-get update && sudo apt-get install filebeat -y sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch echo -e "[elastic-8.x]\nname=Elastic repository for 8.x packages\nbaseurl=https://artifacts.elastic.co/packages/8.x/yum\nenabled=1\ngpgcheck=1\ngpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch" | sudo tee /etc/yum.repos.d/elastic.repo sudo yum install filebeat -y wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.12.0-linux-x86_64.tar.gz tar -zxvf filebeat-8.12.0-linux-x86_64.tar.gz sudo ln -s /path/to/filebeat-8.12.0-linux-x86_64/filebeat /usr/local/bin/filebeat 2. 配置Filebeat核心参数
主配置文件路径为/etc/filebeat/filebeat.yml(手动安装则为解压目录下的同名文件),需修改以下关键部分:
输入配置(Inputs):定义日志来源,支持log(文本日志)、container(容器日志)等类型。示例如下:
filebeat.inputs: - type: log enabled: true paths: - /var/log/syslog # 系统日志 - /var/log/*.log # 所有.log文件 - /opt/app/logs/*.log # 自定义应用日志目录 exclude_files: ['\.gz$', '\.zip$'] # 排除压缩文件 exclude_lines: ['^DBG', '^DEBUG'] # 排除调试行 include_lines: ['ERROR', 'WARN'] # 仅包含错误和警告行 tail_files: true # 从文件末尾开始读取(避免重复发送旧日志) 输出配置(Outputs):指定日志发送目标,常见选项包括Elasticsearch、Logstash、Kafka等:
output.elasticsearch: hosts: ["localhost:9200"] # Elasticsearch地址 index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}" # 动态索引名(含版本和日期) output.logstash: hosts: ["localhost:5044"] # Logstash监听端口 loadbalance: true # 多主机负载均衡 output.kafka: hosts: ["kafka1:9092", "kafka2:9092"] # Kafka集群地址 topic: "%{[fields.log_topic]}" # 动态主题(需提前定义fields) compression: gzip # 压缩消息 required_acks: 1 # 确认机制(1=主副本确认) 高级配置(可选):
setup.template.settings: index.number_of_shards: 3 # 分片数(根据数据量调整) index.codec: best_compression # 最佳压缩(节省存储) _source.enabled: true # 启用_source字段(支持还原原始日志) setup.kibana: host: "localhost:5601" # Kibana地址 3. 启动与验证服务
sudo systemctl start filebeat # 启动服务 sudo systemctl enable filebeat # 设置开机自启 sudo systemctl status filebeat # 查看运行状态(若显示“active (running)”则为正常) sudo filebeat -e -c /etc/filebeat/filebeat.yml -d "publish" 若看到类似“Publishing events to Elasticsearch”的日志,说明配置成功。4. 常见优化技巧
/var/lib/filebeat/registry)。max_concurrent_files)和IO缓冲区(network.tcp.send_buffer_size),提升采集性能:filebeat.inputs: - type: log max_concurrent_files: 512 # 最大并发文件数(默认1024,根据CPU调整) filebeat.config: network.tcp.send_buffer_size: 65535 # TCP发送缓冲区大小(字节) sudo filebeat modules enable nginx # 启用Nginx模块 sudo filebeat setup # 加载模块模板到Elasticsearch 模块配置文件位于/etc/filebeat/modules.d/,可根据需求修改。