Zabbix之一键安装 Server && agent [tar]
#!/bin/bash# This is a script of auto install zabbix
# Copyright to jeffery Su
# Written on June 11,2014
# SET VARIABLES
PATH=/bin:/usr/bin:/sbin:/usr/sbin::/usr/local/bin:/usr/local/sbin;
export PATH
MYSQL_PWD="jefferySu"
# Check environment
function check_env {
OS_NAME=$(sed -n '1p' /etc/issue |awk '{print $1}')
echo "check the system environment..."
sleep 1
# Detecting whether the current user is root
if [ $UID != 0]; then
echo "You must be root to run this install script!"
exit 0
fi
# Stop Selinx and iptables
echo "Stop selinux and iptables"
sleep 1
if [ $OS_NAME == 'CentOS' -o $OS_NAME == 'Red' ]; then
/etc/init.d/iptables stop 2 >/dev/null
setenforce 0
sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config > /dev/null
yum install ntpdate -y
sleep 1
else
echo "unkonwn system,quit..."
exit 0
fi
# Detecting whether the network can access the internet
# echo 8.8.8.8 >> /etc/resolv.conf > /dev/null
NET_ACTIVE=$(ping www.baidu.com -c 7 | grep 'received' | awk 'BEGIN {FS=","} {print $2}' | awk '{print $1}')
if [ $NET_ACTIVE == 0 ] ; then
echo "Network is not active,please check your network configuration!"
exit 0
else
echo "Network is active,continue ..."
sleep 1
fi
# Syschronize time throught internet
echo "Syschronize time ..."
ntpdate tiger.sina.com.cn
hwclock -w
echo "finish check..."
sleep 1
}
function lamp_ins {
echo "Install lamp gcc ..."
sleep1
yum install -y httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysqlphp-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmathmysql-connector-odbc mysql-devel libdbi-dbd-mysql php-gd* libpng freetype libxml2 zlib wget gcc make
if [[ $? != 0 ]]; then
echo "error in the yum,stop..."
exit 0
fi
echo "configuration after the installation...."
sleep 1
/bin/cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
sed -i '/DirectoryIndex/s/$/ index.php /' /etc/httpd/conf/httpd.conf
echo "ServerName localhost:80" >> /etc/httpd/conf/httpd.conf
/etc/init.d/httpd restart
/etc/init.d/mysqld restart
chkconfig httpd on
chkconfig mysqld on
# Configure mysql password
mysqladmin -uroot password $MYSQL_PWD
}
function fping_ins {
FPING_VER="fping-3.10"
# Detecting the setup packages exits
if [ -s ${FPING_VER}.tar.gz ];
then
echo "${FPING_VER}.tar.gz "
else
echo "Error: ${FPING_VER} not found!!!download now......"
wgethttp://fping.org/dist/${FPING_VER}.tar.gz
fi
# Compile the major programmer
tar zxf ${FPING_VER}.tar.gz -C /usr/local/src
cd /usr/local/src/$FPING_VER
./configure
if [[ $? != 0 ]]; then
echo "error in the compilation,stop.."
exit 0
fi
make &&make install
# Add user
groupadd zabbix
useradd zabbix -g zabbix
# Grant privileges
chown root:zabbix /usr/local/sbin/fping
chmod 4710 /usr/local/sbin/fping
}
function zabbix_ins {
ZABBIX_VER="zabbix-2.2.3"
ZABBIX_PATH=/var/www/html/zabbix
# Detecting the setup packages exits
if [ -s ${ZABBIX_VER}.tar.gz ];
then
echo "${ZABBIX_VER}.tar.gz "
else
echo "Error: ${ZABBIX_VER} not found!!!download now......"
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.3/zabbix-2.2.3.tar.gz
fi
# Prepare work
yum -y install net-snmp-devel libcurl-devel OpenIPMI-devel openssl-devel
groupadd zabbix >/dev/null
useradd zabbix -g zabbix >/dev/null
#yum install lr* -y
# Compile the major programmer
tar zxf ${ZABBIX_VER}.tar.gz -C /usr/local/src
cd /usr/local/src/$ZABBIX_VER
./configure --prefix=/usr/local/zabbix --enable-server--enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
if [[ $? != 0 ]]; then
echo "error in the compilation,stop.."
exit 0
fi
make install
if [[ $? != 0 ]]; then
echo "error in the compilation,stop.."
exit 0
else
echo "compilation finish..."
fi
# Add zabbix services port
/bin/cp /etc/services /etc/services.bak
cat >> /etc/services <<END
zabbix-agent 10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
zabbix-trapper10051/tcp #Zabbix Trapper
zabbix-trapper10051/udp #Zabbix Trapper
END
# Repair the zabbix configure file
ln -s /usr/local/zabbix/etc/ /etc/zabbix
/bin/cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak
sed -i's/DBUser=root/DBUser=zabbix/;/DBUser=zabbix/a\DBPassword=jefferySu' /etc/zabbix/zabbix_server.conf
echo "FpingLocation=/usr/sbin/fping" >> /etc/zabbix/zabbix_server.conf
/bin/cp /etc/zabbix/zabbix_agent.conf /etc/zabbix/zabbix_agent.conf.bak
mkdir -p $ZABBIX_PATH
/bin/cp -r /usr/local/src/$ZABBIX_VER/frontends/php/*$ZABBIX_PATH
chown -R zabbix:zabbix $ZABBIX_PATH
# Create start file
/bin/cp /usr/local/src/$ZABBIX_VER/misc/init.d/fedora/core5/zabbix_server /etc/init.d/
/bin/cp /usr/local/src/$ZABBIX_VER/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
sed -i 's#/usr/local#/usr/local/zabbix#' /etc/init.d/zabbix_server
sed -i 's#/usr/local#/usr/local/zabbix#' /etc/init.d/zabbix_agentd
/etc/init.d/zabbix_server start
/etc/init.d/zabbix_agentd start
# Start the zabbix service on boot
chkconfig --add zabbix_agentd
chkconfig --add zabbix_server
chkconfig zabbix_server on
chkconfig zabbix_agentd on
# configure the php
/bin/cp /etc/php.ini /etc/php.ini.bak
sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/;s/post_max_size = 8M/post_max_size = 32M/;s/max_execution_time = 30/max_execution_time = 300/;s/;mbstring.func_overload = 0/mbstring.func_overload = 2/;s/max_input_time = 60/max_input_time = 300/' /etc/php.ini
/etc/init.d/httpdrestart
# Create database import data and grant privileges
mysql -uroot -p$MYSQL_PWD -e "create database zabbix character set utf8"
mysql -uroot -p$MYSQL_PWD -e "grant all privileges on zabbix.* to zabbix@localhost identified by '$MYSQL_PWD'"
mysql -uroot -p$MYSQL_PWD -e "flush privileges"
mysql -uroot -p$MYSQL_PWD zabbix < /usr/local/src/$ZABBIX_VER/database/mysql/schema.sql
mysql -uroot -p$MYSQL_PWD zabbix < /usr/local/src/$ZABBIX_VER/database/mysql/images.sql
mysql -uroot -p$MYSQL_PWD zabbix < /usr/local/src/$ZABBIX_VER/database/mysql/data.sql
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ all thing prepare ok! please do the last step: +
+ type $IP/`basename $ZABBIX_PATH` to configure... +
+ for example : http://host_IP or domain name/`basename $ZABBIX_PATH` +
+ dbname:zabbixdbuser=zabbix dbpwd=jefferySu +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
}
# Method Call
#check_env
#lamp_ins
fping_ins
zabbix_ins
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/bin/bash
# This is a script of auto install zabbix agent
# Copyright to jeffery Su
# Written on June 13,2014
# SET VARIABLES
PATH=/bin:/usr/bin:/sbin:/usr/sbin::/usr/local/bin:/usr/local/sbin;
export PATH
IP=`ifconfig |grep 'inet addr:'|awk '{print $2}'|cut -d : -f 2|head -1`
function fping_ins {
FPING_VER="fping-3.10"
# Detecting the setup packages exits
if [ -s ${FPING_VER}.tar.gz ];
then
echo "${FPING_VER}.tar.gz "
else
echo "Error: ${FPING_VER} not found!!!download now......"
wgethttp://fping.org/dist/${FPING_VER}.tar.gz
fi
# Compile the major programmer
tar zxf ${FPING_VER}.tar.gz -C /usr/src
cd /usr/src/$FPING_VER
./configure
if [[ $? != 0 ]]; then
echo "error in the compilation,stop.."
exit 0
fi
make &&make install
# Add user
groupadd zabbix
useradd zabbix -g zabbix
# Grant privileges
chown root:zabbix /usr/local/sbin/fping
chmod 4710 /usr/local/sbin/fping
}
function agent_ins {
ZABBIX_VER="zabbix-2.2.3"
ZABBIX_SER_IP=172.16.xx.xx #INTENTION: This is zabbix server ip address
ZABBIX_PRO_HOSTNAME=${IP}#INTENTION: This is zabbix proxy hostname
# Prepare work
yum -y install net-snmp net-snmp-devel libcurl-devel gcc make wgetgcc-c++ autoconf ncurses-devel
# Add user
groupadd zabbix
useradd zabbix -g zabbix
# Detecting the zabbix packages exits
if [ -s ${ZABBIX_VER}.tar.gz ];
then
echo "${ZABBIX_VER}.tar.gz "
else
echo "Error: ${ZABBIX_VER} not found!!!download now......"
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.3/zabbix-2.2.3.tar.gz
fi
# Prepare work
yum -y install net-snmp net-snmp-devel libcurl-devel gcc make wgetgcc-c++ autoconf ncurses-devel
#yum install lr* -y
# Compile the major programmer
tar zxf ${ZABBIX_VER}.tar.gz -C /usr/src
cd /usr/src/$ZABBIX_VER
./configure --prefix=/usr/local/zabbix--enable-agent --with-net-snmp --with-libcurl
if [[ $? != 0 ]]; then
echo "error in the compilation,stop.."
exit 0
fi
make install
if [[ $? != 0 ]]; then
echo "error in the compilation,stop.."
exit 0
else
echo "compilation finish..."
fi
# Add zabbix services port
/bin/cp /etc/services /etc/services.bak
cat >> /etc/services <<END
zabbix-agent 10050/tcp #Zabbix Agent
zabbix-agent 10050/udp #Zabbix Agent
zabbix-trapper10051/tcp #Zabbix Trapper
zabbix-trapper10051/udp #Zabbix Trapper
END
# Create start file
/bin/cp /usr/src/$ZABBIX_VER/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
sed -i 's#/usr/local#/usr/local/zabbix#' /etc/init.d/zabbix_agentd
chmod 750 /etc/init.d/zabbix_agentd
chown zabbix:zabbix /etc/init.d/zabbix_agentd
sed -i '/^ZABBIX_BIN/aCONF_FILE="/usr/local/zabbix/etc/zabbix_agentd.conf"' /etc/init.d/zabbix_agentd
sed -i 's/daemon $ZABBIX_BIN/daemon $ZABBIX_BIN -c$CONF_FILE/' /etc/init.d/zabbix_agentd
# Configure the zabbix_agent.conf
sed -i "s#Server=127.0.0.1#Server=$ZABBIX_SER_IP#" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "s#ServerActive=127.0.0.1#ServerActive=$ZABBIX_SER_IP:10051#" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "/Hostname=/s#=.*#"=$ZABBIX_PRO_HOSTNAME#"" /usr/local/zabbix/etc/zabbix_agentd.conf
sed -i "s#\#Timeout=3#Timeout=30#" /usr/local/zabbix/etc/zabbix_agentd.conf
#logfile pidfile
# Start the zabbix service on boot
chkconfig --add zabbix_agentd
chkconfig zabbix_agentd on
/etc/init.d/zabbix_agentd start
# Test agent
echo "check local zabbixagent"
/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf -t system.uptime
}
fping_ins
agent_ins
页:
[1]