概述
維運平台需要部署在一台伺服器上,本文詳盡的介紹該伺服器必須滿足的資源要求。
伺服器數量
由於虛擬機自身的特性,會存在資源競爭等情況,可能導致出現預期外的系統故障,因此不建議在虛擬機中部署維運平台。
維運平台類型 | 建議 |
---|---|
標準版 | 建議維運平台獨佔 1 台伺服器 即伺服器中僅部署FineOps維運平台,不部署其他應用或帆軟專案,此時可以確定維運的獨立性 |
基礎版 | 維運平台可與帆軟單節點專案共用 1 台伺服器 即伺服器上中部署維運平台和 1 個帆軟單機應用,此外不部署其他內容 |
確定未安裝Docker
部署維運平台時,finekey工具會自動安裝docker。
請確定維運平台所在伺服器,是純淨的環境,未預安裝docker。否則可能由於版本和權限問題,導致維運平台部署失敗。
執行命令:docker version
若無回傳值,代表未安裝docker
若傳回版本號,則代表安裝了docker。請卸載docker或更換伺服器。
確認作業系統
配置 | 要求 |
---|---|
作業系統類型 | Linux |
作業系統架構 | X86_64 |
作業系統核心 | 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使用者不是超管) |
確認資源配置
部署維運平台的伺服器應當滿足下表條件:
配置 | 要求 |
---|---|
CPU | 最低4核 |
根目錄剩餘 閒置磁碟大小 | 1G |
安裝目錄剩餘 閒置磁碟大小 | 以下兩者,取較大值為配置要求: 1)伺服器中存在一個分割槽剩餘可用空間,推薦大於 200G ,最低 100G 注:如準備全新磁碟,建議至少120G。因為系統會佔用部分空間,導致剩餘不足100G 2)如對接的維運專案較多,請根據專案日存取量額外增加維運平台磁碟。日存取量5w/2個工程節點,對應100G磁碟 注:可使用命令「df -h」查詢磁碟空間,必須要有任一分割槽滿足條件,不可將分割槽容量加和 |
剩餘閒置 物理記憶體 | 標準版-獨佔伺服器:建議16G以上,最低12G 標準版-非獨佔伺服器:16G以上 基礎版:4G以上 如對接的維運專案較多,超過10個工程節點(叢集按照主應用節點數計算)。每多1個工程節點,需要額外增加100M記憶體 |
外網帶寬 | ≥5MB/S |
之所以需要上表的配置,是因為FineOps維運平台的每個組件,有最低運作配置要求,如下表所示:
組件 | CPU使用上限 | 記憶體使用上限 | 記憶體配置xmx |
---|---|---|---|
ops | 2Core | 3G | 2G |
nginx | 1Core | 1G | - |
ops-agent | 1Core | 1G | 512M |
pushgateway | 1Core | 0.5G | - |
prometheus | 1Core | 1G | - |
grafana | 1Core | 1G | - |
alertmanager | 1Core | 1G | - |
elasticsearch | 1Core | 4G | 2G |
skywalking_oap | 1Core | 3G | 2G |
registry | 1Core | - | - |
確認埠閒置
維運平台中存在很多組件,部分組件的埠需要映射到宿主機,佔用伺服器埠運作。
在部署前,請確定預設映射埠是否已被使用,如已被使用,請安排好其他閒置埠。
注1:埠占用檢查和防火牆放行方法請參考:埠占用檢查與防火牆配置
注2:ops、pushgateway、prometheus、grafana、alertmanager組件無需預留相關伺服器埠,因為這些組件的容器埠不映射到宿主機。
組件 | 預設埠 |
---|---|
nginx | 即使用者存取維運平台時所用埠 root使用者部署:80 非root使用者部署:8090 |
ops-agent | 9071 |
elasticsearch | 9200 |
skywalking_oap | 11800、12800 |
registry | 5000 |
注3:如不使用上表的預設埠,選擇自備埠。請注意避開以下埠:
類型 | 原因 |
---|---|
非root使用者無法使用的埠 | 如使用非root使用者進行安裝,請勿準備1024以下埠 在Linux系統中,非root使用者只能使用1024及以上埠 |
Chrome瀏覽器非安全埠 | 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 負載均衡 預設埠為:
|
維運平台拉取雲端倉庫鏡像 | 帆軟雲端鏡像倉庫 fineops-registry.cn-hangzhou.cr.aliyuncs.com:443 | <-存取 | registry 5000 |
維運平台與維運專案
作用 | 維運平台 | 關係 | 維運專案 |
---|---|---|---|
基礎維運 | 維運平台的 nginx 負載均衡 預設埠為:
| <-存取 | 專案的應用和引擎節點 包括:bi-web/bi-engine-master/bi-engine-worker/fr/fdl |
傳輸專案的伺服器、組件指標資訊給維運平台 | 維運平台的 nginx 負載均衡 預設埠為:
| <-存取 | 專案每一台伺服器的ops-agent(工程節點+叢集組件節點,任何伺服器) 預設埠為:9070 |
鏈路追蹤 | 維運平台的skywalking_oap 預設埠為:11800、12800 | <-存取 | 專案的應用和引擎節點 包括:bi-web/bi-engine-master/bi-engine-worker/fr/fdl |
鏈路追蹤 | 維運平台的skywalking_oap 預設埠為:11800、12800 | <-存取 | 專案的 nginx 內網關 預設埠為:
|
從維運平台的鏡像倉庫拉取組件進行專案部署 | registry 預設埠為: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部署包上傳到伺服器並解壓執行
chown -R 帳號 /finekey存放位置絕對路徑
chmod -R 755 /finekey存放位置絕對路徑 |
維運平台安裝目錄權限 | 安裝維運平台時,需要在維運平台安裝目錄新增、編輯檔案
chown -R 帳號 /維運平台安裝目錄絕對路徑
chown -R 755 /維運平台安裝目錄絕對路徑 |
使用者的sudo權限 | 必須允許使用者在任何主機上以root身分使用sudo權限執行後續配置的一些命令
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
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 |
對使用者禁用requiretty選項 | 確定使用者在執行 sudo 命令時不需要 TTY 對話,否則無法透過腳本/遠端命令使用sudo
#Defaults: requiretty |
關閉SELinux
SELinux 是 Linux 核心中的一個安全模組,透過強制存取控制機制來嚴格限制程式和使用者對系統資源的存取。
在 SELinux 開啟的情況下,可能會影響透過 systemctl 命令以服務方式啟動 Docker 。
為確定 finekey 部署順利進行,請在執行部署前先關閉 SELinux 。
分類 | 說明 |
---|---|
查看SELinux狀態 | 命令:
回傳值:
如回傳值為Enforcing,則需要手動關閉SELinux |
關閉SELinux | 1)臨時關閉SELinx
將SELinux從強制模式切換到寬容模式,無需重啟伺服器立刻生效 2)永久關閉SELinux(可選,需重啟Linux伺服器生效)
將SELinux禁用,重啟伺服器後更改方可生效 3)注意事項 如果是在執行了./finekey命令卡住後,再參考上文關閉SELinux,那麼需要殺死相關進程方可再次執行./finekey進行部署
此時即可再次執行./finekey進行部署 |