基于文章
http://blog.chinaunix.net/uid-26168435-id-5728816.html,写了1个简单的脚本来简化zabbix_agnetd的部署。
脚本运行注意事项:
1.
script与zabbix-3.0.1.tar.gz放置在同一个目录运行;
2. 由于
zabbix安装文件的名字未采用变量,
在script中已写死,虽然可变更,但需要同步修改脚其中对应的地方;
3.
script中
涉及到变更运行目录,所以请使用"source" 或 ". "运行script,如: "source xx.sh"或". ./xx.sh";
4.
script运行基于centos6.x,请注意与centos7.x的命令区别,这里主要是centos7.x默认没有iptables,需要提前准备好iptables的环境。
点击(此处)折叠或打开
-
#!/bin/bash
-
# Program:
-
# Automatic install zabbix_agentd-3.0.1 in centos-6.x-x86_64 by the scripts.
-
# Usage:
-
# It relate to chage directory, please use source or . to execute this scripts, the others methods will fail.
-
# History:
-
# 2016/05/10 v0.1
-
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
-
export PATH
-
-
# Check if user is root.
-
if [ $(id -u) != "0" ]; then
-
echo "Error: You must be root to run this script, please use root to install zabbix_agentd!"
-
exit 1
-
fi
-
-
# Function: check the zabbix_server ip address which has be inputed.
-
checkip() {
-
echo $1 | egrep -q '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' > /dev/null
-
if [ $? -ne 0 ]; then
-
echo "Error: Please input correct format IP address!"
-
exit 1
-
fi
-
-
ipaddr=$1
-
ip1=`echo $ipaddr | awk -F. '{print $1}'`
-
ip2=`echo $ipaddr | awk -F. '{print $2}'`
-
ip3=`echo $ipaddr | awk -F. '{print $3}'`
-
ip4=`echo $ipaddr | awk -F. '{print $4}'`
-
-
for num in $ip1 $ip2 $ip3 $ip4; do
-
if [ $num -ge 255 ] || [ $num -lt 0 ]; then
-
echo "Error: Please input correct format IP address!"
-
exit 1
-
fi
-
done
-
-
return 0
-
}
-
-
# Input zabbix_server's ip address.
-
read -p "Please input zabbix_server's ip address[ie: 192.168.1.1]: " zabbixserverip
-
checkip $zabbixserverip
-
echo "OK! Your zabbix_server is ${zabbixserverip}!"
-
-
# Set iptables rules, zabbix server will detect agentd by tcp 10050, and zabbix_agentd will send trapper to server by tcp 10051.
-
iptables -I INPUT -s $zabbixserverip -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT
-
iptables -I OUTPUT -d $zabbixserverip -p tcp -m state --state NEW -m tcp --dport 10051 -j ACCEPT
-
service iptables save
-
-
# Check selinux.
-
if [ $(getenforce) = "Enforcing" ]; then
-
sed -i 's|SELINUX=enforcing|SELINUX=disabled|g' /etc/selinux/config ; sed -i 's|SELINUXTYPE=targeted|#SELINUXTYPE=targeted|g' /etc/selinux/config && setenforce 0
-
fi
-
-
# Create zabbix group and user.
-
groupadd zabbix
-
useradd -g zabbix -s /sbin/nologin zabbix
-
-
# Install zabbix_agentd
-
cur_dir=$(pwd)
-
tar -zxvf $cur_dir/zabbix-3.0.1.tar.gz -C /usr/local/src/
-
cd /usr/local/src/zabbix-3.0.1
-
./configure --prefix=/usr/local/zabbix --enable-agent && make && make install
-
cd ~
-
-
# Add soft link to zabbix_agentd execute file.
-
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
-
ln -s /usr/local/zabbix/bin/* /usr/local/bin/
-
-
# Modify zabbix_agentd config file.
-
sed -i "s|Server=127.0.0.1|Server=${zabbixserverip}|g" /usr/local/zabbix/etc/zabbix_agentd.conf
-
sed -i '262s|# Include=/usr/local/etc/zabbix_agentd.conf.d/|Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/|g' /usr/local/zabbix/etc/zabbix_agentd.conf
-
sed -i 's|# UnsafeUserParameters=0|UnsafeUserParameters=1|g' /usr/local/zabbix/etc/zabbix_agentd.conf
-
-
# Set zabbix_agentd automatic start scripts.
-
cp /usr/local/src/zabbix-3.0.1/misc/init.d/fedora/core/zabbix_agentd /etc/rc.d/init.d/zabbix_agentd
-
chown zabbix:zabbix /etc/rc.d/init.d/zabbix_agentd
-
chmod +x /etc/rc.d/init.d/zabbix_agentd
-
sed -i 's|BASEDIR=/usr/local|BASEDIR=/usr/local/zabbix|g' /etc/rc.d/init.d/zabbix_agentd
-
chkconfig --level 35 zabbix_agentd on
-
-
# Start zabbix_agentd service.
-
service zabbix_agentd start
-
-
# Check zabbix_agentd service.
-
if [ $(netstat -tnlp | grep zabbix_agentd | awk '{print $7}' | awk -F/ '{print $2}') = "zabbix_agentd" ]; then
-
echo -e "\033[32m [INFO]Zabbix_agentd has installed and started! \033[0m"
-
else
-
echo -e "\033[31m [ERROR]Zabbix_agentd has not started! \033[0m"
-
fi
-
-
# Clean install package.
-
rm -rf /usr/local/src/zabbix-3.0.1
阅读(3958) | 评论(0) | 转发(0) |