标签:auto_ins monitor server zabbix
#!/bin/bash # This is a script of auto install zabbix # Copyright to jeffery 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 { OS_NAME=$(sed -n ‘1p‘ /etc/issue |awk ‘{print $1}‘) echo "check the system environment..." sleep 1 # Detecting whether the current user is root if [ $UID != 0 ]; then echo "You must be root to run this install script!" exit 0 fi # Stop Selinx and iptables echo "Stop selinux and iptables" sleep 1 if [ $OS_NAME == ‘CentOS‘ -o $OS_NAME == ‘Red‘ ]; then /etc/init.d/iptables stop 2 >/dev/null setenforce 0 sed -i ‘/SELINUX/s/enforcing/disabled/g‘ /etc/selinux/config > /dev/null yum install ntpdate -y sleep 1 else echo "unkonwn system,quit..." exit 0 fi # Detecting whether the network can access the internet # echo 8.8.8.8 >> /etc/resolv.conf > /dev/null NET_ACTIVE=$(ping www.baidu.com -c 7 | grep ‘received‘ | awk ‘BEGIN {FS=","} {print $2}‘ | awk ‘{print $1}‘) if [ $NET_ACTIVE == 0 ] ; then echo "Network is not active,please check your network configuration!" exit 0 else echo "Network is active,continue ..." sleep 1 fi # Syschronize time throught internet echo "Syschronize time ..." ntpdate tiger.sina.com.cn hwclock -w echo "finish check..." sleep 1 } 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 zabbix@localhost 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
本文出自 “Jeffery Blog” 博客,请务必保留此出处http://oceanszf.blog.51cto.com/6268931/1619671
标签:auto_ins monitor server zabbix
原文地址:http://oceanszf.blog.51cto.com/6268931/1619671