zabbix一键安装脚本

来源:互联网 发布:开启手机休眠关闭网络 编辑:程序博客网 时间:2024/05/16 12:57

#脚本和之前的说明都是从网上CP过来的,不过后面有些自己安装时遇到的问题,在网上的帖子并没有提到,在此描述下。

说明:此脚本只适用与RHEL6.x系列;Nginx版本为1.6最新稳定版;PHP为5.4最新版;Mysql为5.5最新稳定版;Zabbix暂时为2.4最新版。

#!/bin/bash# install Nginx 1.6.2 + mysql5.5.x + PHP-FPM 5.4.x + Zabbix 2.4.4 automatically.# Tested on CentOS 6.5############################################### 变量##############################################err_echo(){  echo -e "\e[91m[Error]: $1 33[0m"  exit 1}info_echo(){  echo -e "\e[92m[Info]: $1 33[0m"}warn_echo(){  echo -e "\e[93m[Warning]: $1 33[0m"}check_exit(){  if [ $? -ne 0 ]; then    err_echo "$1"    exit1  fi}############################################### check##############################################if [ $EUID -ne 0 ]; then  err_echo "please run this script as root user."  exit 1fiif [ "$(awk '{if ( $3 >= 6.0 ) print "CentOS 6.x"}' /etc/redhat-release 2>/dev/null)" != "CentOS 6.x" ];then  err_echo "This script is used for RHEL/CentOS 6.x only."fi############################################### Useradd deploy nginx程序运行账号##############################################info_echo "Useradd deploy"useradd deploy############################################### yum repo##############################################info_echo "配置yum源......"if [ ! -f LNMP+zabbix.repo ]; thencat> /etc/yum.repos.d/LNMP+zabbix.repo <<'EOF'[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/6/$basearch/gpgcheck=0enabled=1[webtatic]name=Webtatic Repository EL6 - $basearch#baseurl=http://repo.webtatic.com/yum/el6/$basearch/mirrorlist=http://mirror.webtatic.com/yum/el6/$basearch/mirrorlistfailovermethod=priorityenabled=0gpgcheck=0[remi]name=Les RPM de remi pour Enterprise Linux 6 - $basearch#baseurl=http://rpms.famillecollet.com/enterprise/6/remi/$basearch/mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirrorenabled=1gpgcheck=0[zabbix]name=Zabbix Official Repository-$basearchbaseurl=http://repo.zabbix.com/zabbix/2.4/rhel/6/$basearch/enabled=1gpgcheck=0[zabbix-non-supported]name=Zabbix Official Repository non-supported-$basearchbaseurl=http://repo.zabbix.com/non-supported/rhel/6/$basearch/enabled=1gpgcheck=0EOFfi############################################### Install nginx+Mysql+PHP+zabbix##############################################info_echo "Install nginx+Mysql+PHP+zabbix......"yum -y install nginx php php-fpm php-cli php-common php-gd php-mbstring php-mcrypt php-mysql php-pdo php-devel php-imagick php-xmlrpc php-xml php-bcmath php-dba php-enchant php-yaf  mysql mysql-server zabbix zabbix-get zabbix-agent zabbix-server-mysql zabbix-web-mysql zabbix-servercheck_exit "Failed to install Nginx/Mysql/PHP/Zabbix!"########################################## Nginx #########################################info_echo "Nginx 配置文件更新 ...."if [ -f /etc/nginx/nginx.conf ]; thenmv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bakcat> /etc/nginx/nginx.conf <<'EOF'user deploy;worker_processes 2;pid /var/run/nginx.pid;worker_rlimit_nofile 65535;events {  worker_connections  65535;  use epoll;}http {   ##  # Basic Settings   ##   sendfile on;   tcp_nopush on;   tcp_nodelay on;   keepalive_timeout 65;   types_hash_max_size 2048;   server_tokens off;   client_header_buffer_size 4k;   open_file_cache max=65535 inactive=60s;   open_file_cache_valid 80s;   open_file_cache_min_uses 1;   server_names_hash_bucket_size 64;   server_name_in_redirect off;   include /etc/nginx/mime.types;   default_type application/octet-stream;   ##  # Logging Settings   ##   access_log /var/log/nginx/access.log;   error_log /var/log/nginx/error.log;  ##   # Gzip Settings  ##   gzip on;   gzip_disable "msie6";   gzip_min_length 1k;   gzip_buffers 4 16k;   gzip_comp_level 2;   gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;   ##   # nginx-naxsi config   ##    # Uncomment it if you installed nginx-naxsi    ##    #include /etc/nginx/naxsi_core.rules;  ##  # nginx-passenger config  ##  # Uncomment it if you installed nginx-passenger  ##  #passenger_root /usr;  #passenger_ruby /usr/bin/ruby;  ##  # Virtual Host Configs  ##    log_format  main  '$server_name $remote_addr - $remote_user [$time_local] "$request" '            '$status $body_bytes_sent "$http_referer" '            '"$http_user_agent" "$http_x_forwarded_for" '            '$ssl_protocol $ssl_cipher $upstream_addr $request_time $upstream_response_time';  include /etc/nginx/conf.d/*.conf;  include /etc/nginx/sites-enabled/*.conf;}EOFfised -i "/worker_processes/cworker_processes $( grep "processor" /proc/cpuinfo| wc -l );" /etc/nginx/nginx.confinfo_echo "zabbix 配置文件添加"cat> /etc/nginx/conf.d/zabbix.conf <<'EOF'server{   listen      80;   server_name  _;   index index.php;   root /data/web/zabbix;   location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {     expires 30d;   }   location ~* \.php$ {     fastcgi_pass   127.0.0.1:9000;     fastcgi_index  index.php;     fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;     include        fastcgi_params;   }}EOFmv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak/etc/init.d/nginx restart########################################## Zabbix #########################################info_echo "Downloading zabbix Web...."info_echo "创建网站目录..."mkdir -p /data/web/zabbixinfo_echo "Downloading..."if [ ! -f /tmp/zabbix.tar.gz ]; then   cd /tmp && wget -O zabbix.tar.gz 'http://sourceforge.net/projects/zabbix/files/latest/download?source=files'fiinfo_echo "解压安装文件..."cd /tmp && tar -zxvf /tmp/zabbix.tar.gzcheck_exit "failed to extract zabbix frontend"ZABBIX_DIR=`ls /tmp/|grep zabbix-`mv /tmp/${ZABBIX_DIR}/frontends/php/* /data/web/zabbix/chown -R deploy.deploy /data/web/zabbix############################################### Database##############################################info_echo "Mysql配置文件更新..."sed -i '/^socket/i\port         = 3306' /etc/my.cnfsed -i '/^socket/a\skip-external-locking\nkey_buffer_size = 256M\nmax_allowed_packet = 1M\ntable_open_cache = 256\nsort_buffer_size = 1M\nread_buffer_size = 1M\nread_rnd_buffer_size = 4M\nmyisam_sort_buffer_size = 64M\nthread_cache_size = 8\nquery_cache_size= 16M\nthread_concurrency = 4\ncharacter-set-server=utf8\ninnodb_file_per_table=1' /etc/my.cnfinfo_echo "Restart mysql ..."/etc/init.d/mysqld startinfo_echo "Create Databases..." mysql -e 'CREATE DATABASE `zabbix` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;'mysql -e "GRANT ALL PRIVILEGES on *.* to zabbix@'localhost' IDENTIFIED BY 'zabbix';"mysql -e "flush privileges"info_echo "配置zabbix的数据库项"sed -i '/DBPassword=/a\DBPassword=zabbix' /etc/zabbix/zabbix_server.confinfo_echo "importing schema.sql"mysql -uzabbix -pzabbix zabbix < $(rpm -ql zabbix-server-mysql|grep schema.sql)check_exit "failed to import schema.sql"info_echo "importing images.sql"mysql -uzabbix -pzabbix zabbix < $(rpm -ql zabbix-server-mysql| grep images.sql)check_exit "failed to import images.sql"info_echo "importing data.sql"mysql -uzabbix -pzabbix zabbix < $(rpm -ql zabbix-server-mysql|grep data.sql)check_exit "failed to import data.sql"########################################## PHP-FPM#########################################info_echo "更新/etc/php.ini,www.conf ..."sed -i '/^;default_charset/a\default_charset = "UTF-8"' /etc/php.inised -i '/^expose_php/cexpose_php = Off' /etc/php.inised -i '/^max_execution_time/cmax_execution_time = 300' /etc/php.inised -i '/^max_input_time/cmax_input_time = 300' /etc/php.inised -i '/^memory_limit/cmemory_limit = 256M'  /etc/php.inised -i '/^post_max_size/cpost_max_size = 32M' /etc/php.inised -i '/^upload_max_filesize/cupload_max_filesize = 300M' /etc/php.inised -i '/^max_file_uploads/cmax_file_uploads = 30' /etc/php.inised -i '/^;date.timezone/cdate.timezone = "PRC"' /etc/php.inised -i 's/apache/deploy/g' /etc/php-fpm.d/www.conf chown deploy.deploy -R /var/lib/phpinfo_echo "Checking php-fpm configuration file..."/etc/init.d/php-fpm configtestcheck_exit "PHP-FPM configuration syntax error"info_echo "Restart PHP-FPM ..."/etc/init.d/php-fpm restartinfo_echo "Restart Zabbix Server ..."/etc/init.d/zabbix-server restartinfo_echo "Restart Zabbix Agent ..."/etc/init.d/zabbix-agent restart########################################## 开机启动项#########################################chkconfig nginx onchkconfig php-fpm onchkconfig mysql onchkconfig zabbix-agent onchkconfig zabbix-server on

脚本运行结束后查看端口是否打开,否则还是无法登陆页面。

[root@localhost zabbix]# lsof -i:80COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEclock-app 2488   root   22w  IPv4  17293      0t0  TCP 192.168.230.148:46616->a184-25-205-26.deploy.static.akamaitechnologinginx     2776   root    6u  IPv4  21898      0t0  TCP *:http (LISTEN)nginx     2777 deploy    6u  IPv4  21898      0t0  TCP *:http (LISTEN)nginx     2778 deploy    6u  IPv4  21898      0t0  TCP *:http (LISTEN)

我这为了方便,直接将防火墙关闭,如有需要,打开80即可

[root@localhost zabbix]# service iptables stopiptables: Setting chains to policy ACCEPT: filter          [  OK  ]iptables: Flushing firewall rules:                         [  OK  ]iptables: Unloading modules:                               [  OK  ]

剩下的就和网上的没差了
贴个链接:http://www.tuicool.com/articles/IVNZ7vF

(侵删)

0 0