#!/bin/bash
#版本詳情
#1.? zabbix-4.0.5.tar.gz
#2.? nginx-1.16.1.tar.gz?
#3.? mysql-5.6.17.tar.gz
#4.? php-7.2.27.tar.gz
echo nameserver 8.8.8.8 >> /etc/resolv.conf
#首先安裝好相關(guān)依賴再進(jìn)行編譯
yum -y install vim
yum -y install bash-com*
#相關(guān)mysql依賴進(jìn)行安裝
yum -y install make cmake gcc gcc-c++ bison bison-devel ncurses ncurses-devel autoconf automake
sleep 5
#安裝nginx編譯工具 gcc
yum -y install gcc? pcre pcre-devel openssl? openssl-devel
yum -y install /usr/bin/unzip
sleep 5
#安裝php相關(guān)依賴
yum -y install libxml2-devel openssl-devel net-snmp net-snmp-devel libcurl-devel libjpeg-devel libpng-devel libicu-devel openldap-devel bzip2 bzip2-devel freetype-devel gmp-devel readline-devel libxslt-devel fontconfig
sleep 60
#創(chuàng)建軟件啟動對應(yīng)用戶
useradd -s /sbin/nologin -M zabbix
useradd -s /sbin/nologin -M nginx
useradd -s /sbin/nologin -M mysql
#---------部署mysql------------------------
#創(chuàng)建mysql相關(guān)存放目錄
mkdir -p /home/deploy/mysql/data
mkdir -p /home/deploy/mysql/logs/error-log
mkdir -p /home/deploy/mysql/logs/slow-log
mkdir -p /home/deploy/mysql/logs/bin-log
mkdir -p /home/deploy/mysql/temp
mkdir -p /home/deploy/mysql/sock
mkdir -p /home/deploy/mysql/pid
#清理mysql環(huán)境
rpm -e mariadb-libs --nodeps
rpm -e mariadb-devel --nodeps
rm -rf /var/lib/mysql
rm -rf /etc/my.cnf
rm -rf /etc/init.d/mysql
rm -rf /etc/init.d/zabbix_server
rm -rf /etc/init.d/zabbix_agentd
rm -rf /usr/lib/systemd/system/nginx.service
sleep 5
#解壓安裝包
cd /home/deploy
tar -zxvf mysql-5.6.17.tar.gz
#編譯
cd ./mysql-5.6.17
cmake -DCMAKE_INSTALL_PREFIX=/home/deploy/mysql -DMYSQL_UNIX_ADDR=/home/deploy/mysql/sock/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/home/deploy/mysql/data -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=20001 -DENABLE_DOWNLOADS=1
#sleep 5
#編譯成功后執(zhí)行安裝命令
make -j 8
make install
chown -R mysql:mysql /home/deploy/mysql
cd /home/deploy/mysql
#初始化mysql
scripts/mysql_install_db --user=mysql --basedir=/home/deploy/mysql --datadir=/home/deploy/mysql/data
#mysql添加到系統(tǒng)服務(wù)
cp /home/deploy/mysql/support-files/mysql.server /etc/init.d/mysql
#使用安裝包中的my.cnf
cp -r /home/deploy/my.cnf /etc
chown mysql:mysql /etc/my.cnf
#啟動mysql進(jìn)程
/etc/init.d/mysql restart
#mysql開機(jī)啟動
chkconfig mysql on
#檢查mysql是否啟動
ss -antp |grep 20001
sleep 5
echo "------------------"
echo "mysql部署成功"
echo "mysql部署成功"
echo "mysql部署成功"
echo "------------------"
#設(shè)置環(huán)境變量
cp -r /home/deploy/mysql/bin/mysql? /usr/local/sbin
cp -r /home/deploy/mysql/bin/mysqladmin? /usr/local/sbin
#設(shè)置root登陸密碼
mysqladmin -u root password 'Oq1dQ@mIYU0IfasWi'
echo "密碼:Oq1dQ@mIYU0IfasWi"
echo "密碼:Oq1dQ@mIYU0IfasWi"
#登陸db創(chuàng)建zabbix庫
mysql -uroot -pOq1dQ@mIYU0IfasWi -e "create database zabbix character set utf8;"
sleep 5
mysql -uroot -pOq1dQ@mIYU0IfasWi -e "grant all on zabbix.* to? 'zabbix'@'%'? identified by 'zabbix';"
sleep 5
mysql -uroot -pOq1dQ@mIYU0IfasWi -e "grant all on zabbix.* to? 'zabbix'@'localhost'? identified by 'zabbix';"
sleep 5
mysql -uroot -pOq1dQ@mIYU0IfasWi -e "flush privileges;"
sleep 5
#--------------------------------------------------
#創(chuàng)建nginx用戶
#useradd -s /sbin/nologin -M nginx
#休息5秒
sleep 5
#解壓nginx安裝包
cd /home/deploy
tar -zxvf nginx-1.16.1.tar.gz
unzip nginx_upstream_check_module-master.zip
echo "解壓成功nginx解壓成功"
mv nginx_upstream_check_module-master/ nginx-1.16.1/
sleep 5
cd ./nginx-1.16.1
patch -p1 </home/deploy/nginx-1.16.1/nginx_upstream_check_module-master/check_1.16.1+.patch
./configure --prefix=/home/deploy/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/home/deploy/nginx-1.16.1/nginx_upstream_check_module-master
#編譯成功后執(zhí)行安裝命令
make -j 4
make install
sleep 5
rm -rf /home/deploy/nginx/conf/nginx.conf
cp -r /home/deploy/nginx.conf /home/deploy/nginx/conf
chown nginx:nginx -R /home/deploy/nginx
#sed -i 's/#user? nobody;/user? nginx;/g' /home/deploy/nginx/conf/nginx.conf
#sed -i 's/listen? ? ? 80;/listen? ? ? 20002;/g' /home/deploy/nginx/conf/nginx.conf
#sed -i '38 r a.txt' /home/deploy/nginx/conf/nginx.conf
#啟動Nginx
cd /home/deploy/nginx/sbin
cp nginx? /usr/local/sbin/
./nginx -c /home/deploy/nginx/conf/nginx.conf
#檢查nginx是否啟動成功
ps aux |grep nginx
echo "---------------------------"
echo "部署成功Nginx部署成功"
echo "部署成功Nginx部署成功"
echo "部署成功Nginx部署成功"
echo "---------------------------"
#Nginx開機(jī)自啟
#echo sh /home/deploy/nginx/sbin/nginx >> /etc/rc.local
chmod 755 /home/deploy/nginx.service
cp -r /home/deploy/nginx.service /usr/lib/systemd/system/
systemctl enable nginx.service
systemctl daemon-reload
echo "---------------------------"
echo "Nginx開機(jī)啟動已設(shè)置成功"
echo "Nginx開機(jī)啟動已設(shè)置成功"
echo "Nginx開機(jī)啟動已設(shè)置成功"
echo "---------------------------"
sleep 10
#---------------------------------------------------
#---------------部署zabbix-server-------------------
#安裝zabbix相關(guān)依賴
yum -y install unixODBC-devel mysql-devel net-snmp-devel libxml2-devel libcurl-devel libevent-devel
sleep 5
cd /home/deploy
#解壓zabbix-server安裝包
tar -zxvf zabbix-4.0.5.tar.gz
#休息5秒
sleep 5
echo "解壓成功zabbix解壓成功"
#初始化zabbix庫
sleep 5
echo '將要初始化zabbix庫啦,請查看相關(guān)db.sql'
cd /home/deploy/zabbix-4.0.5/database/mysql
pwd
sleep 5
mysql -uzabbix -pzabbix -h localhost zabbix < schema.sql
sleep 2
mysql -uzabbix -pzabbix -h localhost zabbix < images.sql
sleep 2
mysql -uzabbix -pzabbix -h localhost zabbix < data.sql
sleep 2
#編譯zabbix蒋失,注意mysql目錄
cd /home/deploy/zabbix-4.0.5
./configure --prefix=/home/deploy/zabbix --enable-server --enable-agent --with-mysql=/home/deploy/mysql/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
sleep 15
#編譯成功后執(zhí)行安裝命令
make install
sleep 10
chown -R zabbix:zabbix /home/deploy/zabbix
#修改zabbix-server相關(guān)配置
sed -i 's/# DBPassword=/DBPassword=zabbix/g' /home/deploy/zabbix/etc/zabbix_server.conf
sed -i '/# DBSocket=/a DBSocket=/home/deploy/mysql/sock/mysql.sock' /home/deploy/zabbix/etc/zabbix_server.conf
sed -i '/# StartDiscoverers=1/a StartDiscoverers=50' /home/deploy/zabbix/etc/zabbix_server.conf
sed -i '/# UnavailableDelay=60/a UnavailableDelay=300' /home/deploy/zabbix/etc/zabbix_server.conf
sed -i '/# DBPort=/a DBPort=20001' /home/deploy/zabbix/etc/zabbix_server.conf
#以后進(jìn)行優(yōu)化返帕,暫時不影響
# PidFile=/tmp/zabbix_server.pid
#LogFile=/tmp/zabbix/log/zabbix_server.log
sleep 5
#copy命令到系統(tǒng)命令存放處(方便調(diào)用)
mkdir -p /home/deploy/nginx/html/zabbix_web
cp -R /home/deploy/zabbix-4.0.5/frontends/php/* /home/deploy/nginx/html/zabbix_web
chown -R nginx:nginx /home/deploy/nginx
#啟動zabbix
/home/deploy/zabbix/sbin/zabbix_server
#檢查zabbix是否啟動成功
netstat -nlutp |grep zabbix_server
sleep 5
echo "---------------------------"
echo "部署成功zabbix-server部署成功"
echo "部署成功zabbix-server部署成功"
echo "部署成功zabbix-server部署成功"
echo "---------------------------"
#zabbix開機(jī)自啟
#echo /home/deploy/zabbix/sbin/zabbix_server >> /etc/rc.local
cp /home/deploy/zabbix-4.0.5/misc/init.d/fedora/core/zabbix_server /etc/init.d/
cp /home/deploy/zabbix-4.0.5/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/home\/deploy\/zabbix/g' /etc/init.d/zabbix_server
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/home\/deploy\/zabbix/g' /etc/init.d/zabbix_agentd
chkconfig --add zabbix_server
chkconfig --add zabbix_agentd
chkconfig zabbix_server on
chkconfig zabbix_agentd on
sleep 5
#-------------------------------------------------
#休息5秒
sleep 5
cd /home/deploy
#解壓nginx安裝包
tar -zxvf php-7.2.27.tar.gz
echo "解壓成功php解壓成功"
echo "解壓成功php解壓成功"
sleep 5
pwd
#編譯php,zabbix5版本以上需要更高版本的php
cd php-7.2.27
./configure --prefix=/home/deploy/php --with-mysqli=/home/deploy/mysql/bin/mysql_config --enable-inline-optimization --enable-fpm --enable-soap --enable-pcntl --enable-xml --with-libxml-dir --with-xmlrpc --with-openssl --with-mhash --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-freetype-dir --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --disable-mbregex --disable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-pdo-mysql --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear --without-pear
sleep 30
#編譯成功后執(zhí)行安裝命令
make -j 4
make install
sleep 5
#拷貝服務(wù)和配置文件及屬主和屬組
cp /home/deploy/php-7.2.27/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service
cp /home/deploy/php/etc/{php-fpm.conf.default,php-fpm.conf}
cp /home/deploy/php/etc/php-fpm.d/www.conf{.default,}
cd /home/deploy/php-7.2.27
cp php.ini-production /home/deploy/php/lib/php.ini
chown nginx:nginx -R /home/deploy/php
#優(yōu)化并啟動php
sed -i 's/post_max_size = 8M/post_max_size = 16M/g' /home/deploy/php/lib/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /home/deploy/php/lib/php.ini
sed -i 's/max_input_time = 60/max_input_time = 300/g' /home/deploy/php/lib/php.ini
sed -i 's/;date.timezone =/date.timezone = PRC/g' /home/deploy/php/lib/php.ini
systemctl enable php-fpm.service
systemctl daemon-reload
systemctl restart php-fpm.service
#檢查php是否啟動成功
ps aux |grep php
sleep 10
echo "---------------------------"
echo "部署成功php部署成功"
echo "部署成功php部署成功"
echo "部署成功php部署成功"
echo "---------------------------"
echo "zabbix修改字體篙挽,解決圖形亂碼問題"
echo "zabbix修改字體荆萤,解決圖形亂碼問題"
echo "5"
sleep 1
echo "4"
sleep 1
echo "3"
sleep 1
echo "2"
sleep 1
echo "1"
sleep 1
rm -rf /home/deploy/nginx/html/zabbix_web/fonts/DejaVuSans.ttf
mv /home/deploy/simkai.ttf /home/deploy/nginx/html/zabbix_web/fonts/
sed -i "s/DejaVuSans/simkai/g" /home/deploy/nginx/html/zabbix_web/include/defines.inc.php
echo "我的工作完成啦,拜拜"
echo "我的工作完成啦铣卡,拜拜"
echo "我的工作完成啦链韭,拜拜"
echo "我的工作完成啦,拜拜"
echo "5"
sleep 1
echo "4"
sleep 1
echo "3"
sleep 1
echo "2"
sleep 1
echo "1"
sleep 1