码迷,mamicode.com
首页 > 其他好文 > 详细

zabbix 3.2.1 升级3.4.1

时间:2017-09-08 18:36:27      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:程序   tool   etc   自动化   ash   需求   配置   config   login   

偶然看到zabbix有新版本,决定升级下,升级前也犹豫了很久,必将现在的版本好好的,并且新的功能对我似乎没有应用到;但忍不住折腾,折腾完之后还是有亮点的,没有失望。

之前写的是自动化编译,这里贴一下升级的脚本,按自己的需求改吧:

#!/bin/bash

BASEDIR=$(dirname $(readlink -f $0))
log=/root/update_zabbixserver_to_3.4.1.log

[ -e $log ] || >$log
ls -l $BASEDIR |egrep "^d" |xargs rm -rf

[ -z "$(cat /etc/group |grep zabbix)" ] || groupadd zabbix
[ -z "$(cat /etc/passwd |grep zabbix)" ] || useradd -g zabbix -s /sbin/nologin -M zabbix

tools=(net-snmp-devel)
for i in ${tools[*]}
 do
        rpm -qa |grep ^$i > /dev/null 2>&1
        if [ $? != 0 ];then
                yum install -y $i
                if [ $? == 0 ];then
                        echo "install OK: $i" |tee -a $log
                else 
                        echo "install ERROR: $i" |tee -a $log
                fi
        else
                echo "installed, skip it: $i" |tee -a $log
        fi 
done

# backup old version dir
if [ -e "/usr/local/zabbix" ];then
          mv /usr/local/zabbix /usr/local/zabbix_3.2.1
fi

tar -xzvf zabbix-3.4.1.tar.gz
cd zabbix-3.4.1
./configure         --prefix=/usr/local/zabbix         --enable-server         --enable-agent         --with-mysql         --with-net-snmp         --with-libcurl         --with-libxml2         --with-unixodbc         --enable-java
        if [ $? == 0 ];then
                echo "Zabbix [configure] OK ..." |tee -a $log
                make > null
                if [ $? = 0 ];then
                        echo "Zabbix [make] OK ..." |tee -a $log

                        make install > null
                        if [ $? == 0 ];then
                                echo "Zabbix [make install] OK ..." |tee -a $log

                                # backup old version zabbix_server bin
                          if [ -e "/etc/init.d/zabbix_server" ];then
                                        mv /etc/init.d/zabbix_server /tmp/zabbix_server_bak
                                        cp ${BASEDIR}/zabbix-3.4.1/misc/init.d/fedora/core/zabbix_server /etc/init.d/
                                else
                                  cp ${BASEDIR}/zabbix-3.4.1/misc/init.d/fedora/core/zabbix_server /etc/init.d/
                                fi
                                                                                                                                                                                                                        
                                # backup old version zabbix_agentd bin
                                if [ -e "/etc/init.d/zabbix_agentd" ];then
                                  mv /etc/init.d/zabbix_agentd /tmp/zabbix_agentd_bak
                                  cp ${BASEDIR}/zabbix-3.4.1/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
                                else
                                        cp ${BASEDIR}/zabbix-3.4.1/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
                    fi

                                chkconfig --del zabbix_server 2>null
                                chkconfig --add zabbix_server

                                chkconfig --del zabbix_agentd 2> null
                                chkconfig --add zabbix_agentd

                                chkconfig zabbix_server on
                                chkconfig zabbix_agentd on

                                [ -e "/var/www" ] || mkdir -p /var/www
                                 # backup old version web
                                if [ -e "/var/www/zabbix" ];then
                                        mv /var/www/zabbix /var/www/zabbix_3.2.1
                                else
                                  cp -r ${BASEDIR}/zabbix-3.4.1/frontends/php /var/www/zabbix
                                fi

                                chmod 777 /var/www/zabbix/conf
                                sed -i "/^# DBHost=localhost/a\DBHost=127.0.0.1" /usr/local/zabbix/etc/zabbix_server.conf
                                sed -i s/^DBName=.*$/DBName=zabbix/g /usr/local/zabbix/etc/zabbix_server.conf
                                sed -i s/^DBUser=.*$/DBUser=zabbix/g /usr/local/zabbix/etc/zabbix_server.conf
                                sed -i s/^# DBPassword=.*$/DBPassword=123456/g /usr/local/zabbix/etc/zabbix_server.conf
                                sed -i "/^# StartDiscoverers=1/a\StartDiscoverers=10" /usr/local/zabbix/etc/zabbix_server.conf

                                sed -i s/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g /etc/init.d/zabbix_server
                                sed -i s/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g /etc/init.d/zabbix_agentd

                        else
                                echo "Zabbix [make install] ERROR !!" |tee -a $log
                        fi

                else
                        echo "Zabbix [make] ERROR !!" |tee -a $log
                fi

        fi

注意点:

1、自己的安装目录;

2、脚本里含有备份老版本的mv命令,所以,如果第一次执行报错,应当将备份的老版本移走;否则第二次执行的时候会以第一次执行失败产生的文件夹覆盖这个备份,或者自己修改按时间备份,就不会有这个问题;

3、升级前备份一下zabbix数据库,防止历史数据丢失;

4、升级过程其实就是重新编译过程,第一次启动serverd端会更改数据库的一些字段和类型等等,以平滑匹配新版本;这个动作不用干预,程序自己运行就好;

5、升级过程中agent数据会丢失,所以速度快点吧。

 

踩坑:

1、新版本会有sock文件产生,有关进程的pid和sock文件默认是放在/tmp下,这两个文件优先由zabbix_server.conf定义,虽然/etc/init.d/zabbix_server中也可编辑;

2、pid、scok、log文件录权限要求是zabbix运行的账户权限目录,本例的账户是zabbix;

3、本然在zabbix_agentd.conf中配置了Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 

  技术分享

  导致启动agent时报错:

Shutting down zabbix_agentd:                               [FAILED]
Starting zabbix_agentd:  zabbix_agentd [11192]: unknown parameter "pid" in config file "/usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql_base.sh", line 3
                                                           [FAILED]

 

技术分享

 

  原因是启动时会将这个目录下的文件当成配置文件来读,并且匹配为内置启动参数,但这里是我自定的mysql的pid,和zabbix_agentd的进程PID不是一回事,程序就会报错了;注释掉这一样就好,或者自定义脚本不要放在这个目录。

 

升级过程很快,10分钟就编译完了,并且现在的体验也很不错,页面有些细节的修改,看起来比以前要舒服点:

技术分享

 

zabbix 3.2.1 升级3.4.1

标签:程序   tool   etc   自动化   ash   需求   配置   config   login   

原文地址:http://www.cnblogs.com/unchch/p/7495256.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!