在 CentOS 上升级 Filebeat 的可选方案
- 使用 YUM 仓库升级(推荐):简单、可自动解决依赖,适合长期使用与集中管理。
- 手动下载安装:适用于需要特定版本、离线环境或仓库暂未同步的场景。
- 自动化升级(Ansible):适合批量主机、标准化运维。
下文给出可直接执行的步骤与要点。
一、使用 YUM 仓库升级(推荐)
-
1)备份关键数据与配置
sudo cp -r /etc/filebeat /etc/filebeat.bak
sudo cp -r /var/lib/filebeat /var/lib/filebeat.bak
-
2)启用 EPEL(如尚未启用)
sudo yum install epel-release -y
-
3)更新索引并升级 Filebeat
sudo yum clean all && sudo yum makecache fast
sudo yum update filebeat -y
-
4)重启服务并设为开机自启
sudo systemctl restart filebeat
sudo systemctl enable filebeat
-
5)验证版本
filebeat version
rpm -q filebeat # 查看已安装包版本
二、手动下载安装(离线或指定版本)
-
1)下载最新版(将 替换为实际版本号)
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat--linux-x86_64.tar.gz
-
2)停止服务并备份
sudo systemctl stop filebeat
sudo cp -r /etc/filebeat /etc/filebeat.bak
sudo cp -r /var/lib/filebeat /var/lib/filebeat.bak
-
3)解压并替换(示例放置于 /usr/share/filebeat)
sudo tar -xzf filebeat--linux-x86_64.tar.gz -C /usr/share/
sudo mv /usr/share/filebeat- /usr/share/filebeat
-
4)处理配置与数据目录
- 保持现有配置:确保 systemd 服务仍指向 /etc/filebeat/filebeat.yml 与 /var/lib/filebeat。
- 如需使用新包内配置:将新包中的 filebeat.yml 覆盖到 /etc/filebeat/ 并复核差异。
- 注意:不要覆盖 /var/lib/filebeat(注册表与状态),避免重复采集或丢数。
-
5)启动并验证
sudo systemctl daemon-reload
sudo systemctl start filebeat
/usr/share/filebeat/filebeat version # 或 filebeat version(若 PATH 已包含)
三、使用 Ansible 批量升级(示例 Playbook)
- 示例要点:启用 EPEL、更新缓存、安装/升级 filebeat、重启服务
- hosts: all
become: yes
tasks:
- name: Enable EPEL
yum_repository:
name: epel
state: present
- name: Update cache
yum:
update_cache: yes
- name: Install/Upgrade Filebeat
yum:
name: filebeat
state: latest
- name: Restart Filebeat
systemd:
name: filebeat
state: restarted
enabled: yes
四、升级前后关键检查与常见问题
-
版本与运行状态
- 版本:filebeat version;rpm -q filebeat
- 服务:systemctl status filebeat;journalctl -u filebeat -xe
-
配置与兼容性
- 升级前备份 /etc/filebeat 与 /var/lib/filebeat;升级后核对新增/变更配置项。
- 确认与 Elasticsearch/Kibana 版本兼容,必要时同步升级相关组件。
-
仓库与版本可见性
- 若 yum 找不到最新版本,先 yum clean all && yum makecache fast;必要时检查可用版本:yum list filebeat --showduplicates。
-
回滚建议
- 出现异常可快速回滚:yum downgrade filebeat 或恢复备份的 /etc/filebeat 与 /var/lib/filebeat,再重启服务。