Zabbix 5.0/6.4/7.4 多版本卸载对比:RPM/YUM 与源码安装残留文件清理差异
Zabbix多版本卸载全指南RPM/YUM与源码安装残留清理深度对比1. 不同安装方式的卸载核心差异在Linux环境中Zabbix的安装方式主要分为两大类包管理器安装RPM/YUM和源码编译安装。这两种安装方式在系统留下的痕迹有本质区别RPM/YUM安装通过系统包管理器安装的软件会记录完整的文件清单卸载时能自动清理大部分文件但配置文件和部分运行时数据可能残留源码安装直接编译安装的软件不会在系统包管理器中注册需要手动追踪所有安装路径进行清理关键差异点# RPM安装查询文件列表 rpm -ql zabbix-server-mysql # 源码安装无此信息需回忆或查看编译时的--prefix参数2. 多版本卸载流程对比5.0/6.4/7.42.1 服务停止标准化操作无论何种版本和安装方式首先需要停止相关服务# 通用停止命令 systemctl stop zabbix-server zabbix-agent httpd php-fpm注意7.4版本开始部分发行版可能使用nginx替代httpd需根据实际环境调整2.2 RPM/YUM卸载流程版本差异对比表操作步骤Zabbix 5.0Zabbix 6.4Zabbix 7.4查找安装包rpm -qa | grep zabbixrpm -qa | grep zabbixdnf list installed zabbix*典型包名zabbix-release-5.0-1.el7zabbix-release-6.4-1.el8zabbix-release-7.4-1.el9Web界面包zabbix-web-mysql-sclzabbix-web-mysqlzabbix-web-mysql-nginx数据库依赖mariadb-servermysql-serverpostgresql或mysql-server卸载操作示例# 5.0版本卸载示例 yum remove zabbix-server-mysql-5.0* zabbix-web-mysql-scl-5.0* # 7.4版本卸载示例 dnf remove zabbix-server-mysql-7.4* zabbix-web-mysql-nginx-7.4*2.3 源码安装卸载流程源码安装的版本差异主要体现在配置文件和数据库schema位置定位安装目录# 查看编译时指定的prefix cat /usr/local/src/zabbix-7.4.0/build/config.status | grep prefix版本特定路径5.0默认/usr/local/zabbix6.4可能使用/opt/zabbix作为前缀配置文件通常位于/etc/zabbix所有版本完整清理脚本#!/bin/bash ZABBIX_PREFIX/usr/local/zabbix # 根据实际修改 rm -rf $ZABBIX_PREFIX rm -rf /etc/zabbix rm -rf /var/log/zabbix userdel zabbix groupdel zabbix3. 残留文件深度清理指南3.1 通用清理清单以下目录需要重点检查适用于所有版本/etc/zabbix /var/log/zabbix /usr/lib/zabbix /usr/share/zabbix /var/lib/zabbix /tmp/zabbix*3.2 版本特定残留5.0版本SELinux策略模块/etc/selinux/targeted/active/modules/100/zabbix旧的Web界面/usr/share/zabbix/5.06.4版本系统d单元文件/usr/lib/systemd/system/zabbix*临时文件/run/zabbix3.3 数据库清理MySQL/MariaDBDROP DATABASE zabbix; DROP USER zabbixlocalhost;PostgreSQLDROP DATABASE zabbix; DROP ROLE zabbix;提示7.4版本开始支持TimescaleDB扩展如使用需额外执行DROP EXTENSION timescaledb CASCADE4. 验证卸载完整性的专业方法4.1 交叉验证技术# 方法1系统级搜索 find / -name *zabbix* 2/dev/null | grep -v Permission denied # 方法2进程检查 ps aux | grep zabbix # 方法3端口验证 ss -tulnp | grep 100504.2 自动化验证脚本#!/bin/bash echo 卸载完整性检查 echo 1. 软件包检查: rpm -qa | grep zabbix || dnf list installed | grep zabbix echo 2. 关键目录检查: directories(/etc/zabbix /var/log/zabbix /usr/lib/zabbix /var/lib/zabbix) for dir in ${directories[]}; do [ -d $dir ] echo 存在目录: $dir done echo 3. 进程检查: pgrep -a zabbix echo 4. 端口检查(10050/10051): ss -tulnp | grep -E 10050|100515. 特殊场景处理5.1 混合安装环境当系统中同时存在RPM和源码安装的组件时建议先通过包管理器卸载RPM包手动清理源码安装部分使用strace追踪可能遗漏的文件strace -f -o /tmp/zabbix_uninstall.log \ systemctl start zabbix-agent 2/dev/null grep open( /tmp/zabbix_uninstall.log | grep zabbix5.2 容器化部署清理对于Docker部署的环境# 查找相关容器 docker ps -a | grep zabbix # 清理容器和卷 docker stop zabbix-container docker rm zabbix-container docker volume prune -f6. 预防残留的最佳实践安装前规划使用--prefix指定专用目录记录安装时所有参数配置管理# 保存配置变更记录 rpm -qc zabbix-server zabbix-config-list.txt数据库备份mysqldump -u root -p zabbix zabbix-backup-$(date %F).sql在实际运维中我曾遇到一个典型案例升级从5.0到7.4时旧的SELinux策略导致新版本服务启动失败。通过本文的清理方法系统性地解决了问题这提醒我们彻底的旧版本清理对于系统健康至关重要。