Zabbix Agent 6.4 Shell脚本

#!/bin/bash
#Zabbix6.4.0 client shell script
#2023-03-17
#Zabbix-6.4.0 客户端安装
#OS: CentOS 7.x
#Version 1.0
clear
date
function chk_base()
{
clear
date
echo ""
echo "##################################################"
echo "#                                                #"
echo "#       zabbix 6.4.0 Client setup program        #"
echo "#                                                #"
echo "##################################################"
for i in `seq -w 3 -1 0`
do
echo -ne "$i 秒\b\b\b\b"
sleep 1
done
echo ""
MYVER=`cat /etc/redhat-release |awk '{print $4}'| awk -F [.] '{print $1}'`
#expr 1 + $MYVER &>/dev/null
if [ $MYVER -ne 7 ];then
   echo "请在 7 版本的系统里面运行该脚本..................."
   exit
fi
if [ $UID -ne 0 ]; then
   echo "请用 root 用户运行该脚本...."
   exit
fi
echo '网络检测中........................................'
echo ' '
sleep 1
#检测有无外网
ping -c 1 114.114.114.114 > /dev/null 2>&1
if [ $? -eq 0 ];then
   echo '网络正常,程序将继续运行。'
   sleep 1
else
   echo '正在进行第二次网络检测,请稍候....................'
   sleep 1
   curl www.baidu.com >/dev/null 2>&1
   if [ $? -ne 0 ]; then
      echo '检测到网络连接有异常,请检查您的网络设置..........'
      exit
  else
      echo ''
      echo '网络正常,程序将继续运行.'
      sleep 1
  fi
fi
}

function zab_client()
{
yum install wget -y >/tmp/a.txt
echo '--------------------------------------------------'
echo ''
echo "开始安装 zabbix 6.4.0 client......................"
sleep 2
########## 源码二进制安装 zabbix 6.4.0 client ##############
ZABBIX_AGENTD=`ps -ef |grep zabbix_agentd |grep -v grep | wc -l`
if [ $ZABBIX_AGENTD -ge 1 ]; then
   echo '已有zabbix_agentd 进程运行,不需要再安装。'
   echo ''
   ps -ef |grep mysqld | grep -v grep
   echo ''
   sleep 1
else
  if [ ! -f "/opt/zabbix-6.4.0.tar.gz" ];then
     echo "zabbix-6.4.0.tar.gz 文件不存在,网上下载.........."
     sleep 2
     cd /opt
 wget -q https://cdn.zabbix.com/zabbix/sources/stable/6.4/zabbix-6.4.0.tar.gz
    echo "下载完成。"
   if [ $? -ne 0 ]; then
      echo ''
      echo "下载有问题,请检查................................"
   exit
   fi
fi
useradd -s /sbin/nologin zabbix
#yum 安装 依赖包
echo "开始安装 zabbix 依赖包............................"
yum -y install gcc gcc-c++ make pcre-devel vim >/tmp/zabbix_agent_yl.log
cd /opt
echo "正在解压 zabbix-6.4.0 ............................"
tar zxvf zabbix-6.4.0.tar.gz >/tmp/zabbix_agent_tar.log && cd zabbix-6.4.0/
export CFLAGS="-std=gnu99"
./configure --prefix=/usr/local/zabbix --enable-agent >/tmp/zabbix_agent_ybl.log
if [ $? -ne 0 ]; then
   echo "Zabbix 6.4.0 client 预编译错误,日志文件 /tmp/zabbix_agent_ybl.log"
  exit
fi
make >/tmp/zabbix_agent_make.log
if [ $? -ne 0 ]; then
   echo "Zabbix 6.4.0 client 编译错误,日志文件 /tmp/zabbix_agent_make.log"
   exit
fi
make install >/tmp/zabbix_agent
chown zabbix:zabbix -R /usr/local/zabbix
#配置环境变量
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
ln -s /usr/local/zabbix/sbin/* /usr/local/bin/
#echo "export PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/" >>/etc/profile
#source /etc/profile

#配置zabbix配置文件
cat >/usr/local/zabbix/etc/zabbix_agentd.conf << EOF
PidFile=/usr/local/zabbix/zabbix_agentd.pid
LogFile=/usr/local/zabbix/zabbix_agentd.log
Hostname=`hostname`
Server=10.4.7.180
ServerActive=10.4.7.180
UnsafeUserParameters=1
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
HostMetadataItem=system.hostname
EOF
##########配置systemd zabbix_agent
cat <<EOF > /etc/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target network.target network-online.target
Wants=network.target network-online.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
##加入开机启动并启动
 systemctl daemon-reload
 systemctl enable zabbix-agent --now >/tmp/zabclient_start.log 2>&1
#--now 就是把原来的 enable之后start命令给合并到一起了
#systemctl中关于--now参数的解释:
#当和enable一起使用的时候,设置为开机启动,然后启动服务
#当和disable一起使用的时候,取消开机启动,关闭服务
#只有当disable或者enable操作成功了之后,关闭或启动服务的操作才会发生。

#判断zabbix_agentd 启动有无问题
   if [ $? -ne 0 ]; then
     echo ''
     echo "zabbix_agent 启动有问题,请检查....."
     exit
   fi
   netstat -luntp |grep zabbix_agentd|grep -v grep
   echo ''
   echo 'zabbix_agentd 安装成功。'
   echo '--------------------------------------------------'
   echo ''
   sleep 1
fi
date
}
chk_base
zab_client