openGauss DBMind自治運維系統(tǒng)的安裝和部署
DBMind作為openGauss數(shù)據(jù)庫的一部分,為openGauss數(shù)據(jù)庫提供了自動駕駛能力,是一款領(lǐng)先的開源數(shù)據(jù)庫自治運維平臺。通過DBMind, 您可以很容易地發(fā)現(xiàn)數(shù)據(jù)庫的問題,同時可以實現(xiàn)秒級的數(shù)據(jù)庫問題根因分析

本文將詳細描述如何安裝部署openGauss DBMind自治運維平臺。
1?安裝準(zhǔn)備
1.1 環(huán)境信息
假設(shè)在主控節(jié)點192.168.100.4上部署DBMind,有一套端口號為19999的集群環(huán)境,環(huán)境信息如下:

假設(shè)需要在test_user用戶下安裝,需要在這4個節(jié)點上創(chuàng)建好用戶,可以使用如下命令,創(chuàng)建用戶并指定登入目錄。
安裝之前需要修改相關(guān)文件的權(quán)限,并使用su - test_user命令切換到目標(biāo)用戶空間下安裝。test_user用戶要能夠使用cm_ctl命令,否則會導(dǎo)致cmd_exporter獲取不到數(shù)據(jù)庫節(jié)點的信息。
1.2 安裝包
安裝和部署過程中需要用到的安裝包和下載地址如下,用戶根據(jù)自己的服務(wù)器架構(gòu)進行選擇:

如果需要其他版本或架構(gòu)的安裝包,用戶可以到prometheus官網(wǎng)進行下載??梢允褂胾anme -m命令查看服務(wù)器架構(gòu)。
1.3 數(shù)據(jù)庫用戶
本文以如下的用戶和數(shù)據(jù)庫信息作為示例。
username:dbmind_monitor
password:test_123
port:6789
metadatabase:metadatabase
omm登錄主節(jié)點,并為數(shù)據(jù)庫節(jié)點和DBMind服務(wù)器數(shù)據(jù)庫創(chuàng)建dbmind_monitor用戶:
說明:
本文中為了突出命令中的參數(shù)配置,使用了{key:value}的形式。實際情況下,應(yīng)輸入如下命令 :
?DBMind服務(wù)器,創(chuàng)建元數(shù)據(jù)庫:
創(chuàng)建完成后,用戶可通過命令gsql -d postgres -p 6789 -r -U dbmind_monitor -W test_123登錄到數(shù)據(jù)庫上,并輸入\l命令查看元數(shù)據(jù)庫metadatabase是否存在。
2?安裝DBMind
DBMind會定期在openGauss-DBMind項目的release頁面發(fā)布DBMind的安裝包,可以通過下載該DBMind安裝包進行安裝部署。
將安裝包dbmind-install-x86_64-python3.10.sh.tar.gz放到主控節(jié)點test_user用戶空間下并切換到用戶空間后,執(zhí)行下述命令完成安裝:
解壓:
2. 安裝:安裝過程中會提示確認安裝位置和添加環(huán)境變量,按照提示輸入回車或yes就行了。
3. 重新加載環(huán)境變量:
4. 測試是否安裝成功:
3?部署DBMind
DBMind有兩種部署方式,分別為手動部署和自動部署,推薦使用自動部署的方式,其會自動將prometheus、node_exporter、opengauss_exporter、cmd_expoter和reprocessingexporter組件安裝到指定的節(jié)點。
3.1 自動部署--推薦
自動部署會根據(jù)配置文件中的信息自動執(zhí)行部署,所以需要先將配置文件openGauss-DBMind/dbmind/components/deployment/deploy.conf配置好??梢允謩訉⑽募渲煤?,也可以使用交互式配置。推薦使用手動配置的方式。
需要提前將prometheus和node_exporter兩個安裝包放置在用戶根目錄的downloads文件夾下,并修改屬主為testuser用戶。
手動配置--推薦
使用手動配置的方式,需要提前將實例信息和參數(shù)填入openGauss-DBMind/dbmind/components/deployment/deploy.conf配置文件。
假設(shè)在test_user用戶空間下進行安裝,即host_username=test_user,deploy.conf配置文件信息如下:
可以使用sha256sum命令生成文件的sha256校驗碼,如下所示:
然后切換到openGauss-DBMind目錄下,執(zhí)行如下命令:
該命令會提示用戶輸入用戶密碼,然后將主控節(jié)點downloads目錄下的安裝包解壓并復(fù)制到數(shù)據(jù)庫節(jié)點。
最后執(zhí)行如下命令,會自動啟動DBMind的各exporter組件和prometheus。如果各組件都正常啟動,則可以執(zhí)行啟動DBMind步驟。
注意:
需要提前將prometheus和node_exporter兩個安裝包放置在用戶根目錄的downloads文件夾下,并修改屬主為test_user用戶。
配置文件中[DOWNLOADING]模塊的安裝包名字不帶.tar.gz后綴。
交互式配置
通過下述命令,用戶可以在交互式界面中,根據(jù)提示信息輸入需要監(jiān)控的openGauss實例信息和參數(shù)。
3.2 手動部署
規(guī)劃配置
使用手動部署的方式,需要用戶手動安裝prometheus和相關(guān)的exporter組件,先做如下的規(guī)劃配置:

用戶需要在數(shù)據(jù)庫的各個節(jié)點部署node_exporter,將node_exporter安裝包放入數(shù)據(jù)庫節(jié)點并切換到test_user用戶空間后,執(zhí)行如下命令:
解壓安裝包:
2.啟動 默認端口號為9100:
3. 如果端口號被占用,可以指定端口號:
輸入上述命令后,如果顯示[1]+ Exit字符表示node_exporter安裝失敗,可以通過node_exporter.log日志查看原因。
cmd_exporter
cmd_exporter用來執(zhí)行cmd命令并獲取返回結(jié)果以及采集日志信息,當(dāng)前主要用于采集集群狀態(tài),在一個備數(shù)據(jù)庫節(jié)點上安裝就可以了。
cmdexporter組件需要通過dbmind安裝,所以需要先在一個備節(jié)點上安裝dbmind,安裝完之后,再通過gs_dbmind的component子命令安裝cmd_exporter,如下所示。
執(zhí)行完上述命令,如果控制臺顯示The process is starting,說明安裝無異常。
opengauss_exporter
opengauss_exporter是DBMind采集數(shù)據(jù)庫的組件,從openGauss數(shù)據(jù)庫中讀取系統(tǒng)表(或系統(tǒng)視圖)的數(shù)據(jù),并通過Prometheus保存起來。支持遠程部署,需要在每個數(shù)據(jù)庫節(jié)點上安裝。
用戶可以通過遠程部署的方式在主控節(jié)點上執(zhí)行下述命令,從而將opengauss_exporter安裝到對應(yīng)的數(shù)據(jù)庫節(jié)點上,opengauss_exporter的默認端口號范圍是9187-9197,如果被占用可以使用其他端口。
(1)方式一:URL格式
說明:
對于采用URL格式的DSN,由于@等特殊字符用來分割URL串中各個部分的內(nèi)容,故需要URL編碼。例如某個用戶dbmind的密碼為Test@123,則URL格式的DSN為psotgresql:dbmind:Test%40123@127.0.0.1:19999,即將@字符編碼為%40。
(2)方式二:K-V格式
執(zhí)行完上述命令,如果控制臺顯示The process is starting,說明安裝無異常。也可以通過下述命令檢查opengauss_exporter是否已啟動。
prometheus
prometheus是業(yè)內(nèi)非常流行的開源監(jiān)控系統(tǒng),同時本身也是一款時序數(shù)據(jù)庫。需要將其安裝在主控節(jié)點,默認占用端口為9090,將prometheus安裝包放入主控節(jié)點環(huán)境并切換到目標(biāo)用戶空間后,執(zhí)行如下命令:
1. 解壓并切換到prometheus目錄下:
2. 修改prometheus配置文件:
在該文件中找到 scrape_configs 部分,該部分包含了所有需要被抓取的targets的配置信息,用戶需要根據(jù)自己的節(jié)點數(shù)量和端口占用情況進行修改。根據(jù)規(guī)劃配置可做如下配置:
3. 啟動prometheus并將日志輸入到同目錄下的prometheus.log里:
reprocessing_exporter
reprocessing_exporter是一個用于二次加工處理數(shù)據(jù)的exporter。由于node_exporter、opengauss_exporter保存到prometheus中的數(shù)據(jù)是即時的監(jiān)控信息,而只通過這些信息是無法反應(yīng)某些指標(biāo)的瞬時增量信息的。因此,reprocessing_exporter可以用來計算增量信息或者聚合結(jié)果等。
由于reprocessing_exporter是從prometheus中獲取指標(biāo)數(shù)據(jù),進行二次加工處理后再返回給prometheus。因此,它與prometheus是一一對應(yīng)的,即如果只有一個prometheus服務(wù),則只需要一個reprocessing_exporter即可。prometheus和reprocessing_exproter一起部署在主控節(jié)點上,reprocessing_exproter依賴prometheus,所以需要先啟動prometheus再啟動reprocessing_exporter??梢酝ㄟ^下述命令啟動reprocessing_exporter:
啟動完成之后,訪問prometheus網(wǎng)頁:http://{主控節(jié)點ip}:9090/,打開Status/Targets,查看所有exporter的啟動狀態(tài)。
4?啟動DBMind
在主控節(jié)點,切換到openGauss-DBMind目錄下,輸入如下命令啟動DBMind:
1. 啟動配置,會在openGauss-DBMind目錄下創(chuàng)建dbmindconf/dbmind.conf配置文件:
2. 切換到openGauss-DBMind目錄,并修改配置文件:
其中必填的配置項如下:
TSDB
TDSB為時序數(shù)據(jù)庫配置,即prometheus相關(guān)信息。
METADATABASE
DBMind服務(wù)器所創(chuàng)建的metadatabase數(shù)據(jù)庫相關(guān)信息,注意用戶需要有數(shù)據(jù)庫創(chuàng)建的權(quán)限。在啟動DBMind之前,需要把metadatabase創(chuàng)建好。
WORKER
該模塊用于指定DBMind可以使用的worker子進程數(shù)量,如果寫0則會進行自適應(yīng),盡可能多地使用CPU資源。
用戶可以使用cat /proc/cpuinfo | grep "physical id" | fort | uniq | wc -l命令查看邏輯CPU的個數(shù),根據(jù)服務(wù)器情況配置worker子進程數(shù)量。
AGENT
該模塊用于指定DBMind連接到openGauss Agent的信息。使用該Agent,可以讓DBMind獲取到被監(jiān)控實例的即時狀態(tài),從而提高分析準(zhǔn)確性。同時,也可以向數(shù)據(jù)庫實例下發(fā)一些變更動作。
masterurl為`http://{DBMind服務(wù)器IP}:{opengaussexporter監(jiān)聽端口}`,置空會自動識別。usename為數(shù)據(jù)庫實例的dbmind_minotor用戶。
TIMED_TASK
設(shè)置定時任務(wù):
Discard_expired_results: 刪除過期結(jié)果
self_monitoring:指標(biāo)異常監(jiān)控
daily_inspection:日檢
weekly_inspection:周檢
monthly_inspection: 月檢
slow_sql_diagnosis:慢SQL診斷
knob_recommend:參數(shù)調(diào)優(yōu)
slow_query_killer:慢SQL查殺
WEB-SERVICE
3. 配置項初始化:
4. 啟動DBMind服務(wù):
上述步驟執(zhí)行完之后,就可以通過http://{DBMind服務(wù)器IP}:8080訪問DBMind前臺頁面。