标签:
#!/bin/bash
#zabbix 一键安装 #数据库用户名 DBUSER='root' #数据库用户密码 DBPASS='root' #本地地址 DBHOST='localhost' #zabbix 下载的版本 ZBX_VER='2.4.3' ###检查返回值 function checkReturn { if [ $1 -ne 0 ]; then echo "fail: $2" echo "$3" exit else echo "pass: $2" fi sleep 3 } ###安装的前提条件 ###只个版本只可在centos或redhat 6.0上安装 ###前提需要先安装mysql cat << "eof" === RUN AT YOUR OWN RISK === DO NOT RUN ON EXISTING INSTALLATIONS, YOU *WILL* LOSE DATA This script: * Installs Zabbix 2.2.x on CentOS / Red Hat 6 * Drops an existing database * Does not install MySQL; to install type "yum install mysql-server" * Assums a vanilla OS install, though it tries to work around it * Does not install zabbix packages, it uses source from zabbix.com * Disables firewall * Disables SELinux eof #####前提条 件 read -p 'Type "go" to continue: ' RESP if [ "$RESP" != "go" ]; then echo "Sorry to hear it" exit else echo "Lets do this..." fi # check selinux ###检查防火墙是否关闭 if [ "`sestatus |grep status|awk '{ print $3 }'`" == "enabled" ]; then #checkReturn 1 "Disable SELinux and then retry" setenforce 0 sed "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config > /tmp/mytmp093; mv /tmp/mytmp093 /etc/selinux/config fi #disable firewall ##关闭防火墙 chkconfig iptables off /etc/init.d/iptables stop ###检查mysql 是否关闭 if [ "`rpm -qa |grep mysql-server`" ]; then chkconfig mysqld on service mysqld restart fi # check mysql mysql -h${DBHOST} -u${DBUSER} --password=${DBPASS} > /dev/null << eof status eof RETVAL=$? checkReturn $RETVAL "basic mysql access" "Install mysql server packages or fix mysql permissions" if [ ! "`rpm -qa|grep fping`" ]; then if [ "`uname -m`" == "x86_64" ]; then rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm elif [ "`uname -m`" == "i686" ]; then rpm -Uhv http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.i686.rpm fi fi yum -y install gcc mysql-devel curl-devel httpd php php-mysql php-bcmath php-gd php-xml php-mbstring net-snmp-devel fping e2fsprogs-devel zlib-devel libgssapi-devel krb5-devel openssl-devel wget libssh2-devel openldap-devel libxml2-devel make patch RETVAL=$? checkReturn $RETVAL "Package install" chmod 4755 /usr/sbin/fping cd /tmp rm -rf /etc/zabbix rm -rf zabbix-$ZBX_VER rm zabbix-$ZBX_VER.tar.gz wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/$ZBX_VER/zabbix-$ZBX_VER.tar.gz RETVAL=$? checkReturn $RETVAL "downloading source" "check ZBX_VER variable or mirror might be down" tar xzf zabbix-$ZBX_VER.tar.gz cd zabbix-$ZBX_VER ./configure --enable-agent --enable-ipv6 --enable-proxy --enable-server --with-mysql --with-libcurl --with-net-snmp --with-ssh2 --with-ldap --with-libxml2 --sysconfdir=/etc/zabbix RETVAL=$? checkReturn $RETVAL "Configure" make RETVAL=$? checkReturn $RETVAL "Compile" make install RETVAL=$? checkReturn $RETVAL "make install" echo "DROP DATABASE IF EXISTS zabbix;" | mysql -h${DBHOST} -u${DBUSER} --password=${DBPASS} ( echo "CREATE DATABASE zabbix;" echo "USE zabbix;" cat /tmp/zabbix-$ZBX_VER/database/mysql/schema.sql cat /tmp/zabbix-$ZBX_VER/database/mysql/images.sql cat /tmp/zabbix-$ZBX_VER/database/mysql/data.sql ) | mysql -h${DBHOST} -u${DBUSER} --password=${DBPASS} adduser -r -d /var/run/zabbix-server -s /sbin/nologin zabbix mkdir -p /var/log/zabbix-server mkdir -p /var/log/zabbix-agent mkdir -p /var/run/zabbix-server mkdir -p /var/run/zabbix-agent chown zabbix.zabbix /var/run/zabbix* chown zabbix.zabbix /var/log/zabbix* cp /tmp/zabbix-$ZBX_VER/misc/init.d/fedora/core5/zabbix_server /etc/init.d cp /tmp/zabbix-$ZBX_VER/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d cd /etc/zabbix patch -p0 -l << "eof" --- orig/zabbix_server.conf 2012-07-01 18:30:00.585612301 -0700 +++ zabbix_server.conf 2012-07-01 18:58:15.181605999 -0700 @@ -36,7 +36,7 @@ # Default: # LogFile= -LogFile=/tmp/zabbix_server.log +LogFile=/var/log/zabbix-server/zabbix_server.log ### Option: LogFileSize # Maximum size of log file in MB. @@ -65,7 +65,7 @@ # # Mandatory: no # Default: -# PidFile=/tmp/zabbix_server.pid +PidFile=/var/run/zabbix-server/zabbix_server.pid ### Option: DBHost # Database host name. @@ -100,7 +100,7 @@ # Default: # DBUser= -DBUser=root +DBUser=_dbuser_ ### Option: DBPassword # Database password. Ignored for SQLite. @@ -109,6 +109,7 @@ # Mandatory: no # Default: # DBPassword= +DBPassword=_dbpass_ ### Option: DBSocket # Path to MySQL socket. eof sed "s/_dbuser_/${DBUSER}/g" /etc/zabbix/zabbix_server.conf > /tmp/mytmp393; mv /tmp/mytmp393 /etc/zabbix/zabbix_server.conf sed "s/_dbpass_/${DBPASS}/g" /etc/zabbix/zabbix_server.conf > /tmp/mytmp393; mv /tmp/mytmp393 /etc/zabbix/zabbix_server.conf patch -p0 -l << "eof" --- orig/zabbix_agentd.conf 2012-07-01 18:30:00.585612301 -0700 +++ zabbix_agentd.conf 2012-07-01 18:55:40.566660188 -0700 @@ -9,6 +9,7 @@ # Mandatory: no # Default: # PidFile=/tmp/zabbix_agentd.pid +PidFile=/var/run/zabbix-agent/zabbix_agentd.pid ### Option: LogFile # Name of log file. @@ -18,7 +19,7 @@ # Default: # LogFile= -LogFile=/tmp/zabbix_agentd.log +LogFile=/var/log/zabbix-agent/zabbix_agentd.log ### Option: LogFileSize # Maximum size of log file in MB. @@ -57,6 +58,7 @@ # Mandatory: no # Default: # EnableRemoteCommands=0 +EnableRemoteCommands=1 ### Option: LogRemoteCommands # Enable logging of executed shell commands as warnings. eof chkconfig zabbix_server on chkconfig zabbix_agentd on chmod +x /etc/init.d/zabbix_server chmod +x /etc/init.d/zabbix_agentd service zabbix_server restart service zabbix_agentd restart #### END ZABBIX SERVER & AGENT PROCESS INSTALL & START #### BEGIN WEB rm -rf /usr/local/share/zabbix mkdir -p /usr/local/share/zabbix cp -r /tmp/zabbix-$ZBX_VER/frontends/php/* /usr/local/share/zabbix echo "Alias /zabbix /usr/local/share/zabbix" > /etc/httpd/conf.d/zabbix.conf echo "post_max_size = 16M" > /etc/php.d/local_zabbix.ini echo "max_execution_time = 300" >> /etc/php.d/local_zabbix.ini echo "max_input_time = 300" >> /etc/php.d/local_zabbix.ini . /etc/sysconfig/clock echo "date.timezone = $ZONE" >> /etc/php.d/local_zabbix.ini chkconfig httpd on service httpd restart #sed "s/max_execution_time = 30/max_execution_time = 300/g" /etc/php.ini > /tmp/mytmp393; mv /tmp/mytmp393 /etc/php.ini #touch /usr/local/share/zabbix/conf/zabbix.conf.php #chmod 666 /usr/local/share/zabbix/conf/zabbix.conf.php cat > /usr/local/share/zabbix/conf/zabbix.conf.php << "eof" <?php // Zabbix GUI configuration file global $DB; $DB['TYPE'] = "MYSQL"; $DB['SERVER'] = "_dbhost_"; $DB['PORT'] = "0"; $DB['DATABASE'] = "zabbix"; $DB['USER'] = "_dbuser_"; $DB['PASSWORD'] = "_dbpass_"; // SCHEMA is relevant only for IBM_DB2 database $DB['SCHEMA'] = ''; $ZBX_SERVER = "127.0.0.1"; $ZBX_SERVER_PORT = "10051"; $ZBX_SERVER_NAME = ''; $IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG; ?> eof sed "s/_dbhost_/${DBHOST}/g" /usr/local/share/zabbix/conf/zabbix.conf.php > /tmp/mytmp393; mv /tmp/mytmp393 /usr/local/share/zabbix/conf/zabbix.conf.php sed "s/_dbuser_/${DBUSER}/g" /usr/local/share/zabbix/conf/zabbix.conf.php > /tmp/mytmp393; mv /tmp/mytmp393 /usr/local/share/zabbix/conf/zabbix.conf.php sed "s/_dbpass_/${DBPASS}/g" /usr/local/share/zabbix/conf/zabbix.conf.php > /tmp/mytmp393; mv /tmp/mytmp393 /usr/local/share/zabbix/conf/zabbix.conf.php cd echo "Load http://localhost/zabbix/" echo "username: admin" echo "password: zabbix"
zabbix 一键安装,前提是mysql已安装好,且已设好密码,已在centos 6.5上做过测试
标签:
原文地址:http://blog.csdn.net/wangjunji34478/article/details/42340051