背景:
近期公司的zabbix經常有已出的告警無法消除,必須重新開機後才能消除告警的Bug。後來了解到這是zabbix3.0.0版本的一個bug,是以考慮把在用的zbbix版本更新至最新版本3.2.1。
zabbix3.0.0版本與zabbix3.2.1版本的更新很簡單,但是有許多小問題。比如兩個版本的資料庫表不一緻的問題,是以一定要做好備份的操作。
zabbix伺服器相關目錄:
備份目錄: /opt/backups/zabbix
zabbix主目錄: /opt/apps/zabbix
服務端配置檔案:/opt/conf/zabbix/zabbix_server.conf
前端頁面目錄: /opt/webapps/zabbix
服務啟動腳本: /etc/init.d/zabbix_server
更新步驟:
1:官網下載下傳zabbix安裝包zabbix-3.2.1.tar.gz,解壓,并在新的目錄中編譯安裝新版本。
1
2
3
4
<code># tar -zxvf zabbix-3.2.1.tar.gz</code>
<code># cd zabbix-3.2.1</code>
<code># ./configure --prefix=/opt/apps/zabbix.3.2 --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2</code>
<code># make install</code>
2:停掉正在運作的zabbix服務,確定沒有新資料寫入資料庫。
<code># /etc/init.d/zabbix_server stop</code>
3:備份原zabbix的資料庫資料,以及相關配置檔案。
<code># mysqldump -h 127.0.0.1 -u zabbix -ppassword zabbix > /opt/backup/zabbix/zabbix_bak.sql</code>
<code># cp -p /opt/conf/zabbix/zabbix_server.conf /opt/backup/zabbix/zabbix_server.conf.3.0</code>
<code># cp -p /opt/webapps/zabbix/conf/zabbix.conf.php /opt/backup/zabbix/zabbix.conf.php.3.0</code>
4:替換新版本的相關配置檔案,參考舊配置檔案配置服務。
5
6
7
8
9
10
11
12
13
14
15
<code># cp -p /opt/apps/zabbix.3.2/etc/zabbix_server.conf /opt/conf/zabbix/zabbix_server.conf</code>
<code># grep -v "^#" zabbix_server.conf | grep -v "^$"</code>
<code>LogFile=</code><code>/opt/logs/zabbix/zabbix_server</code><code>.log</code>
<code>PidFile=</code><code>/opt/logs/zabbix/zabbix_server</code><code>.pid</code>
<code>DBHost=127.0.0.1</code>
<code>DBName=zabbix</code>
<code>DBUser=zabbix</code>
<code>DBPassword=xxxxxxxx</code>
<code>DBPort=3306</code>
<code>JavaGateway=xx.xx.xx.xx</code>
<code>JavaGatewayPort=10052</code>
<code>StartJavaPollers=5</code>
<code>Timeout=4</code>
<code>AlertScriptsPath=</code><code>/opt/apps/zabbix/share/zabbix/alertscripts</code>
<code>LogSlowQueries=3000</code>
5:替換zabbix主目錄,用新的zabbix執行bin檔案啟動服務。
<code># mv /opt/apps/zabbix /opt/apps/zabbix.3.0</code>
<code># mv /opt/apps/zabbix.3.2 /opt/apps/zabbix</code>
<code>複制相關的腳本檔案:</code>
<code># cp -rp /opt/apps/zabbix.3.0/share/zabbix/alertscripts/* /opt/apps/zabbix</code>
<code># /etc/init.d/zabbix_server start</code>
正常情況下,新的zabbix服務會自動更新mysql資料庫中的字段,如果出現以下相關錯誤:
query failed: [1060] Duplicate column name 'exec_params' [alter table media_type add exec_params varchar(255) default '' not null]
則需要在mysql中删除相關表的字段後再重新啟動服務。
注:需删除的字段:media_type表中的exec_params字段,hosts表中所有tls開頭的字段。
這時登入zabbix頁面會提示資料庫版本不一緻,那是因為前端頁面使用的zabbix資料庫版本與後端服務使用的版本不一緻。需替換前端頁面為新版本頁面。
6:替換zabbix前端頁面。
<code># mv /opt/webapps/zabbix /opt/webapps/zabbix.3.0</code>
<code># cp -rp /opt/src/frontends/php /opt/webapps/zabbix</code>
<code># cp -p /opt/backup/zabbix/zabbix.conf.php.3.0 /opt/webapps/zabbix/conf/zabbix.conf.php</code>
至此,zabbix更新完畢。
本文轉自 icenycmh 51CTO部落格,原文連結:http://blog.51cto.com/icenycmh/1860947,如需轉載請自行聯系原作者