Zabbix4.0.3一键安装shell 脚本(lnmp)

#!/bin/bash
#Zabbix shell script
#2019-01-19
#Zabbix-4.0.3服务器搭建
#Version 1.0
clear
MYVER=`cat /etc/redhat-release |awk '{print $4}'| awk -F [.] '{print $1}'`
expr 1 + $MYVER &>/dev/null
if [ $? -ne 0 ];then
    echo "请在 7 版本的系统里面运行该脚本....."
    exit
fi
if [ $UID -ne 0 ]; then
    echo "请用 root 用户运行该脚本...."
    exit
fi
    echo '网络检测中.......................'
    echo ' '
    sleep 1
#检测有无外网
ping -c 1 114.114.114.114 > /dev/null 2>&1
if [ $? -eq 0 ];then
    echo '网络正常,程序将继续运行。'
    sleep 1
else
    echo '正在进行第二次网络检测,请稍候.........'
    sleep 1
    curl www.baidu.com >/dev/null 2>&1
if [ $? -ne 0 ]; then
    echo '检测到网络连接有异常,请检查您的网络设置.....'
    exit
else
    echo ''
    echo '网络正常,程序将继续运行.'
    sleep 1
fi
fi
echo '--------------------------------------------------------------------'
echo ' '
yum install epel-release net-tools wget vim lrzsz -y
################### yum 安装 mariadb ##################################
PSMYSQL0=`ps -ef |grep mysql |grep -v grep | wc -l`
if [ $PSMYSQL0 -ge 1 ]; then
    echo 'mariadb 已运行,不需要再安装。'
    echo ''
    sleep 1
else
#yum 安装
yum install mariadb mariadb-server mariadb-devel -y
#启动mariadb
systemctl start mariadb
systemctl enable mariadb
PSMYSQL1=`ps -ef |grep mysql |grep -v grep | wc -l`
if [ $PSMYSQL1 -lt 1 ]; then
    echo 'mariadb 启动有问题,请检查。'
    exit
else
    netstat -luntp
    echo 'mariadb 启动成功,程序将继续运行。'
    sleep 1
fi
echo '--------------------------------------------------------------------------'
echo ''
sleep 1
fi
###################### yum 安装 PHP ####################################
PSPHP0=`ps -ef |grep php-fpm |grep -v grep | wc -l`
if [ $PSPHP0 -ge 1 ]; then
    echo 'php 已运行,不需要再安装。'
    echo ''
    sleep 1
else
yum install php php-devel php-mysql php-fpm php-opcache php-mbstring php-bcmath gd gd-devel php-gd php-xml -y
sed -i '/max_execution_time/s/30/300/g' /etc/php.ini
sed -i '/max_input_time/s/60/300/g' /etc/php.ini
sed -i '/post_max_size/s/8M/16M/g' /etc/php.ini
sed -i 's/\;always_populate_raw_post_data = On/always_populate_raw_post_data = On/g' /etc/php.ini
sed -i 's/\;date.timezone.*/date.timezone \= PRC/g' /etc/php.ini
systemctl start php-fpm
systemctl enable php-fpm
#判断php-fpm 是否正常启动
PSPHP1=`ps -ef |grep php-fpm |grep -v grep | wc -l`
if [ $PSPHP1 -lt 1 ]; then
    echo 'php-fpm 启动有问题,请检查。'
    exit
else
   netstat -luntp
   echo 'php-fpm 启动成功,程序将继续运行.'
   sleep 1
fi
echo '-----------------------------------------------------------'
sleep 1
fi
#################### yum 安装 nginx ###############################
PSNGINX0=`ps -ef |grep nginx |grep -v grep | wc -l`
if [ $PSNGINX0 -ge 1 ]; then
    echo 'nginx 已运行,不需要再安装。'
    echo ''
    sleep 1
else
yum install nginx -y
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
cat << EOF >/etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" '
'\$status \$body_bytes_sent "\$http_referer" '
'"\$http_user_agent" "\$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server_tokens off;
gzip on;
server {
listen 80;
server_name localhost;
include /etc/nginx/default.d/*.conf;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
error_page 404 /404.html;
location = /40x.html {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
include fastcgi_params;
}
}
}
EOF
systemctl start nginx
systemctl enable nginx
#判断nginx 是否正常启动
PSNGINX1=`ps -ef |grep nginx |grep -v grep | wc -l`
if [ $PSNGINX1 -lt 1 ]; then
    echo 'nginx 启动有问题,请检查。'
    exit
else
    netstat -luntp
    echo 'nginx 启动成功,程序将继续运行。'
    sleep 1
fi
echo '-----------------------------------------------------'
echo ' '
fi
################## zabbix 4.0.3 源码安装 ###################
#安装Zabbix的一些依赖包
ZAB=`ps -ef |grep zabbix_server |grep -v grep | wc -l`
if [ $ZAB -ge 1 ]; then
    echo 'Zabbix 已运行,不需要再安装。'
    echo ''
    date
    echo '+++++++++++++++++++++++++++++++++++++++++++++++'
    sleep 1
else
yum install gcc gcc-c++ curl-devel net-snmp-devel libevent-devel -y
#判断/opt/下面是否有zabbix4.0.3的源码包
if [ ! -f "/opt/zabbix-4.0.3.tar.gz" ];then
    echo "zabbix4.0 源码文件不存在,我们将在网上下载......"
    echo ''
    sleep 1
    cd /opt
wget https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz
if [ $? -ne 0 ]; then
    echo ''
    echo "下载有问题,请检查....."
    exit
fi
fi
sleep 1
echo '源码安装zabbix-4.0.3'
echo ' '
#源码安装zabbix-4.0.3
cd /opt
tar zxvf zabbix-4.0.3.tar.gz
cd zabbix-4.0.3/
./configure --prefix=/usr/local/zabbix --enable-server --with-mysql --with-net-snmp --with-libcurl
make && make install
cd /opt/zabbix-4.0.3/frontends/php
cp -ra ./* /usr/share/nginx/html/
chmod o+w -R /usr/share/nginx/html/conf
#创建zabbix数据库
echo ''
echo '正在创建 zabbix 数据库.....'
echo ''
mysql -e 'create database zabbix;'
mysql -e 'grant all on zabbix.* to zabbix@"localhost" identified by "abc123";'
mysql -e 'flush privileges;'
sleep 1
#导入zabbix的数据架构
echo '导入zabbix的数据架构......'
echo ''
cd /opt/zabbix-4.0.3/database/mysql
mysql -uzabbix -pabc123 zabbix <schema.sql
mysql -uzabbix -pabc123 zabbix <images.sql
mysql -uzabbix -pabc123 zabbix <data.sql
echo '导入完成.....'
sleep 2
echo '修改配置文件'
cat << EOF > /usr/share/nginx/html/conf/zabbix.conf.php
<?php
// Zabbix GUI configuration file.
global \$DB;
\$DB['TYPE'] = 'MYSQL';
\$DB['SERVER'] = 'localhost';
\$DB['PORT'] = '3306';
\$DB['DATABASE'] = 'zabbix';
\$DB['USER'] = 'zabbix';
\$DB['PASSWORD'] = 'abc123';
// Schema name. Used for IBM DB2 and PostgreSQL.
\$DB['SCHEMA'] = '';
\$ZBX_SERVER = 'localhost';
\$ZBX_SERVER_PORT = '10051';
\$ZBX_SERVER_NAME = '上海IDC监控平台';
\$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
EOF
sed -i 's/\# DBPort=/DBPort=3306/g' /usr/local/zabbix/etc/zabbix_server.conf
sed -i 's/\# DBPassword=/DBPassword=abc123/g' /usr/local/zabbix/etc/zabbix_server.conf
sed -i 's/\# DBHost=localhost/DBHost=localhost/g' /usr/local/zabbix/etc/zabbix_server.conf
useradd -s /sbin/nologin zabbix
ln -s /usr/local/zabbix/sbin/zabbix_server /usr/local/sbin/
zabbix_server
sleep 2
echo '修改配置文件完成。'
echo 'zabbix 4.0.3 全部安装完成。'
netstat -luntp
echo ''
date
echo ''
echo '登录地址:http://your IP/ 默认用户名: admin 密码为:zabbix'
echo '+++++++++++++++++++++++++ END +++++++++++++++++++++++++++++++++++++++++++'
fi