不求甚解

此博客为个人学习之用,如与其他作品雷同,纯属巧合。

导航

自动安装zabbix-agentd脚本 自己写的

Posted on 2021-09-03 00:40  三年三班王小朋  阅读(144)  评论(0编辑  收藏  举报

zabbix_agent_install.sh

#!/bin/bash
#auther by wangxp

ZABBIX_AGENT_DIR="/usr/local/zabbix"
ZABBIX_AGENT_FILE_NAME="zabbix_agent-5.0.15-linux-3.0-amd64-static.tar.gz"
SERVER_IP=111.111.110.41
#LOG_FILE=

echo "检查安装文件..."
sleep 1
if test -f "$ZABBIX_AGENT_FILE_NAME"
then
echo "当前目录找到安装文件:$ZABBIX_AGENT_FILE_NAME"
else
ls `pwd`
echo "当前目录找不到:$ZABBIX_AGENT_FILE_NAME ,脚本退出"
exit 1
fi

echo "检查安装目录..."
sleep 1
if test -d $ZABBIX_AGENT_DIR
then
echo "存在安装路径:$ZABBIX_AGENT_DIR"
rm -rf $ZABBIX_AGENT_DIR/*
echo "清理$ZABBIX_AGENT_DIR"
else
echo "创建安装路径:$ZABBIX_AGENT_DIR"
mkdir -pv $ZABBIX_AGENT_DIR
fi

echo "创建zabbix用户..."
sleep 1
grep "zabbix" /etc/passwd
if [ $? -ne 0 ];
then
useradd zabbix -s /sbin/nologin
fi
#检测函数
check(){
if [ $? -ne 0 ];
then
echo "Error,Please check again."
exit 1
fi
}
zabbixsign(){
if test -z "`ss -ntlp|grep zabbix_agentd|grep -v grep`"
then
echo "zabbix_agentd服务启动失败"
sign=0
else
echo "zabbix_agentd服务启动成功"
sign=1
fi
}

echo "开始解压缩文件..."
sleep 1
tar -zxvf $ZABBIX_AGENT_FILE_NAME -C $ZABBIX_AGENT_DIR
check

echo “创建软链接”
sleep 1
if test -L '/usr/bin/zabbix_sender'
then
rm -rf /usr/bin/zabbix_sender
echo "删除已有/usr/bin/zabbix_sender"
fi
if test -L '/usr/bin/zabbix_get'
then
rm -rf /usr/bin/zabbix_get
echo "删除已有/usr/bin/zabbix_get"
fi
if test -L '/usr/sbin/zabbix_agentd'
then
rm -rf /usr/sbin/zabbix_agentd
echo "删除已有/usr/sbin/zabbix_agentd"
fi

ln -s `find $ZABBIX_AGENT_DIR -type f -name zabbix_sender` /usr/bin
echo "创建软连接/usr/bin/zabbix_sender"
check
ln -s `find $ZABBIX_AGENT_DIR -type f -name zabbix_get` /usr/bin
echo "创建软连接/usr/bin/zabbix_get"
check
ln -s `find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd` /usr/sbin
echo "创建软连接/usr/sbin/zabbix_agentd"
check

echo "修改zabbix_agent配置..."
sleep 1
sed -r -i s/^Server=127.0.0.1/Server=$SERVER_IP/g  `find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd.conf`
check
sed -r -i s/^ServerActive=127.0.0.1/ServerActive=$SERVER_IP/g `find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd.conf`
check
sed -r -i s/'^Hostname=Zabbix server'/Hostname=`hostname`/g `find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd.conf`
check

echo -e  "zabbix_agent基本配置:"
cat `find $ZABBIX_AGENT_DIR -name zabbix_agentd.conf` | egrep '^Server|^ServerActive|^Hostname'

echo -e "添加zabbix_agent启停脚本。。。"
sleep 1
if test ! -f zabbix_agent.sh
then
echo -e  "#!/bin/bash\n# chkconfig: 2345 22 78\n# description:\n
ZABBIX_AGENT_DIR=$ZABBIX_AGENT_DIR
ZABBIX_AGENT=`find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd`
ZABBIX_AGENT_CONF=`find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd.conf`" > zabbix_agentd.sh
echo '
function stop(){
kill -15 `cat /tmp/zabbix_agentd.pid`
} 
case $1 in 
start) 
$ZABBIX_AGENT -c $ZABBIX_AGENT_CONF
;;
stop)
stop
;;
restart)
stop
$ZABBIX_AGENT -c $ZABBIX_AGENT_CONF
;;
*) 
echo "Usage:service zabbix_agentd start|stop|restart"
;; 
esac'>>zabbix_agentd.sh
chmod u+x zabbix_agentd.sh
else
echo "当前目录已经存在zabbix_agent.sh脚本。"
fi

if test -f /etc/init.d/zabbix-agentd;
then
rm -rf /usr/local/etc/zabbix_agentd.conf
echo "删除已存在/etc/init.d/zabbix-agentd"
fi
echo "zabbix_agent添加到init进程..."
sleep 1
cp zabbix_agentd.sh /etc/init.d
check
mv /etc/init.d/zabbix_agentd.sh /etc/init.d/zabbix-agentd
chmod a+x /etc/init.d/zabbix-agentd

echo "zabbix_agent开机启动设置"
chkconfig --add zabbix-agentd
chkconfig zabbix-agentd on
service zabbix-agentd start
sleep 1
zabbixsign

if [ $sign -eq 0 ];then
echo "尝试用root启动用户"
sleep 1
sed -r -i /'# AllowRoot=0'/a\AllowRoot=1 `find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd.conf`
echo -e  "zabbix_agent基本配置:"
cat `find $ZABBIX_AGENT_DIR -name zabbix_agentd.conf` | egrep '^Server|^ServerActive|^Hostname|^AllowRoot'
sleep 3
service zabbix-agentd start
fi
sleep 1
zabbixsign

 

 

 zabbix_agent_install.sh脚本下载