在CentOS系统上,优先通过Elastic官方YUM仓库安装Filebeat,确保版本兼容性和自动更新:
# 添加Elastic官方YUM仓库
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
cat <<EOF | sudo tee /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-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
# 安装Filebeat
sudo yum install filebeat -y
若需特定版本,可从Elastic官网下载Linux版本tar包,解压后移动至指定目录:
# 下载并解压Filebeat(以7.17.0为例)
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.0-linux-x86_64.tar.gz
tar -zxvf filebeat-7.17.0-linux-x86_64.tar.gz
sudo mv filebeat-7.17.0-linux-x86_64 /usr/local/filebeat
Filebeat的主配置文件位于/etc/filebeat/filebeat.yml(YUM安装)或/usr/local/filebeat/filebeat.yml(手动安装),需修改以下关键部分:
Filebeat通过filebeat.inputs配置日志采集路径和规则,常用log类型采集文本日志:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log # 采集/var/log目录下所有.log文件
#- /var/log/nginx/*.log # 示例:仅采集Nginx日志
exclude_files: ['\.gz$'] # 排除.gz压缩文件(可选)
ignore_older: 72h # 忽略72小时前的旧文件(可选)
tail_files: true # 从文件末尾开始读取(默认false,首次运行会读取全量)
Filebeat支持多种输出目标,常见场景如下:
output.elasticsearch:
hosts: ["localhost:9200"] # Elasticsearch地址(集群则用逗号分隔)
index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}" # 动态索引名(含版本和日期)
output.logstash:
hosts: ["localhost:5044"] # Logstash监听端口
loadbalance: true # 多节点负载均衡(可选)
fields:
environment: production # 环境标签
application: myapp # 应用名称
fields_under_root: true # 将字段提升至事件根层级(默认false,嵌套在fields下)
processors对日志数据进行清洗、增强,例如添加固定字段:processors:
- add_fields:
target: "" # 空字符串表示根层级
fields:
log_source: "centos-server" # 添加日志来源字段
# 启动Filebeat
sudo systemctl start filebeat
# 设置开机自启
sudo systemctl enable filebeat
# 检查服务状态
sudo systemctl status filebeat # 正常运行应显示"active (running)"
在修改配置文件后,务必测试语法正确性,避免因配置错误导致服务异常:
# 测试配置文件(前台运行,输出日志到终端)
sudo filebeat -e -c /etc/filebeat/filebeat.yml
# 若无报错,按Ctrl+C停止测试
通过journalctl查看Filebeat实时日志,排查采集或发送问题:
sudo journalctl -u filebeat -f # 实时跟踪日志
Filebeat内置多个模块(如Nginx、MySQL、Redis),可快速采集特定应用的日志并自动配置索引模板:
# 进入模块配置目录
cd /etc/filebeat/modules.d
# 启用Nginx模块(示例)
sudo mv nginx.yml.disabled nginx.yml # 解除禁用
sudo mv nginx.json.disabled nginx.json
# 重新加载配置并启用模块
sudo filebeat modules enable nginx
# 测试模块配置
sudo filebeat test config -e
/var/log),可通过sudo chown -R root:filebeat /var/log调整。sudo systemctl status elasticsearch),防火墙是否放行9200端口。journalctl -u filebeat),确认paths路径是否正确,文件是否被其他进程占用。通过以上步骤,即可在CentOS上完成Filebeat的基础配置,实现日志数据的采集与发送。根据实际需求,可进一步调整高级配置(如Processor、索引生命周期管理)以优化采集效率。