準備維運平台伺服器

  • 最後修改時間:2024-11-11
  • 概述

    維運平台需要部署在一台伺服器上,本文詳盡的介紹該伺服器必須滿足的資源要求。

    伺服器數量

    由於虛擬機自身的特性,會存在資源競爭等情況,可能導致出現預期外的系統故障,因此不建議在虛擬機中部署維運平台。

    維運平台類型
    建議
    標準版

    建議維運平台獨佔 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
    ops2Core3G2G
    nginx1Core1G-
    ops-agent1Core1G512M
    pushgateway1Core0.5G-
    prometheus1Core1G-
    grafana1Core1G-
    alertmanager1Core1G-
    elasticsearch1Core4G2G
    skywalking_oap1Core3G2G
    registry1Core--

    確認埠閒置

    維運平台中存在很多組件,部分組件的埠需要映射到宿主機,佔用伺服器埠運作。

    在部署前,請確定預設映射埠是否已被使用,如已被使用,請安排好其他閒置埠。

    注1:埠占用檢查和防火牆放行方法請參考:埠占用檢查與防火牆配置

    注2:ops、pushgateway、prometheus、grafana、alertmanager組件無需預留相關伺服器埠,因為這些組件的容器埠不映射到宿主機。

    組件
    預設埠
    nginx即使用者存取維運平台時所用埠

    root使用者部署:80

    非root使用者部署:8090

    ops-agent

    9071

    elasticsearch9200
    skywalking_oap

    11800、12800

    registry5000

    注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 負載均衡

    預設埠為:

    • root部署:80

    • 非root部署:8090

    • 配置了SSL:443

    維運平台拉取雲端倉庫鏡像

    帆軟雲端鏡像倉庫

    fineops-registry.cn-hangzhou.cr.aliyuncs.com:443

    <-存取registry

    5000

    維運平台與維運專案

    作用維運平台關係
    維運專案
    基礎維運

    維運平台的 nginx 負載均衡

    預設埠為:

    • root部署:80

    • 非root部署:8090

    • 配置了SSL:443

    <-存取

    專案的應用和引擎節點

    包括:bi-web/bi-engine-master/bi-engine-worker/fr/fdl

    傳輸專案的伺服器、組件指標資訊給維運平台

    維運平台的 nginx 負載均衡

    預設埠為:

    • root部署:80

    • 非root部署:8090

    • 配置了SSL:443

    <-存取

    專案每一台伺服器的ops-agent(工程節點+叢集組件節點,任何伺服器)

    預設埠為:9070

    鏈路追蹤

    維運平台的skywalking_oap

    預設埠為11800、12800

    <-存取

    專案的應用和引擎節點

    包括:bi-web/bi-engine-master/bi-engine-worker/fr/fdl

    鏈路追蹤

    維運平台的skywalking_oap

    預設埠為11800、12800

    <-存取

    專案的 nginx 內網

    預設埠為:

    • root部署:80

    • 非root部署:8090

    • 配置了SSL:443

    從維運平台的鏡像倉庫拉取組件進行專案部署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部署包上傳到伺服器並解壓執行

    • 對於上傳和解壓finekey部署包的目標資料夾,請確定使用者有執行tar命令的權限,以解壓finekey安裝包

    • 對於上傳和解壓finekey部署包的目標資料夾,請指定使用者為該資料夾的所有者

    chown -R 帳號 /finekey存放位置絕對路徑

    • 對於上傳和解壓finekey部署包的目標資料夾,請確定使用者有該資料夾的讀寫執行權限

    chmod -R 755 /finekey存放位置絕對路徑

    維運平台安裝目錄權限

    安裝維運平台時,需要在維運平台安裝目錄新增、編輯檔案

    • 對於上一章準備的維運平台安裝目錄,請指定使用者為該資料夾的所有者

    chown -R 帳號 /維運平台安裝目錄絕對路徑

    • 對於上一章準備的維運平台安裝目錄,請確定使用者有該資料夾的讀寫執行權限

    chown -R 755 /維運平台安裝目錄絕對路徑

    使用者的sudo權限

    必須允許使用者在任何主機上以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

    對使用者禁用requiretty選項

    確定使用者在執行 sudo 命令時不需要 TTY 對話,否則無法透過腳本/遠端命令使用sudo

    • 請自行編輯 /etc/sudoers 檔案,註釋掉原本的requiretty相關內容

    #Defaults: requiretty

    關閉SELinux

    SELinux 是 Linux 核心中的一個安全模組,透過強制存取控制機制來嚴格限制程式和使用者對系統資源的存取。

    在 SELinux 開啟的情況下,可能會影響透過 systemctl 命令以服務方式啟動 Docker 。

    為確定 finekey 部署順利進行,請在執行部署前先關閉 SELinux 。

    分類說明
    查看SELinux狀態

    命令:

    • getenforce

    回傳值:

    • Enforcing:強制模式,所有違反SELinux策略的操作都會被阻止

    • Permissive:寬容模式,違反SELinux策略的操作不會被阻止,但會被記錄在日誌中

    • Disabled:SELinux被禁用,系統不再使用SELinux的安全策略

    如回傳值為Enforcing,則需要手動關閉SELinux

    關閉SELinux1)臨時關閉SELinx
    • 命令: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進行部署


    附件列表


    主題: 部署維運平台
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽