#!/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