• Zabbix 3.2.1 升级3.4.1


    偶然看到 Zabbix 有新版本,决定升级下,升级前也犹豫了很久,毕竟现在的版本用着好好的,新的功能对我似乎没有应用到;
    但忍不住折腾,折腾完之后还是有亮点的,之前写的编译脚本,按自己的需求改吧。

    需要注意的点
    1、系统 CentOS 6.8 x64;
    2、安装目录 /usr/local/zabbix;
    3、升级前备份下现在运行的版本,防止需要回滚;
    4、升级过程其实就是重新编译过程,第一次启动 Zabbix Server 会更改数据库的一些字段和类型等等,以平滑匹配新版本,这个动作不用干预;
    5、升级过程中 Agent 数据会丢失,所以速度快点吧。

     1 #!/bin/bash
     2 #================================================================
     3 # Filename: install_zabbix.sh
     4 # Author: chenc
     5 # Create: 2018-07-18 14:19:35
     6 # Description: ---
     7 # Last Modified: 2018-07-18 14:29:43
     8 #================================================================
     9  
    10 BASEDIR=$(dirname $(readlink -f $0))
    11 log=/root/update_zbx.log
    12  
    13 [ -e $log ] || >$log
    14 ls -l $BASEDIR |egrep "^d" |xargs rm -rf
    15  
    16 [ -z "$(cat /etc/group |grep zabbix)" ] || groupadd zabbix
    17 [ -z "$(cat /etc/passwd |grep zabbix)" ] || useradd -g zabbix -s /sbin/nologin -M zabbix
    18  
    19 tools=(net-snmp-devel)
    20 for i in ${tools[*]};do
    21     rpm -qa |grep ^$i > /dev/null 2>&1
    22     if [ $? != 0 ];then
    23         yum install -y $i
    24         if [ $? == 0 ];then
    25             echo "install ok - $i" |tee -a $log
    26         else
    27             echo "install error - $i" |tee -a $log
    28         fi
    29     else
    30         echo "installed - $i" |tee -a $log
    31     fi
    32 done
    33  
    34 tar -xf zabbix-3.4.1.tar.gz && cd zabbix-3.4.1
    35 ./configure 
    36     --prefix=/usr/local/zabbix 
    37     --enable-server 
    38     --with-mysql 
    39     --with-net-snmp 
    40     --with-libcurl 
    41     --with-libxml2 
    42     --with-unixodbc 
    43     --enable-java
    44     if [ $? == 0 ];then
    45         make
    46         if [ $? = 0 ];then
    47             make install
    48             if [ $? = 0 ];then
    49                 # 配置系统服务
    50                 cp ${BASEDIR}/zabbix-3.4.1/misc/init.d/fedora/core/zabbix_server /etc/init.d/
    51                 cp ${BASEDIR}/zabbix-3.4.1/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
    52                 chkconfig --add zabbix_server
    53                 chkconfig zabbix_server on
    54  
    55                 # 配置静态页面目录
    56                 [ -e "/var/www" ] || mkdir -p /var/www
    57                 cp -r ${BASEDIR}/zabbix-3.4.1/frontends/php /var/www/zabbix
    58                 chmod 777 /var/www/zabbix/conf
    59             else
    60                 echo "make install error !!" |tee -a $log
    61                 break
    62             fi
    63         else
    64             echo "make error !!" |tee -a $log
    65             break
    66         fi
    67     else
    68         echo "configure error !!" |tee -a $log
    69         break
    70     fi

     

    踩坑:
    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分钟就编译完了,并且现在的体验也很不错,页面有些细节的修改,看起来比以前要舒服点:

  • 相关阅读:
    20190318-使用类做一个简单的图书馆管理系统
    20190313-面向对象的简单理解
    20190313-时间和日期-Time
    20190305-leetcode题目有效的括号
    20190227-做一个简易代码统计工具
    20190226-利用序列化完成小型记账程序
    20190221-文件操作
    20190131-文件操作命题练习
    Excel技巧—如何从重复行中取某一行
    Excel技巧—轻松搞定多级联动下拉列表
  • 原文地址:https://www.cnblogs.com/unchch/p/7495256.html
Copyright © 2020-2023  润新知