erw23312 发表于 2015-6-16 08:48:19

LNMP+Zabbix一键安装脚本

环境:CentOS 6.5(最小化安装)


执行截图:





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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#!/bin/bash
#date:2015-6-14
#author:yfshare
#mail:838554604@qq.com
echo ''
echo -e "\t###########################################################"
echo -e "\t###\t\t\t\t\t\t\t###"
echo -e "\t###\twelcome to use Zabbix&Nginx Install Scripts\t###"
echo -e "\t###\tRequirement:\t\t\t\t\t###"
echo -e "\t###\tSystem:\t\tCentOS 6.x\t\t\t###"
echo -e "\t###\tprocessor:\tx86_64\t\t\t\t###"
echo -e "\t###\t\t\t\t\t\t\t###"
echo -e "\t###########################################################"
echo ''
function check_service() {
network=`netstat -tunlp |grep ${1} |wc -l`
Process=`ps -ef|grep ${1}|grep -v grep|wc -l`
while true
do
if [ ${network} -ge 1 ] || [ ${Process} -ge 1 ];then
echo -e "${1} started successfully"
break
else
echo -e "${1} failed to start"
/bin/sh $2
sleep 2
fi
done
}
function Content() {
read -p 'please input software path:' path
mkdir ${path}/log
log="${path}/log/install.log"
yum -y install gcc gcc-c++ >>${log} 2>&1
#install PHP
yum -y install libxml2 libxml2-devel libjpeg-devel libpng-devel bzip2-devel libcurl-devel gd-devel >>${log} 2>&1
tar -jxvf ${path}/php-5.3.8.tar.bz2 -C ${path}>>${log} 2>&1
cd ${path}/`tar -jxvf php-5.3.8.tar.bz2|head -n 1|awk -F/ '{print $1}'`
./configure --prefix=/usr/local/php --with-bz2 --with-curl --enable-ftp --enable-sockets --enable-bcmath --disable-ipv6 --with-gd --with-jpeg-dir=/usr/local/photo --with-png-dir=/usr/local/photo --with-freetype-dir=/usr/local --enable-gd-native-ttf --with-iconv-dir=/usr/local --enable-mbstring --enable-calendar --with-gettext --with-libxml-dir=/usr/local --with-zlib --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --enable-dom --enable-xml --enable-fpm --with-libdir=lib64 >>${log} 2>&1 &&make >>${log} 2>&1 &&make install >>${log} 2>&1
cp php.ini-production /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sed -i '/max_execution_time/s/30/300/' /usr/local/php/lib/php.ini
sed -i '/post_max_size/s/8/16/' /usr/local/php/lib/php.ini
sed -i '/max_input_time/s/60/300/' /usr/local/php/lib/php.ini
sed -i '/^;date.timezone/adate.timezone \= \"Asia\/Shanghai\"' /usr/local/php/lib/php.ini
sed -i '/^\;date\.timezone \=/d' /usr/local/php/lib/php.ini
sed -i '/run\/php-fpm.pid/s/^;//g' /usr/local/php/etc/php-fpm.conf
sed -i '/^;pm.min_spare_servers/s/^;//g' /usr/local/php/etc/php-fpm.conf
sed -i '/^;pm.max_spare_servers/s/^;//g' /usr/local/php/etc/php-fpm.conf
sed -i '/^;pm.start_servers/s/^;//g' /usr/local/php/etc/php-fpm.conf
echo "/usr/local/php/sbin/php-fpm" >>/etc/rc.local
/usr/local/php/sbin/php-fpm
check_service php "/usr/local/php/sbin/php-fpm"
#install Nginx
tar -jxvf ${path}/pcre-8.12.tar.bz2 -C ${path} >>${log} 2>&1
cd ${path}/`tar -jxvf ${path}/pcre-8.12.tar.bz2|head -n 1|awk -F/ '{print $1}'`
./configure >>${log} 2>&1 &&make >>${log} 2>&1 &&make install >>${log} 2>&1
tar -zxvf ${path}/zlib-1.2.7.tar.gz -C ${path} >>${log} 2>&1
cd ${path}/`tar -zxvf ${path}/zlib-1.2.7.tar.gz|head -n 1|awk -F/ '{print $1}'`
./configure >>${log} 2>&1 &&make >>${log} 2>&1 &&make install >>${log} 2>&1
tar -zxvf ${path}/openssl-1.0.1c.tar.gz -C ${path} >>${log} 2>&1
cd ${path}/`tar -zxvf ${path}/openssl-1.0.1c.tar.gz|head -n 1|awk -F/ '{print $1}'`
./config >>${log} 2>&1 &&make >>${log} 2>&1 &&make install >>${log} 2>&1
tar -zxvf ${path}/nginx-1.6.2.tar.gz -C ${path}>>${log} 2>&1
cd ${path}/`tar -zxvf ${path}/nginx-1.6.2.tar.gz|head -n 1|awk -F/ '{print $1}'`
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-pcre=${path}/pcre-8.12 --with-zlib=${path}/zlib-1.2.7 --with-openssl=${path}/openssl-1.0.1c --with-http_stub_status_module >>${log} 2>&1 &&make >>${log} 2>&1 &&make install >>${log} 2>&1
cp ${path}/conf/etc_init.d_nginx /etc/init.d/nginx
chmod 775 /etc/init.d/nginx
cp ${path}/conf/nginx.conf /usr/local/nginx/conf
chkconfig --add nginx
chkconfig nginx on
/etc/init.d/nginx start
check_service nginx "/etc/init.d/nginx start"
#install mysql
yum -y install mysql* >>${log} 2>&1
/etc/init.d/mysqld start |tail -n 1
check_service mysqld "/etc/init.d/mysqld start"
chkconfig mysqld on
mysqladmin -uroot password redhat
#install zabbix
yum -y install net-snmp net-snmp-devel libxml2-devel libcurl-devel >>${log} 2>&1
tar -zxvf ${path}/zabbix-2.0.14.tar.gz -C ${path}>>${log} 2>&1
cd ${path}/`tar -zxvf ${path}/zabbix-2.0.14.tar.gz|head -n 1|awk -F/ '{print $1}'`
zabbix_install="${path}/`tar -zxvf ${path}/zabbix-2.0.14.tar.gz|head -n 1|awk -F/ '{print $1}'`"
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 >>${log} 2>&1 &&make >>${log} 2>&1 &&make install >>${log} 2>&1
useradd -s /sbin/nologin zabbix
#initial database
mysql -uroot -predhat < ${path}/conf/initial_database.sql
mysql -uzabbix -pzabbix zabbix < ${zabbix_install}/database/mysql/schema.sql
mysql -uzabbix -pzabbix zabbix < ${zabbix_install}/database/mysql/images.sql
mysql -uzabbix -pzabbix zabbix < ${zabbix_install}/database/mysql/data.sql
cp ${zabbix_install}/misc/init.d/fedora/core/zabbix_* /etc/init.d/
chmod 775 /etc/init.d/zabbix_*
sed -i '/LogFile/s/tmp/var\/log/' /usr/local/zabbix/etc/zabbix_server.conf
sed -i '/^DBUser\=/s/root/zabbix/' /usr/local/zabbix/etc/zabbix_server.conf
sed -i '/DBPassword\=$/s/^#//g' /usr/local/zabbix/etc/zabbix_server.conf
sed -i '/DBPassword\=$/s/^[ \t]//g' /usr/local/zabbix/etc/zabbix_server.conf
sed -i '/DBPassword\=$/s/\=/&zabbix/g' /usr/local/zabbix/etc/zabbix_server.conf
sed -i -e '/DBPort\=/s/^#//g' /usr/local/zabbix/etc/zabbix_server.conf -e '/DBPort\=/s/^[ \t]//g' /usr/local/zabbix/etc/zabbix_server.conf
mkdir /usr/local/nginx/html/zabbix
cp -rf ${zabbix_install}/frontends/php/* /usr/local/nginx/html/zabbix/
chown zabbix:zabbix /usr/local/nginx/html/zabbix/ -R
chmod o+w /usr/local/nginx/html/zabbix/conf
ln -s /usr/local/zabbix/sbin/* /usr/local/sbin/
touch /var/log/zabbix_server.log
chown zabbix:zabbix /var/log/zabbix_server.log
chmod 775 /var/log/zabbix_server.log
/etc/init.d/zabbix_server start
check_service zabbix_server "/etc/init.d/zabbix_server start"
/etc/init.d/zabbix_agentd start
check_service zabbix_agentd "/etc/init.d/zabbix_agentd start"
chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig zabbix_server on
chkconfig zabbix_agentd on
touch /usr/local/nginx/logs/zabbix.access.log
/etc/init.d/nginx reload
echo ''
echo 'mysql database password for root is redhat'
echo "installer log files are saved at ${path}/log/install.log,Thanks for Using"
echo "Access http://ip/zabbix configuration zabbxi"
}
#
ret_code=`curl -I -s --connect-timeout 15 www.baidu.com -w %{http_code}|tail -n 1`
System=`cat /proc/version |grep -io Centos`
ID=`cat /proc/version |awk -F'(' '{print $1}'`
processor=`uname -p`
if [[ ${ret_code} != '200' ]];then
echo ''
echo -e "\033Network exception, please try again\033[39;49;0m"
exit 1
else
if [[ ${System} != 'centos' ]] || [[ ${processor} != 'x86_64' ]];then
echo 'Warn message:'
echo -e "The current operation system:${ID} is not in the system support list\nSystem environment check fails, it may affect the program to run"
read -p "Ignored the warning messages ?" key
if [[ ${key} != ]];then
echo -e "\033[31;49;1mThanks for using\033[39;49;0m"
echo ''
else
echo ''
echo -e "\033[31;49;1mStart install...\033[39;49;0m"
Content
exit 1
fi
else
echo ''
echo -e "\033[31;49;1mStart install...\033[39;49;0m"
Content
exit 1
fi
fi



kkk331 发表于 2015-6-20 22:12:22

怎么用
页: [1]
查看完整版本: LNMP+Zabbix一键安装脚本