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分鍾就編譯完了,並且現在的體驗也很不錯,頁面有些細節的修改,看起來比以前要舒服點:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM