Zabbix 4.0升級5.0 &&ES 6.1升級7.0

Zabbix 4.0升級5.0

一、升級方案

1影響範圍

升級期間,不會影響到現有的系統,系統將保持正常的運行,升級完成後,將進行一段時間的可用性測試,待系統穩定後將替換生產上的監控。

2升級方法

本次升級採用藍綠部署的方式,先在測試環境重新部署一套4.0,將原有的系統配置文件導入到測試環境中去,然後再通過從4.0升級到5.0的方法來實現。由於5.0較4.0相比變化較大,數據庫中表數量和表字段較4.0有些變化,直接安裝5.0再導入4.0的庫會導致數據庫數據導入失敗。

3升級後的風險

由於官方Zabbix 5.0發佈時間短,Zabbix 5.0中可能會存在一些bug,後期官方還會進行一些小的升級來修復bug。

4升級原則

新搭建的Zabbix 服務與原有4.0的環境應相同,各個服務的配置比照原有4.0的服務配置和Zabbix 監控的內容來設置。對一些組件要求的最低版本若不符合要求應進行升級,如Zabbix 中的MySQL服務內存使用過高,可在新環境中適當提高MySQL服務的內存配置。
做好網絡之間的隔離,切勿與原有網絡環境衝突。
保證原有數據可用,做好備份,可能會進入原4.0環境查看一些服務配置,切勿誤操作造成數據丟失或導致服務不可用。
主機命名規範,能通過主機名字瞭解單個主機的用途,ES集羣名字不要與現有集羣名字衝突。
升級後服務可用性要求,mysql主從同步須正常,ES各節點同步數據正常,ES收集歷史數據正常,集羣健康狀態爲green,Zabbix proxy與server連接正常,能正常獲取到數據,web服務採用lamp搭建。

二、升級ZABBIX

1 關閉Zabbix 進程和web進程

systemctl stop zabbix-server
systemctl stop zabbix-proxy
systemctl stop httpd php-fpm

2、備份4.0配置數據

mysqldump -uzabbix -p --single-transaction --master-data=2 --databases zabbix > olddata.sql
# mkdir /opt/zabbix-backup/
# cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
# cp /etc/httpd/conf.d/zabbix.conf  /opt/zabbix-backup/
# cp -R /usr/share/zabbix/ /opt/zabbix-backup/
# cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/

3、更新存儲庫

由於使用官方源網絡不好,這裏我使用了阿里雲的Zabbix 源。

rm -rf /etc/repos.d/zabbix.repo
rpm -qa | grep zabbix-release && rpm -e zabbix-release
rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
sed -i '[email protected]@mirrors.aliyun.com/zabbix@g'/etc/yum.repos.d/zabbix.repo
yum clean all 
yum makecache fast

4、升級Zabbix

yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent

5、升級Zabbix web前端

yum remove zabbix-web
yum install centos-release-scl -y
yum install https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-web-deps-scl-5.0.0-1.el7.noarch.rpm
yum install https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-web-5.0.0-1.el7.noarch.rpm
yum install https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-web-mysql-scl-5.0.0-1.el7.noarch.rpm
yum install https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/frontend/zabbix-apache-conf-scl-5.0.0-1.el7.noarch.rpm

6、修改php時區

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/shanghai

7、啓動Zabbix

systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm

8、啓動之後可能會遇到這個報錯

這裏還是沒有仔細看官方文檔,是因爲Zabbix 的歷史數據和趨勢數據的數值(浮點型)數據類型支持的精度更高,需要手動更新數據庫補丁,

MySQL的補丁地址爲:
https://git.zabbix.com/projects/ZBX/repos/zabbix/raw/database/mysql/double.sql
在這裏插入圖片描述

ALTER TABLE trends MODIFY value_min DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_avg DOUBLE PRECISION DEFAULT '0.0000' NOT NULL, MODIFY value_max DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;
ALTER TABLE history MODIFY value DOUBLE PRECISION DEFAULT '0.0000' NOT NULL;

還需要更新配置文件

vim /etc/zabbix/web/zabbix.conf.php
$DB['DOUBLE_IEEE754'] = true;

更新完之後重啓Zabbix-server

systemctl restart zabbix-server

在這裏插入圖片描述

三、升級Elasticsearch

Zabbix 5.0 現在已經開始支持ES7.x版本,不再支持舊版本,升級後的好處之一就是ES從6.6版本開始支持索引生命週期管理,這樣對Zabbix 收集到的歷史數據索引管理更加方便。

ES新升級的這套Zabbix 可以直接部署7.x的ES集羣。如果還需要以前的歷史數據,可以將原來的歷史數據從原先集羣複製一份,可以使用ES的快照功能或者logstash進行復制。

下面介紹將ES的6.1升級到ES7.0的步驟,6.1-7.0.1不支持滾動升級,也就是必須要停止整個ES集羣來進行升級。

參考ES官方文檔:
https://www.elastic.co/guide/en/elasticsearch/reference/7.0/restart-upgrade.html

1、關閉Zabbix對接ES

Zabbix5.0支持7.x的ES,ES在升級成功之前先暫時停止歷史數據到ES的寫入,改用MySQL存儲。
將對接ES的部分註釋掉。

vim /etc/zabbix/web/zabbix.conf.php
//$HISTORY['url'] = 'http://192.168.179.134:9200';
//$HISTORY['types']=['uint','dbl','str','log','text'];
vim /etc/zabbix/zabbix_server.conf 
#HistoryStorageURL=http://192.168.179.134:9200
#HistoryStorageTypes=uint,dbl,str,log,text
#HistoryStorageDateIndex=1
systemctl restart zabbix-server

2、禁用副本分片分配

PUT_cluster/settings
{  
 "persistent": {    
 "cluster.routing.allocation.enable": "primaries"
 }
}

3、停止ES集羣下的所有節點

systemctl stop elasticsearch

4、升級所有節點

由於之前是使用二進制部署的,這裏我也使用二進制升級。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.1-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.0.1-linux-x86_64.tar.gz

將6.1的配置文件覆蓋至7.0.1的config目錄。

cp /elasticsearch/elasticsearch-6.1.0/config/elasticsearch.yml /elasticsearch-7.0.1/config/elasticsearch.yml

修改後的配置文件如下,第一次啓動集羣時需要在集羣中定義。
cluster.initial_master_nodes,爲一組具有master節點資格的節點。
在這裏插入圖片描述

5、啓動所有節點

su elker
./elasticsearch-7.0.1/bin/elasticsearch

查看節點狀態,可以看到已經升級到7.0。
在這裏插入圖片描述
查看索引發現以前的索引也還在。
在這裏插入圖片描述

6、重新啓用分片分配

當主分片恢復完成,集羣狀態爲yellow後可以重新啓用分片分配。

PUT_cluster/settings
{  
  "persistent": {    
  "cluster.routing.allocation.enable": null
 }
}

7、修改配置文件使Zabbix對接ES

vim /etc/zabbix/web/zabbix.conf.php
$HISTORY['url'] = 'http://192.168.179.134:9200'; 
$HISTORY['types']=['uint','dbl','str','log','text'];
vim /etc/zabbix/zabbix_server.conf 
HistoryStorageURL=http://192.168.179.134:9200 HistoryStorageTypes=uint,dbl,str,log,text
HistoryStorageDateIndex=1
systemctl restart zabbix-server

參考鏈接 :

Zabbix 4.0升級5.0 &&ES 6.1升級7.0 :https://mp.weixin.qq.com/s/seqiel-5RFfISGyGGQGY8Q

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章