維運平台需要部署在一台伺服器上,本文詳盡的介紹該伺服器必須滿足的資源要求。
由於虛擬機自身的特性,會存在資源競爭等情況,可能導致出現預期外的系統故障,因此不建議在虛擬機中部署維運平台。
建議維運平台獨佔 1 台伺服器
即伺服器中僅部署FineOps維運平台,不部署其他應用或帆軟專案,此時可以確定維運的獨立性
維運平台可與帆軟單節點專案共用 1 台伺服器
即伺服器上中部署維運平台和 1 個帆軟單機應用,此外不部署其他內容
部署維運平台時,finekey工具會自動安裝docker。
請確定維運平台所在伺服器,是純淨的環境,未預安裝docker。否則可能由於版本和權限問題,導致維運平台部署失敗。
執行命令:docker version
若無回傳值,代表未安裝docker
若傳回版本號,則代表安裝了docker。請卸載docker或更換伺服器。
3.10版本及以上
推薦:Ubuntu 22 版本
支援:
Ubuntu 18.04.4 及以上版本(不支援 Ubuntu20.04 版本 )
CentOS 7.3~7.9 版本
redhat 7.6 及以上版本
Rocky Linux 8.8~9.4版本
注:CentOS作業系統目前已停止服務,因此帆軟優先推薦使用Ubuntu作業系統
使用Ubuntu作業系統時,請注意檢查使用者權限(預設root使用者不是超管)
部署維運平台的伺服器應當滿足下表條件:
根目錄剩餘
閒置磁碟大小
安裝目錄剩餘
以下兩者,取較大值為配置要求:
1)伺服器中存在一個分割槽剩餘可用空間,推薦大於 200G ,最低 100G
注:如準備全新磁碟,建議至少120G。因為系統會佔用部分空間,導致剩餘不足100G
2)如對接的維運專案較多,請根據專案日存取量額外增加維運平台磁碟。日存取量5w/2個工程節點,對應100G磁碟
注:可使用命令「df -h」查詢磁碟空間,必須要有任一分割槽滿足條件,不可將分割槽容量加和
標準版-獨佔伺服器:建議16G以上,最低12G
標準版-非獨佔伺服器:16G以上
基礎版:4G以上
如對接的維運專案較多,超過10個工程節點(叢集按照主應用節點數計算)。每多1個工程節點,需要額外增加100M記憶體
之所以需要上表的配置,是因為FineOps維運平台的每個組件,有最低運作配置要求,如下表所示:
維運平台中存在很多組件,部分組件的埠需要映射到宿主機,佔用伺服器埠運作。
在部署前,請確定預設映射埠是否已被使用,如已被使用,請安排好其他閒置埠。
注1:埠占用檢查和防火牆放行方法請參考:埠占用檢查與防火牆配置
注2:ops、pushgateway、prometheus、grafana、alertmanager組件無需預留相關伺服器埠,因為這些組件的容器埠不映射到宿主機。
root使用者部署:80
非root使用者部署:8090
ops-agent
9071
11800、12800
注3:如不使用上表的預設埠,選擇自備埠。請注意避開以下埠:
如使用非root使用者進行安裝,請勿準備1024以下埠
在Linux系統中,非root使用者只能使用1024及以上埠
Chrome瀏覽器會將以下埠設別為非安全埠,以防止潛在的安全威脅
請勿使用以下埠,如使用這些API,會導致Chrome瀏覽器無法存取維運平台
1、7、9、11、13、15、17、19、20、21、22、23、25、37、42、43、53、69、77、79、87、95、101、102、103、104、109、110、111、113、115、117、119、123、135、137、139、143、161、179、389、465、512、513、514、515、526、530、531、532、540、548、554、556、563、587、601、636、989、990、993、995、1719、1720、1723、2049、3659、4045、5060、5061、6000、6566、6665、6666、6667、6668、6669、6697、10080
注:由於Chrome仍在不斷更新中,非安全埠清單可能會出現更新,最新埠請參考 Chrome官方文檔
為了確定使用者可以正常存取維運平台,為了確定維運平台可以正常部署和監測維運專案。
伺服器需要對外開放一些埠,供不同場景使用。
注:埠占用檢查和防火牆放行方法請參考:埠占用檢查與防火牆配置
維運人員
任意IP
維運平台的 nginx 負載均衡
預設埠為:
root部署:80
非root部署:8090
配置了SSL:443
帆軟雲端鏡像倉庫
fineops-registry.cn-hangzhou.cr.aliyuncs.com:443
5000
專案的應用和引擎節點
包括:bi-web/bi-engine-master/bi-engine-worker/fr/fdl
專案每一台伺服器的ops-agent(工程節點+叢集組件節點,任何伺服器)
預設埠為:9070
維運平台的skywalking_oap
預設埠為:11800、12800
專案的 nginx 內網關
預設埠為:5000
應用節點+BI引擎節點+叢集組件節點
任何伺服器
維運平台掛載目錄,是將宿主機上必要的FineOps檔案與容器中的檔案進行聯動的方式。用於實現資料持久化、檔案快速查看等功能。
1)查看伺服器磁碟空間
命令:df -h,找出可用空間較大的掛載點
例如本範例中,伺服器最合適的掛載目錄為/home目錄下
2)建立資料夾
在該目錄下,選擇合適的位置建立資料夾,作為維運平台的掛載目錄。
使用 mkdir 命令建立資料夾(本範例在/home目錄下建立一個名叫fanruan的資料夾):mkdir /home/fanruan
使用 chmod 命令設定資料夾的權限(本範例直接賦777權限):chmod 777 /home/fanruan
該目錄位置/home/fanruan,即為部署維運平台時,finekey.yaml檔案中的dataRootPath配置項
注:禁止直接使用/、/usr、/root、/usr/local四個目錄,作為dataRootPath
3)清空ACL規則
ACL用於精細化地控制不同使用者或使用者組對檔案和目錄的存取權限。
如果準備的掛載目錄配置了ACL規則,部署完成後,docker的data-root目錄會自動繼承ACL配置,進而導致各種各樣的權限問題,比如容器無法啟動等。
因此建議移除掛載目錄的所有 ACL 條目,僅保留傳統的 UNIX 權限(請修改/home/fanruan為你的安裝目錄)。
setfacl -b /home/fanruan/
優先推薦使用使用者id為0且名叫root的使用者上傳、解壓、運作FineKey容器化部署工具。
注1:使用者id為0但不叫root的使用者,不支援部署,請更名為root
注2:Ubuntu作業系統,預設root使用者並非超管使用者,請務必再次確認所準備的使用者是否滿足下方使用者權限
如需使用普通使用者進行部署,請確定該使用者擁有以下權限。
注:部署維運平台時,會自動在目標伺服器建立docker環境,並將該使用者加入docker使用者組中。
但是在部署成功後,必須關閉終端對話,重新開啟終端連結伺服器,方可使使用者組生效,進行docker命令查詢等操作。
維運平台部署,需要依賴finekey部署包,使用者屆時需要將finekey部署包上傳到伺服器並解壓執行
對於上傳和解壓finekey部署包的目標資料夾,請確定使用者有執行tar命令的權限,以解壓finekey安裝包
對於上傳和解壓finekey部署包的目標資料夾,請指定使用者為該資料夾的所有者
chown -R 帳號 /finekey存放位置絕對路徑
對於上傳和解壓finekey部署包的目標資料夾,請確定使用者有該資料夾的讀寫執行權限
chmod -R 755 /finekey存放位置絕對路徑
安裝維運平台時,需要在維運平台安裝目錄新增、編輯檔案
對於上一章準備的維運平台安裝目錄,請指定使用者為該資料夾的所有者
chown -R 帳號 /維運平台安裝目錄絕對路徑
對於上一章準備的維運平台安裝目錄,請確定使用者有該資料夾的讀寫執行權限
chown -R 755 /維運平台安裝目錄絕對路徑
必須允許使用者在任何主機上以root身分使用sudo權限執行後續配置的一些命令
請自行編輯 /etc/sudoers 檔案,範例寫法如下:請自行修改dev為你的帳號
dev ALL=(root) /bin/sh,/bin/mkdir,/bin/rm,/bin/cp,/bin/systemctl,/bin/kill,/usr/sbin/sysctl,/usr/bin/gpasswd,/usr/sbin/groupadd,/usr/bin/chown,/usr/sbin/modprobe,/usr/bin/echo,/usr/bin/sed,/usr/sbin/swapoff,/bin/sudo
如果仍然權限不足,還可以配置NOPASSWD的sudo權限(自選)
dev ALL=(root) NOPASSWD:/bin/sh,/bin/mkdir,/bin/rm,/bin/cp,/bin/systemctl,/bin/kill,/usr/sbin/sysctl,/usr/bin/gpasswd,/usr/sbin/groupadd,/usr/bin/chown,/usr/sbin/modprobe,/usr/bin/echo,/usr/bin/sed,/usr/sbin/swapoff,/bin/sudo
確定使用者在執行 sudo 命令時不需要 TTY 對話,否則無法透過腳本/遠端命令使用sudo
請自行編輯 /etc/sudoers 檔案,註釋掉原本的requiretty相關內容
#Defaults: requiretty
SELinux 是 Linux 核心中的一個安全模組,透過強制存取控制機制來嚴格限制程式和使用者對系統資源的存取。
在 SELinux 開啟的情況下,可能會影響透過 systemctl 命令以服務方式啟動 Docker 。
為確定 finekey 部署順利進行,請在執行部署前先關閉 SELinux 。
命令:
getenforce
回傳值:
Enforcing:強制模式,所有違反SELinux策略的操作都會被阻止
Permissive:寬容模式,違反SELinux策略的操作不會被阻止,但會被記錄在日誌中
Disabled:SELinux被禁用,系統不再使用SELinux的安全策略
如回傳值為Enforcing,則需要手動關閉SELinux
命令:sudo setenforce 0
將SELinux從強制模式切換到寬容模式,無需重啟伺服器立刻生效
2)永久關閉SELinux(可選,需重啟Linux伺服器生效)
編輯配置檔案:sudo vi /etc/selinux/config
修改 SELinux 狀態:SELINUX=disabled
將SELinux禁用,重啟伺服器後更改方可生效
3)注意事項
如果是在執行了./finekey命令卡住後,再參考上文關閉SELinux,那麼需要殺死相關進程方可再次執行./finekey進行部署
手動停止docker:systemctl stop docker
上面這個命令仍然會卡住,中斷命令:Ctrl + C
殺死原來卡住的進程:kill -9 $(pidof dockerd)
此時即可再次執行./finekey進行部署