在不同公司大家在安装Zabbix Agent的时候,因为公司管理规则的不同,会导致安装的步骤有所不同。网上现在自动安装的脚本其实已经比较多了,但是解释感觉较少,主要是安装的思路。
下面是基于源码的agent安装过程大家可以参考。
一、主要的思路是
1、执行kill命令查看是否已经有agent在运行
2、检测执行用户,因为agent必须用root用户进行安装
3、检测gcc包是否已经安装,因为这是agent安装的基础
4、检测是否已经存在zabbix安装路径
5、在os上添加zabbix用户和用户组
6、获取安装介质
7、编译 安装
8、修改zabbix_agentd.conf文件
9、复制启动脚本到init.d目录,让其开机自启动
10、修改sudo权限,让zabbix可以免密sudo到超级用户
11、启动agent并查看端口看是否启动成功
二、自动安装脚本如下
#!/bin/bash
#this script is used for installing a zabbix agent on Linux system
###zabbix server ip
SERVER_IP="1.1.1.1"
CONFG_PATH="/usr/local/zabbix/etc/zabbix_agentd.conf"
startup_bin="/usr/local/zabbix/sbin/zabbix_agentd"
set passwd "123456"
pkill zabbix > /dev/null
###must run as root
if [ "`whoami`" != "root" ]
then
print "This must be run as root."
exit -1
fi
###check gcc
gcc_make_soft=`rpm -qa | grep -E '^gcc|^make' | wc -l`
if [ $gcc_make_soft -lt 2 ]; then
yum -y install gcc make
fi
###check zabbix install dir
if [ -d "/usr/local/zabbix" ] ;then
mv /usr/local/zabbix /usr/local/zabbix_bak
fi
###user add
groupadd zabbix
useradd -g zabbix zabbix -s /sbin/nologin
###get tar.gz from your server && compile
cd /usr/local/src/
spawn scp root@1.1.1.1:/usr/local/src/zabbix-3.2.3.tar.gz /usr/local/src
expect {
"密码:"
{
send "$passwd\n"
}
"pass"
{
send "$passwd\n"
}
"yes/no"
{
sleep 5
send_user "send yes"
send "yes\n"
}
eof
{
sleep 5
send_user "eof\n"
}
}
send "exit\r"
expect eof
tar -xvf zabbix-3.2.3.tar.gz
cd /usr/local/src/zabbix-3.2.3
./configure --prefix=/usr/local/zabbix --enable-agent && make install
###modify config file
cd /usr/local/zabbix/etc/
sed -i "s/Server=.*/Server=${SERVER_IP}/g" $CONFG_PATH
sed -i "s/ServerActive=.*/ServerActive=${SERVER_IP}/g" $CONFG_PATH
sed -i "s/ZABBIX_BIN=.*/ZABBIX_BIN=\/usr\/local\/zabbix\/sbin\/zabbix_agentd/g" /usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core5/zabbix_agentd
cp /usr/local/src/zabbix-3.2.3/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
chkconfig zabbix_agentd on
sed -i '$a\zabbix ALL=(ALL) NOPASSWD: ALL' /etc/sudoers
systemctl daemon-reload
/etc/init.d/zabbix_agentd start
netstat -nltp | grep zabbix