以下是根据系统类型自动化部署安装zabbix的shell脚本:
#!/bin/bash
# 检查当前用户是否为root用户
if [ "$EUID" -ne 0 ]
then
echo "请使用root用户运行此脚本"
exit 1
fi
# 检查操作系统类型
if [[ $(lsb_release -si 2> /dev/null) == "Ubuntu" ]]; then
# Ubuntu系统
echo "当前操作系统为Ubuntu"
# 更新apt-get包管理器
echo "更新apt-get包管理器..."
apt-get update || { echo "无法更新apt-get包管理器,请检查网络连接或手动更新"; exit 1; }
# 安装zabbix
echo "正在安装zabbix..."
apt-get install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent mysql-server || { echo "无法安装zabbix或mysql-server,请检查网络连接或手动安装"; exit 1; }
# 修改zabbix配置文件
echo "正在修改zabbix配置文件..."
sed -i 's/# DBPassword=/DBPassword=zabbix/g' /etc/zabbix/zabbix_server.conf
systemctl restart zabbix-server
# 验证zabbix是否已安装成功
echo "验证zabbix是否安装成功..."
zabbix_server -V 2>/dev/null || { echo "Zabbix未正确安装,请检查安装过程中是否出现错误"; exit 1; }
echo "zabbix安装完成!"
elif [[ $(cat /etc/redhat-release) == "CentOS"* ]]; then
# CentOS系统
echo "当前操作系统为CentOS"
# 更新yum包管理器
echo "更新yum包管理器..."
yum update -y || { echo "无法更新yum包管理器,请检查网络连接或手动更新"; exit 1; }
# 安装zabbix
echo "正在安装zabbix..."
rpm -ivh http://repo.zabbix.com/zabbix/5.4/rhel/$(rpm -E %rhel)/x86_64/zabbix-release-5.4-1.el$(rpm -E %rhel).noarch.rpm || { echo "无法添加zabbix-release源,请检查网络连接或手动安装"; exit 1; }
yum install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent mysql-server || { echo "无法安装zabbix或mysql-server,请检查网络连接或手动安装"; exit 1; }
# 修改zabbix配置文件
echo "正在修改zabbix配置文件..."
sed -i 's/# DBPassword=/DBPassword=zabbix/g' /etc/zabbix/zabbix_server.conf
systemctl restart zabbix-server
# 验证zabbix是否已安装成功
echo "验证zabbix是否安装成功..."
zabbix_server -V 2>/dev/null || { echo "Zabbix未正确安装,请检查安装过程中是否出现错误"; exit 1; }
echo "zabbix安装完成!"
else
echo "不支持的操作系统类型"
exit 1
fi
脚本会根据系统类型选择对应的安装方法,并自动安装必要依赖包,添加Zabbix官方源,安装Zabbix及MySQL服务器,并修改Zabbix配置文件,最后重启服务。如果在安装过程中出现错误,则会打印出错误信息并退出脚本。