openGauss DBMind自治運維繫統的安裝和部署
DBMind作為openGauss資料庫的一部分,為openGauss資料庫提供了自動駕駛能力,是一款領先的開源資料庫自治運維平臺。透過DBMind, 您可以很容易地發現資料庫的問題,同時可以實現秒級的資料庫問題根因分析
本文將詳細描述如何安裝部署openGauss DBMind自治運維平臺。
1
安裝準備
1.1 環境資訊
假設在主控節點192.168.100.4上部署DBMind,有一套埠號為19999的叢集環境,環境資訊如下:
node |
node_ip |
state |
主節點 |
192.168.100.1 |
Primary |
備節點 1 |
192.168.100.2 |
Standby |
備節點 2 |
192.168.100.3 |
Standby |
假設需要在test_user使用者下安裝,需要在這4個節點上建立好使用者,可以使用如下命令,建立使用者並指定登入目錄。
useradd -m test_user -d /home/test_user
安裝之前需要修改相關檔案的許可權,並使用su - test_user命令切換到目標使用者空間下安裝。test_user使用者要能夠使用cm_ctl命令,否則會導致cmd_exporter獲取不到資料庫節點的資訊。
1.2 安裝包
安裝和部署過程中需要用到的安裝包和下載地址如下,使用者根據自己的伺服器架構進行選擇:
File Name |
Download Address |
OS/Arch |
DBMind |
dbmind-installer-x86_64-python3.10.sh.tar.gz |
linux/x86_64 |
DBMind |
dbmind-installer-aarch64-python3.10.sh.tar.gz |
linux/arm64 |
Prometheus |
prometheus-2.43.0.linux-amd64.tar.gz |
linux/x86_64 |
Prometheus |
prometheus-2.43.0.linux-arm64.tar.gz |
linux/arm64 |
node_exporter |
node_exporter-1.5.0.linux-amd64.tar.gz |
linux/x86_64 |
node_exporter |
node_exporter-1.5.0.linux-arm64.tar.gz |
linux/arm64 |
如果需要其他版本或架構的安裝包,使用者可以到prometheus官網進行下載。可以使用uanme -m命令檢視伺服器架構。
1.3 資料庫使用者
本文以如下的使用者和資料庫資訊作為示例。
-
username:dbmind_monitor
-
password:test_123
-
port:6789
-
metadatabase:metadatabase
omm登入主節點,併為資料庫節點和DBMind伺服器資料庫建立dbmind_monitor使用者:
gs_guc reload -D datanode -c 'password_encryption_type=1' gsql -p {port} -d postgres -c 'create user {username:dbmind_monitor} with password {password:test_123} ;' gsql -p {port} -d postgres -c 'alter user {username:dbmind_monitor} monadmin; ' gs_guc reload -D datanode -c 'password_encryption_type=2' # 可選,將該引數改回去
說明:
本文中為了突出命令中的引數配置,使用了{key:value}的形式。實際情況下,應輸入如下命令 :
gs_guc reload -D datanode -c 'password_encryption_type=1' gsql -p {port} -d postgres -c 'create user dbmind_monitor with password test_123;' gsql -p {port} -d postgres -c 'alter user dbmind_monitor monadmin;' gs_guc reload -D datanode -c 'password_encryption_type=2' # 可選,將該引數改回去
DBMind伺服器,建立後設資料庫:
grant all privileges to {username:dbmind_monitor}; \c postgres {username:dbmind_monitor}; create database {metadatabase:metadatabase};
建立完成後,使用者可透過命令gsql -d postgres -p 6789 -r -U dbmind_monitor -W test_123登入到資料庫上,並輸入\l命令檢視後設資料庫metadatabase是否存在。
2
安裝DBMind
DBMind會定期在openGauss-DBMind專案的release頁面釋出DBMind的安裝包,可以透過下載該DBMind安裝包進行安裝部署。
將安裝包dbmind-install-x86_64-python3.10.sh.tar.gz放到主控節點test_user使用者空間下並切換到使用者空間後,執行下述命令完成安裝:
-
解壓:
tar zxvf dbmind-install-x86_64-python3.10.sh.tar.gz
2. 安裝:安裝過程中會提示確認安裝位置和新增環境變數,按照提示輸入回車或yes就行了。
sh dbmind-install-x86_64-python3.10.sh
3. 重新載入環境變數:
source ~/.bashrc
4. 測試是否安裝成功:
gs_dbmind --help
3 部署DBMind
DBMind有兩種部署方式,分別為手動部署和自動部署,推薦使用自動部署的方式,其會自動將prometheus、node_exporter、opengauss_exporter、cmd_expoter和reprocessingexporter元件安裝到指定的節點。
3.1 自動部署--推薦
自動部署會根據配置檔案中的資訊自動執行部署,所以需要先將配置檔案openGauss-DBMind/dbmind/components/deployment/deploy.conf配置好。可以手動將檔案配置好,也可以使用互動式配置。推薦使用手動配置的方式。
需要提前將prometheus和node_exporter兩個安裝包放置在使用者根目錄的downloads資料夾下,並修改屬主為testuser使用者。
手動配置--推薦
使用手動配置的方式,需要提前將例項資訊和引數填入openGauss-DBMind/dbmind/components/deployment/deploy.conf配置檔案。
假設在test_user使用者空間下進行安裝,即host_username=test_user,deploy.conf配置檔案資訊如下:
[DOWNLAODING]
host =
node_exporter = node_exporter-1.5.0.linux-amd64
prometheus = prometheus-2.42.0.linux-amd64node_exporter_sha256 = af999fd31ab54ed3a34b9f0b10c28e9acee9ef5ac5a5d5edfdde85437db7acdb
prometheus_sha256 = 422dab055ed9c7bcaff52b71805f9192c6fac0de6b7e78dd278e70ee2663dcc
[PROMETHEUS]
host = 192.168.100.4
ssh_port = 22
host_username = test_userpath = /home/test_user/prometheus # 使用者可以指定其他的安裝路徑
listen_address = 192.168.100.4
prometheus_port = 9090
reprocessing_exporter_port = 8181
[EXPORTERS]
targets = 192.168.100.1:19999/postgres,192.168.100.2:19999/postgres,192.168.100.3:19999/postgres
ssh_port = 22host_username = test_userpath = /home/test_user/node_exporter # 使用者可以指定其他的安裝路徑
database_username = dbmind_monitor
listen_address = 192.168.100.4
opengauss_ports_range = 9187-9197
node_exporter_port = 9100
cmd_exporter_port = 9180
[SSL]
enable_ssl = False#
該模組其他內容不用修改,內容略
可以使用sha256sum命令生成檔案的sha256校驗碼,如下所示:
sha256sum prometheus-2.43.0.linux-amd64.tar.gz
然後切換到openGauss-DBMind目錄下,執行如下命令:
gs_dbmind component deployment --offline -c dbmind/components/deployment/deploy.conf
該命令會提示使用者輸入使用者密碼,然後將主控節點downloads目錄下的安裝包解壓並複製到資料庫節點。
最後執行如下命令,會自動啟動DBMind的各exporter元件和prometheus。如果各元件都正常啟動,則可以執行啟動DBMind步驟。
gs_dbmind component deployment --run
注意:
-
需要提前將prometheus和node_exporter兩個安裝包放置在使用者根目錄的downloads資料夾下,並修改屬主為test_user使用者。
-
配置檔案中[DOWNLOADING]模組的安裝包名字不帶.tar.gz字尾。
互動式配置
透過下述命令,使用者可以在互動式介面中,根據提示資訊輸入需要監控的openGauss例項資訊和引數。
gs_dbmind component deployment --offline
3.2 手動部署
規劃配置
使用手動部署的方式,需要使用者手動安裝prometheus和相關的exporter元件,先做如下的規劃配置:
元件 |
地址 |
備註 |
node_exporter |
192.168.100.1: 9100<br />192.168.100.2: 9100<br />192.168.100.3: 9100 |
每個資料庫節點上都需要安裝 |
cmd_exporter |
192.168.100.2: 9180 |
只需要在一個備節點上安裝 |
opengauss_exporter |
192.168.100.4: 9187 -> 192.168.100.1: 19999<br />192.168.100.4: 9188 -> 192.168.100.2: 19999<br />192.168.100.4: 9189 -> 192.168.100.3: 19999 |
每個資料庫節點上都需要安裝,<br /> 在主控節點遠端安裝 |
prometheus |
192.168.100.4: 9090 |
只需在主控節點安裝 |
reprocessing_exporter |
192.168.100.4: 8181 |
和prometheus 一起部署到主控節點 |
node_exporter
使用者需要在資料庫的各個節點部署node_exporter,將node_exporter安裝包放入資料庫節點並切換到test_user使用者空間後,執行如下命令:
-
解壓安裝包:
tar zxvf node_exporter-1.5.0.linux-amd64.tar.gzcd node_exporter-1.5.0.linux-amd64
2.啟動 預設埠號為9100:
./node_exporter > node_exporter.log 2>&1 &
3. 如果埠號被佔用,可以指定埠號:
./node_exporter --web.listen-address=:9101 > node_exporter.log 2>&1 &
輸入上述命令後,如果顯示[1]+ Exit字元表示node_exporter安裝失敗,可以透過node_exporter.log日誌檢視原因。
cmd_exporter
cmd_exporter用來執行cmd命令並獲取返回結果以及採集日誌資訊,當前主要用於採集叢集狀態,在一個備資料庫節點上安裝就可以了。
cmdexporter元件需要透過dbmind安裝,所以需要先在一個備節點上安裝dbmind,安裝完之後,再透過gs_dbmind的component子命令安裝cmd_exporter,如下所示。
gs_dbmind component cmd_exporter --web.listen-address 0.0.0.0 --web.listen-port 9180 --disable-https
執行完上述命令,如果控制檯顯示The process is starting,說明安裝無異常。
opengauss_exporter
opengauss_exporter是DBMind採集資料庫的元件,從openGauss資料庫中讀取系統表(或系統檢視)的資料,並透過Prometheus儲存起來。支援遠端部署,需要在每個資料庫節點上安裝。
使用者可以透過遠端部署的方式在主控節點上執行下述命令,從而將opengauss_exporter安裝到對應的資料庫節點上,opengauss_exporter的預設埠號範圍是9187-9197,如果被佔用可以使用其他埠。
(1)方式一:URL格式
gs_dbmind component opengauss_exporter --urlpostgresql://dbmind_monitor:test_123@192.168.100.1:19999/postgres --web.listen-address 0.0.0.0 --web.listen-port 9187 --log.level info --disable-https
說明:
對於採用URL格式的DSN,由於@等特殊字元用來分割URL串中各個部分的內容,故需要URL編碼。例如某個使用者dbmind的密碼為Test@123,則URL格式的DSN為psotgresql:dbmind:Test%40123@127.0.0.1:19999,即將@字元編碼為%40。
(2)方式二:K-V格式
gs_dbmind component opengauss_exporter --url "dbname=postgres user=dbmind_monitor password=test_123 host=192.168.100.1 port=19999" --web.listen-address 0.0.0.0 --web.listen-port 9187 --log.level info --disable-https
執行完上述命令,如果控制檯顯示The process is starting,說明安裝無異常。也可以透過下述命令檢查opengauss_exporter是否已啟動。
# 埠號9187為使用者指定的埠號, 如果失敗會顯示Connection refused curl -vv
prometheus
prometheus是業內非常流行的開源監控系統,同時本身也是一款時序資料庫。需要將其安裝在主控節點,預設佔用埠為9090,將prometheus安裝包放入主控節點環境並切換到目標使用者空間後,執行如下命令:
1. 解壓並切換到prometheus目錄下:
tar zxvf prometheus-2.42.0.linux-amd64.tar.gzcd prometheus-2.42.0.linux-amd64/
2. 修改prometheus配置檔案:
vi prometheus.yml
在該檔案中找到 scrape_configs 部分,該部分包含了所有需要被抓取的targets的配置資訊,使用者需要根據自己的節點數量和埠占用情況進行修改。根據規劃配置可做如下配置:
- job_name: 'prometheus' static_configs: - targets: ['192.168.100.4:9090'] - job_name: 'opengauss_exporter' static_configs: - targets: ['192.168.100.4:9187', '192.168.100.4:9188', '192.168.100.4:9189'] - job_name: 'node_exporter' static_configs: - targets: ['192.168.100.1:9100', '192.168.100.2:9100', '192.168.100.3:9100'] - job_name: 'reprocessing_exporter' static_configs: - targets: ['192.168.100.4:8181'] - job_name: 'cmd_exporter' static_configs: - targets: ['192.168.100.2:9180']
3. 啟動prometheus並將日誌輸入到同目錄下的prometheus.log裡:
./prometheus --web.enable-admin-api --web.enable-lifecycle -- storage.tsdb.retention.time=1w >./prometheus.log 2>&1 &
reprocessing_exporter
reprocessing_exporter是一個用於二次加工處理資料的exporter。由於node_exporter、opengauss_exporter儲存到prometheus中的資料是即時的監控資訊,而只透過這些資訊是無法反應某些指標的瞬時增量資訊的。因此,reprocessing_exporter可以用來計算增量資訊或者聚合結果等。
由於reprocessing_exporter是從prometheus中獲取指標資料,進行二次加工處理後再返回給prometheus。因此,它與prometheus是一一對應的,即如果只有一個prometheus服務,則只需要一個reprocessing_exporter即可。prometheus和reprocessing_exproter一起部署在主控節點上,reprocessing_exproter依賴prometheus,所以需要先啟動prometheus再啟動reprocessing_exporter。可以透過下述命令啟動reprocessing_exporter:
# host_ip為主控節點的ip地址,9090為prometheus佔用的埠號,8181為reprocessing_exporter佔用的埠號,使用者可以按需修改gs_dbmind component reprocessing_exporter host_ip 9090 --web.listen-address 0.0.0.0 --web.listen-port 8181 --disable-https
啟動完成之後,訪問prometheus網頁:http://{主控節點ip}:9090/,開啟Status/Targets,檢視所有exporter的啟動狀態。
4
啟動DBMind
在主控節點,切換到openGauss-DBMind目錄下,輸入如下命令啟動DBMind:
gs_dbmind service setup -c dbmindconf
vi dbmindconf/dbmind.conf
其中必填的配置項如下:
-
TSDB
TDSB為時序資料庫配置,即prometheus相關資訊。
[TSDB] name = prometheus # The type of time-series database. Options: prometheus. host = {主控節點ip:192.168.100.4} # Address of time-series database. port = 9090 # Port to connect to time-series database.
-
METADATABASE
DBMind伺服器所建立的metadatabase資料庫相關資訊,注意使用者需要有資料庫建立的許可權。在啟動DBMind之前,需要把metadatabase建立好。
[METADATABASE] dbtype = opengauss # Database type. Options: sqlite, opengauss, postgresql. host = {資料庫主節點ip:192.168.100.1} # Address of meta-data database. port = {資料庫佔用的埠號:6789} # Port to connect to meta-data database. username = dbmind_monitor # User name to connect to meta-data database. password = test_123 # Password to connect to meta-data database. database = metadatabase # Database name to connect to meta-data database.
-
WORKER
該模組用於指定DBMind可以使用的worker子程式數量,如果寫0則會進行自適應,儘可能多地使用CPU資源。
使用者可以使用cat /proc/cpuinfo | grep "physical id" | fort | uniq | wc -l命令檢視邏輯CPU的個數,根據伺服器情況配置worker子程式數量。
[WORKER] process_num = 2 # Number of worker processes on a local node. Less than or equal to zero means adaptive.
-
AGENT
該模組用於指定DBMind連線到openGauss Agent的資訊。使用該Agent,可以讓DBMind獲取到被監控例項的即時狀態,從而提高分析準確性。同時,也可以向資料庫例項下發一些變更動作。
masterurl為`http://{DBMind伺服器IP}:{opengaussexporter監聽埠}`,置空會自動識別。usename為資料庫例項的dbmind_minotor使用者。
[AGENT] master_url = username = dbmind_monitor # Username to login the monitoring database. Credential for agent. password = test_123 # Password to login the monitoring database. Credential for agent.
-
TIMED_TASK
設定定時任務:
Discard_expired_results: 刪除過期結果
self_monitoring:指標異常監控
daily_inspection:日檢
weekly_inspection:周檢
monthly_inspection: 月檢
slow_sql_diagnosis:慢SQL診斷
knob_recommend:引數調優
slow_query_killer:慢SQL查殺
[TIMED_TASK] task=discard_expired_results,self_monitoring,daily_inspection, weekly_inspection,slow_sql_diagnosis,knob_recommend,slow_query_killer# select the scheduled task to start,separated by ','.
-
WEB-SERVICE
[WEB-SERVICE] host = 192.168.100.4 # Which host to bind for web service. '0.0.0.0' means to bind all. port = 8080 # Port to listen for web serivce.
gs_dbmind service setup --initialize -c dbmindconf
gs_dbmind service start -c dbmindconf
上述步驟執行完之後,就可以透過http://{DBMind伺服器IP}:8080訪問DBMind前臺頁面。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70023856/viewspace-2948696/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- openGauss Datakit安裝部署
- redis安裝和運維Redis運維
- Oneops運維繫統運維
- ITSM運維監控解決方案介紹和運維繫統需求運維
- 智和信通,部署智慧交通運維繫統,構建一站式運維監控平臺運維
- OpenGauss 安裝
- kettle的安裝和部署
- 網路運維繫統,只要對的,不要貴的 薦運維
- MongoDB日常運維-02安裝MongoDB運維
- GitLab 安裝、管理、運維Gitlab運維
- hbase和zookeeper的安裝和部署
- 灌漿機遠端監控運維繫統運維
- 影片監控安防專網事件預警運維繫統開發方案事件運維
- Postgresql日常運維-安裝(Windows)02SQL運維Windows
- 風力新能源智慧運維繫統解決方案運維
- Dubbo-zookeeper的部署和安裝
- Glassfish下的openCMS安裝和部署
- Postgresql日常運維-安裝(Linux)01SQL運維Linux
- redis運維(三)redis6.0.8安裝Redis運維
- 浪潮儲存基於智慧運維技術,加速儲存自治運維
- Oracle 19C的下載和安裝部署(圖形安裝和靜默安裝)Oracle
- 如何安裝Linux作業系統?Linux運維教學Linux作業系統運維
- 品運維自動化之cobbler的安裝序運維
- MHA安裝和部署步驟
- Linux Haproxy 安裝和部署Linux
- mysql-cluster安裝和部署MySql
- MySQL自動化運維之安裝篇MySql運維
- 銑刨機遠端監控運維繫統解決方案運維
- 網路智慧化運維 荊門電教館及六所市直學校運維繫統落地運維
- Sovit3D智慧海上風電場三維視覺化運維繫統3D視覺化運維
- 網易OpenStack部署運維實戰運維
- CentOS和Ubuntu系統下安裝 HttpFS (助推Hue部署搭建)CentOSUbuntuHTTP
- 基於滴滴雲的螞蟻蛋運維助手的安裝和簡單使用(一)運維
- 從 Java 應用部署方式看 IT 思潮——從開發和運維到開發自運維Java運維
- 儲能PCS系統遠端監控智慧運維繫統解決方案運維
- flume的安裝部署
- Hive的安裝部署Hive
- 智簡魔方DCIM正是助力IDC現代化運維繫統運維