Fork me on GitHub
Suzf  Blog

Zabbix shell setup Server && agent [tar]

本文简单简述用源码包的方式安装 zabbix server && agent 的安装方式。

#!/bin/bash
# This is a script of auto install zabbix
# Copyright to Jeffrey.Su
# Written on June 11,2014
 
 
# SET VARIABLES
PATH=/bin:/usr/bin:/sbin:/usr/sbin::/usr/local/bin:/usr/local/sbin;
export PATH
 
MYSQL_PWD="jefferySu"
 
# Check environment
function check_env {
  echo "hello world !"
}
 
function lamp_ins {
    
     echo "Install lamp gcc ..."
     sleep  1     
     yum install -y httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysqlphp-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-bcmath  mysql-connector-odbc mysql-devel libdbi-dbd-mysql php-gd* libpng freetype libxml2 zlib wget gcc make 
      
    if [[ $? != 0 ]]; then
          echo "error in the yum,stop..."
          exit 0
    fi
 
    echo "configuration after the installation...."
    sleep 1
 
    /bin/cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
    sed -i '/DirectoryIndex/s/$/ index.php /' /etc/httpd/conf/httpd.conf
    echo "ServerName localhost:80" >> /etc/httpd/conf/httpd.conf
    /etc/init.d/httpd restart
    /etc/init.d/mysqld restart
    chkconfig httpd on
    chkconfig mysqld on
     
    # Configure mysql password
    mysqladmin -uroot password $MYSQL_PWD
 
}
 
function fping_ins {
   FPING_VER="fping-3.10"
   # Detecting the setup packages exits
   if [ -s ${FPING_VER}.tar.gz ];
   then
       echo "${FPING_VER}.tar.gz [found]"
   else
       echo "Error: ${FPING_VER} not found!!!download now......"
       wget  http://fping.org/dist/${FPING_VER}.tar.gz
   fi
 
   # Compile the major programmer   
   tar zxf ${FPING_VER}.tar.gz -C /usr/local/src
   cd /usr/local/src/$FPING_VER
 
   ./configure
    
   if [[ $? != 0 ]]; then
         echo "error in the compilation,stop.."
         exit 0
   fi
   make &&  make install
     
   # Add user 
   groupadd zabbix
   useradd zabbix -g zabbix
   
   # Grant privileges
   chown root:zabbix /usr/local/sbin/fping
   chmod 4710 /usr/local/sbin/fping 
    
}
 
function zabbix_ins {
    
   ZABBIX_VER="zabbix-2.2.3"
   ZABBIX_PATH=/var/www/html/zabbix
   # Detecting the setup packages exits
   if [ -s ${ZABBIX_VER}.tar.gz ];
   then
       echo "${ZABBIX_VER}.tar.gz [found]"
   else
       echo "Error: ${ZABBIX_VER} not found!!!download now......"
       wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.3/zabbix-2.2.3.tar.gz
   fi
  
   # Prepare work
   yum -y install net-snmp-devel libcurl-devel OpenIPMI-devel openssl-devel 
   groupadd zabbix >/dev/null
   useradd zabbix -g zabbix >/dev/null
   #yum install lr* -y
 
   # Compile the major programmer   
   tar zxf ${ZABBIX_VER}.tar.gz -C /usr/local/src
   cd /usr/local/src/$ZABBIX_VER
    
   ./configure --prefix=/usr/local/zabbix --enable-server  --enable-agent --with-mysql=/usr/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
   if [[ $? != 0 ]]; then
         echo "error in the compilation,stop.."
         exit 0
   fi
    make install
    
   if [[ $? != 0 ]]; then
         echo "error in the compilation,stop.."
         exit 0
   else
        echo "compilation finish..."
   fi
 
   # Add zabbix services port
   /bin/cp /etc/services /etc/services.bak
   cat >> /etc/services <<END
zabbix-agent    10050/tcp   #Zabbix Agent
zabbix-agent    10050/udp   #Zabbix Agent
zabbix-trapper  10051/tcp   #Zabbix Trapper
zabbix-trapper  10051/udp   #Zabbix Trapper
END
    
   # Repair the zabbix configure file
   ln -s /usr/local/zabbix/etc/ /etc/zabbix
   /bin/cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak
   sed -i  's/DBUser=root/DBUser=zabbix/;/DBUser=zabbix/a\DBPassword=jefferySu' /etc/zabbix/zabbix_server.conf 
   echo "FpingLocation=/usr/sbin/fping" >> /etc/zabbix/zabbix_server.conf
   /bin/cp /etc/zabbix/zabbix_agent.conf /etc/zabbix/zabbix_agent.conf.bak
 
   mkdir -p $ZABBIX_PATH
   /bin/cp -r /usr/local/src/$ZABBIX_VER/frontends/php/*  $ZABBIX_PATH
   chown -R zabbix:zabbix $ZABBIX_PATH
 
   # Create start file
   /bin/cp /usr/local/src/$ZABBIX_VER/misc/init.d/fedora/core5/zabbix_server /etc/init.d/
   /bin/cp /usr/local/src/$ZABBIX_VER/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
 
   sed -i 's#/usr/local#/usr/local/zabbix#' /etc/init.d/zabbix_server 
   sed -i 's#/usr/local#/usr/local/zabbix#' /etc/init.d/zabbix_agentd 
   
 
   /etc/init.d/zabbix_server start
   /etc/init.d/zabbix_agentd start
   
   # Start the zabbix service on boot
   chkconfig --add   zabbix_agentd
   chkconfig --add   zabbix_server
   chkconfig zabbix_server on
   chkconfig zabbix_agentd on
 
   # configure the php
   /bin/cp /etc/php.ini /etc/php.ini.bak
   sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/;s/post_max_size = 8M/post_max_size = 32M/;s/max_execution_time = 30/max_execution_time = 300/;s/;mbstring.func_overload = 0/mbstring.func_overload = 2/;s/max_input_time = 60/max_input_time = 300/' /etc/php.ini
  /etc/init.d/httpd  restart
 
 
# Create database import data and grant privileges   
   mysql -uroot -p$MYSQL_PWD -e "create database zabbix character set utf8"
   mysql -uroot -p$MYSQL_PWD -e "grant all privileges on zabbix.* to [email protected] identified by '$MYSQL_PWD'"
   mysql -uroot -p$MYSQL_PWD -e "flush privileges"
   mysql -uroot -p$MYSQL_PWD zabbix < /usr/local/src/$ZABBIX_VER/database/mysql/schema.sql
   mysql -uroot -p$MYSQL_PWD zabbix < /usr/local/src/$ZABBIX_VER/database/mysql/images.sql
   mysql -uroot -p$MYSQL_PWD zabbix < /usr/local/src/$ZABBIX_VER/database/mysql/data.sql
   
  echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        + all thing prepare ok! please do the last step:                      +
        + type $IP/`basename $ZABBIX_PATH` to configure...                    +
        + for example : http://host_IP or domain name/`basename $ZABBIX_PATH` +
        + dbname:zabbix  dbuser=zabbix   dbpwd=jefferySu                       +              
        +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
 
}
 
# Method Call
#check_env
#lamp_ins
fping_ins
zabbix_ins





####################################################################


#!/bin/bash
# This is a script of auto install zabbix agent
# Copyright to jeffery Su
# Written on June 13,2014
 
# SET VARIABLES
PATH=/bin:/usr/bin:/sbin:/usr/sbin::/usr/local/bin:/usr/local/sbin;
export PATH
 
IP=`ifconfig |grep 'inet addr:'|awk '{print $2}'|cut -d : -f 2|head -1`
 
function fping_ins {
   FPING_VER="fping-3.10"
   # Detecting the setup packages exits
   if [ -s ${FPING_VER}.tar.gz ];
   then
       echo "${FPING_VER}.tar.gz [found]"
   else
       echo "Error: ${FPING_VER} not found!!!download now......"
       wget  http://fping.org/dist/${FPING_VER}.tar.gz
   fi
 
   # Compile the major programmer   
   tar zxf ${FPING_VER}.tar.gz -C /usr/src
   cd /usr/src/$FPING_VER
 
   ./configure
    
   if [[ $? != 0 ]]; then
         echo "error in the compilation,stop.."
         exit 0
   fi
   make &&  make install
     
   # Add user 
   groupadd zabbix
   useradd zabbix -g zabbix
   
   # Grant privileges
   chown root:zabbix /usr/local/sbin/fping
   chmod 4710 /usr/local/sbin/fping 
    
}
 
function agent_ins {
   ZABBIX_VER="zabbix-2.2.3"
   ZABBIX_SER_IP=172.16.xx.xx      #INTENTION: This is zabbix server ip address 
   ZABBIX_PRO_HOSTNAME=${IP}  #INTENTION: This is zabbix proxy hostname
   # Prepare work
   yum -y install net-snmp net-snmp-devel libcurl-devel gcc make wget  gcc-c++ autoconf ncurses-devel
    
   # Add user
   groupadd zabbix
   useradd zabbix -g zabbix
 
   # Detecting the zabbix packages exits
   if [ -s ${ZABBIX_VER}.tar.gz ];
   then
       echo "${ZABBIX_VER}.tar.gz [found]"
   else
       echo "Error: ${ZABBIX_VER} not found!!!download now......"
       wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.3/zabbix-2.2.3.tar.gz
   fi
 
   # Prepare work
   yum -y install net-snmp net-snmp-devel libcurl-devel gcc make wget  gcc-c++ autoconf ncurses-devel
   #yum install lr* -y
 
 
   # Compile the major programmer   
   tar zxf ${ZABBIX_VER}.tar.gz -C /usr/src
   cd /usr/src/$ZABBIX_VER
 
   ./configure --prefix=/usr/local/zabbix  --enable-agent --with-net-snmp --with-libcurl
   if [[ $? != 0 ]]; then
         echo "error in the compilation,stop.."
         exit 0
   fi
   make install
 
   if [[ $? != 0 ]]; then
         echo "error in the compilation,stop.."
        exit 0
   else
        echo "compilation finish..."
   fi
 
    # Add zabbix services port
   /bin/cp /etc/services /etc/services.bak
   cat >> /etc/services <<END
zabbix-agent    10050/tcp   #Zabbix Agent
zabbix-agent    10050/udp   #Zabbix Agent
zabbix-trapper  10051/tcp   #Zabbix Trapper
zabbix-trapper  10051/udp   #Zabbix Trapper
END
 
    # Create start file
   /bin/cp /usr/src/$ZABBIX_VER/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
   sed -i 's#/usr/local#/usr/local/zabbix#' /etc/init.d/zabbix_agentd
 
   chmod 750 /etc/init.d/zabbix_agentd
   chown zabbix:zabbix /etc/init.d/zabbix_agentd
   sed -i '/^ZABBIX_BIN/aCONF_FILE="/usr/local/zabbix/etc/zabbix_agentd.conf"' /etc/init.d/zabbix_agentd
   sed -i 's/daemon $ZABBIX_BIN/daemon $ZABBIX_BIN -c  $CONF_FILE/' /etc/init.d/zabbix_agentd
 
   # Configure the zabbix_agent.conf
   sed -i "s#Server=127.0.0.1#Server=$ZABBIX_SER_IP#" /usr/local/zabbix/etc/zabbix_agentd.conf
   sed -i "s#ServerActive=127.0.0.1#ServerActive=$ZABBIX_SER_IP:10051#" /usr/local/zabbix/etc/zabbix_agentd.conf      
   
   sed -i "/Hostname=/s#=.*#"=$ZABBIX_PRO_HOSTNAME#""     /usr/local/zabbix/etc/zabbix_agentd.conf
   sed -i "s#\#Timeout=3#Timeout=30#"          /usr/local/zabbix/etc/zabbix_agentd.conf
 
   #logfile pidfile
 
   # Start the zabbix service on boot
   chkconfig --add           zabbix_agentd
   chkconfig zabbix_agentd   on 
   /etc/init.d/zabbix_agentd start
    
   # Test agent 
   echo "check local zabbix  agent"
   /usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/etc/zabbix_agentd.conf -t system.uptime      
}
 
   fping_ins
   agent_ins

zabbix-proxy install  script ***  使用前请略读脚本内容 比根据实际情况作出简要修改 ***

#!/bin/bash
# This is a script of auto install zabbix proxy
# Copyright to Jeffrey.Su
# Written on June 13,2014

# SET VARIABLES
PATH=/bin:/usr/bin:/sbin:/usr/sbin::/usr/local/bin:/usr/local/sbin;
export PATH

   ZABBIX_SER_IP=192.168.9.102
   ZABBIX_VER="zabbix-2.2.3"
   MYSQL_PWD="suzf_net_pwd"
   # Prepare work
   yum -y install net-snmp net-snmp-devel libcurl-devel gcc make wget  gcc-c++ autoconf ncurses-
devel  mysql-server mysql-devel  curl libcurl

   # Add user
   groupadd zabbix
   useradd zabbix -g zabbix -s /sbin/nologin

   # Detecting the zabbix packages exits
   if [ -s ${ZABBIX_VER}.tar.gz ];
   then
       echo "${ZABBIX_VER}.tar.gz [found]"
   else
       echo "Error: ${ZABBIX_VER} not found!!!download now......"
       wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20St
able/2.2.3/zabbix-2.2.3.tar.gz
   fi

   # Compile the major programmer   
   tar zxf ${ZABBIX_VER}.tar.gz -C /usr/src
   cd /usr/src/$ZABBIX_VER

   ./configure --prefix=/usr/local/zabbix  --enable-proxy --with-mysql --with-net-snmp --with-libcurl
   if [[ $? != 0 ]]; then
         echo "error in the compilation,stop.."
         exit 0
   fi
   make install

   if [[ $? != 0 ]]; then
         echo "error in the compilation,stop.."
        exit 0
   else
        echo "compilation finish..."
   fi

    # Add zabbix services port
   /bin/cp /etc/services /etc/services.bak
   cat >> /etc/services <<END
zabbix-agent    10050/tcp   #Zabbix Agent
zabbix-agent    10050/udp   #Zabbix Agent
zabbix-trapper  10051/tcp   #Zabbix Trapper
zabbix-trapper  10051/udp   #Zabbix Trapper
END

   /bin/cp /usr/local/zabbix/etc/zabbix_procy.conf /usr/local/zabbix/etc/zabbix_procy.conf.bak
   cat > /usr/local/zabbix/etc/zabbix_proxy.conf << END
ProxyMode=0
Server=$ZABBIX_SER_IP   #INTENTION
Hostname=OceanVI        #INTENTION
LogFile=/tmp/zabbix_proxy.log
DBName=zabbix
DBUser=zabbix
DBPassword=suzf_net_pwd
ProxyLocalBuffer=0
ProxyOfflineBuffer=1
ConfigFrequency=3600
DataSenderFrequency=10
StartPollersUnreachable=1
StartTrappers=10
StartPingers=1
CacheSize=64M
Timeout=10
TrapperTimeout=30
FpingLocation=/usr/sbin/fping
END

   # Create database import data and grant privileges   
   mysql -uroot -p$MYSQL_PWD -e "create database zabbix character set utf8"
   mysql -uroot -p$MYSQL_PWD -e "grant all privileges on zabbix.* to [email protected] identified
 by '$MYSQL_PWD'"
   mysql -uroot -p$MYSQL_PWD -e "flush privileges"
   mysql -uroot -p$MYSQL_PWD zabbix < /usr/src/$ZABBIX_VER/database/mysql/schema.sql