License: Attribution-NonCommercial-ShareAlike 4.0 International
本文出自 Suzf Blog。 如未注明,均为 SUZF.NET 原创。
转载请注明:http://suzf.net/post/30
本文简单简述用源码包的方式安装 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 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 #################################################################### #!/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 zabbix@localhost 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