#!/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