HDC.Cloud2021|如何使用華為云GaussDB(for Influx) + Grafana搭建億級時間線數(shù)據(jù)的監(jiān)控系統(tǒng)
隨著云計算規(guī)模越來越大,以及物聯(lián)網(wǎng)應用逐漸普及,在物聯(lián)網(wǎng)(AIoT)以及運維監(jiān)控(AIOps)領(lǐng)域,存在海量的時序數(shù)據(jù)需要存儲管理。我們?nèi)粘T谏钪薪?jīng)常見到城市的空氣質(zhì)量、風力和溫度等數(shù)據(jù),都需要用到時序數(shù)據(jù)庫,再通過監(jiān)控系統(tǒng)和大數(shù)據(jù)處理系統(tǒng)利用時序數(shù)據(jù)庫的數(shù)據(jù)查詢和計算分析功能將業(yè)務監(jiān)控和分析結(jié)果實時展現(xiàn)出來。讀完本文你將很快學會使用華為云數(shù)據(jù)庫GaussDB(for Influx) + Grafana搭建億級時間線數(shù)據(jù)的監(jiān)控系統(tǒng)。

在真實的場景中,監(jiān)控系統(tǒng)主要負責監(jiān)控指標的采集、展示、分析和告警,其作用在于監(jiān)控業(yè)務整體的運行情況。系統(tǒng)采集的指標通常和業(yè)務運維是強相關(guān)的,比如通用指標有服務器資源數(shù)據(jù)(CPU,內(nèi)存,磁盤空間,帶寬,網(wǎng)絡時延),比如業(yè)務相關(guān)指標,以視頻會議的應用為例,包括創(chuàng)建會議事件相關(guān)信息,會議接入相關(guān)信息,接口調(diào)用狀態(tài)信息等。
指標數(shù)據(jù)采集與存儲
指標數(shù)據(jù)是典型的時序數(shù)據(jù),適合采用時序數(shù)據(jù)庫進行存儲。GaussDB(for Influx)為華為云時序數(shù)據(jù)庫服務,購買即可使用,無需安裝部署。
采集業(yè)務相關(guān)指標數(shù)據(jù)通常有寫時序數(shù)據(jù)庫和寫日志兩種方法,其中寫時序數(shù)據(jù)庫最為直接,適合于中小型應用。大型企業(yè)級應用通常采用寫日志的方式,由Kafka對日志進行收集和聚合,再利用Telegraf取出Kafka數(shù)據(jù)并寫入時序數(shù)據(jù)庫。
Telegraf采集Kafka數(shù)據(jù)的簡單配置如下:
[[inputs.kafka_consumer]] ## Kafka brokers. ## 這里設(shè)置Kafka brokers的IP地址 brokers = ["192.168.100.10:9092"] ## Topics to consume. topics = ["telegraf"] ...... ## Data format to consume. ## Each data format has its own unique set of configuration options, read ## more about them here: ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md ## 這里設(shè)置數(shù)據(jù)格式,其他格式參考 DATA_FORMAT_INPUT.md,Logfmt為日志格式。 data_format = "Logfmt"
Telegraf寫入時序數(shù)據(jù)庫的配置如下:
# Configuration for sending metrics to InfluxDB [[outputs.influxdb]] ## The full HTTP or UDP URL for your InfluxDB instance. ## ## Multiple URLs can be specified for a single cluster, only ONE of the ## urls will be written to each interval. # urls = ["unix:///var/run/influxdb.sock"] # urls = ["udp://127.0.0.1:8089"] ## 這里設(shè)置華為云GaussDB(for Influx)的配置的ELB IP地址或者節(jié)點內(nèi)網(wǎng)IP地址 urls=[“https://rwuser:password@IP:8635”] ## The target database for metrics; will be created as needed. ## For UDP url endpoint database needs to be configured on server side. ## 設(shè)置數(shù)據(jù)庫名稱(默認telegraf) database = "telegraf" ... ... ## HTTP Basic Auth ## 這里設(shè)置GaussDB(for Influx)數(shù)據(jù)庫用戶名和密碼,實際密碼替換password username = "rwuser" password = "password" ## HTTP User-Agent # user_agent = "telegraf" ## UDP payload size is the maximum packet size to send. # udp_payload = "512B" ## Optional TLS Config for use on HTTP connections. # tls_ca = "/etc/telegraf/ca.pem" # tls_cert = "/etc/telegraf/cert.pem" # tls_key = "/etc/telegraf/key.pem" ## Use TLS but skip chain & host verification ## 這里設(shè)置跳過ssl驗證 # insecure_skip_verify = true
以上配置中,中文注釋的部分是必須設(shè)置的。GaussDB(for Influx)的用戶名默認為rwuser,不可更改。配置時,選擇時序數(shù)據(jù)庫的其中一個節(jié)點內(nèi)網(wǎng)ip或者ELB ip替換urls中的IP,用GaussDB(for Influx)實例的密碼替換password,如果密碼包含如下特殊字符,需換成 ASIIC 碼形式輸入。
~ : %7E,! : %21,@ : %40,# : %23,$ : %24
% : %25,^ : %5E,& : %26,* : %2A,? : %3F
例如密碼:“Huawei@123”,轉(zhuǎn)換后為 “Huawei%40123”。
在應用程序中直接寫入GaussDB(for Influx)有所不同,需要借助驅(qū)動程序幫助完成。以Python為例:
第一步:安裝數(shù)據(jù)庫驅(qū)動
pip install influxdb # Debian Or Ubuntu系統(tǒng)上使用如下命令 sudo apt-get install python-influxdb
第二步:連接GaussDB(for Influx)
# Python from influxdb import InfluxDBClient ## 使用GaussDB(for Influx)的ELB IP或者實例節(jié)點的IP替換填寫host,用戶密碼填寫password, ## 并指定連接數(shù)據(jù)庫database。 client = InfluxDBClient(host='localhost', port=8635, username='rwuser', password='password', database='telegraf', ssl=True, verify_ssl=False)
第三步:數(shù)據(jù)寫入
json_body = [ { "measurement": "my_tab", "tags": { "host": "server01", "region": "us-west" }, "time": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.localtime()), "fields": { "used_cpu": cpu_used_rate, "used_mem": mem_used_rate } }] client.write_points(json_body)
Java語言的驅(qū)動程序,可以參考https://github.com/influxdata/influxdb-java
Grafana數(shù)據(jù)展示
Grafana是一個跨平臺、開源的數(shù)據(jù)可視化平臺。用戶配置連接的數(shù)據(jù)源之后,Grafana可以在網(wǎng)絡瀏覽器里顯示數(shù)據(jù)圖表和警告。
服務端啟動Grafana后,通過瀏覽器訪問:
## 這里的IP可以是云上服務器的彈性IP,也可以是本地自建服務器的Ip地址。 http://IP:3000
登陸Grafana的首頁如下圖所示。
1.展示數(shù)據(jù)第一步:創(chuàng)建數(shù)據(jù)源,點擊如下圖中的紅框位置。
選擇InfluxDB,因為GaussDB(For Influx)完全兼容InfluxDB
填寫如下參數(shù):
URL?:https://rwuser:password@IP:8635?。IP為數(shù)據(jù)庫實例的內(nèi)網(wǎng)ip(參考1步驟(1)), 用rwuser密碼替換password(參考1.1步驟(6)),如果密碼包含如下特殊字符,需換成 ASIIC 碼形式輸入。
~ : %7E,! : %21,@ : %40,# : %23,$ : %24
% : %25,^ : %5E,& : %26,* : %2A,? : %3F
例如密碼:“Huawei@123”,轉(zhuǎn)換后為 “Huawei%40123”。
Auth:打開選項Basic auth 和skip TSL Verify。
Basic Auth Details:
User:rwuser
Password:購買數(shù)據(jù)庫實例時設(shè)置(參考1.1步驟(6)),如“nJa#w7f3”。
InfluxDB Details:
Database:telegraf(也可以填寫其他自己創(chuàng)建的數(shù)據(jù)庫)。
User:rwuser
Password:購買數(shù)據(jù)庫實例時設(shè)置(參考1.1步驟(6)),如“nJa#w7f3”。
點擊“保存”(save)。
數(shù)據(jù)展示第二步:創(chuàng)建數(shù)據(jù)看板
點擊首頁DASHBOARDS創(chuàng)建看板,或者側(cè)邊“+”快捷按鈕。
重點配置項(詳細參見截圖紅框部分):
Visualization:Graph
展示時間范圍:last 1 hour
數(shù)據(jù)更新時間間隔:1m
數(shù)據(jù)源名稱:InfluxDB-DataSource
查詢語句配置如下(以展示服務器CPU利用率為例,從時序數(shù)據(jù)庫的表cpu中查詢usage_user,按1m的分組時間間隔求平均值,時間線是cpu=cpu-total):
FROM autogen cpu Where cpu = cpu-total SELECT field (usage_user) mean () GROUP BY time (1m) fill (0)
面板中的每個圖都是可以編輯的,也可以設(shè)置告警。
總結(jié)
隨著云計算和物聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)規(guī)模急劇增加,監(jiān)控系統(tǒng)的核心在于時序數(shù)據(jù)庫,一個高可用、高性能、企業(yè)級的時序數(shù)據(jù)庫對監(jiān)控系統(tǒng)的穩(wěn)定起決定性作用。
GaussDB(for Influx)是一個云原生存儲與計算分離架構(gòu)的時序數(shù)據(jù)庫,支持億級時間線,具備高可靠、高性能,非常適合DevOps場景下的海量時間線數(shù)據(jù)的存儲,是監(jiān)控系統(tǒng)最佳的選擇。
作為華為ICT基礎(chǔ)設(shè)施業(yè)務面向全球開發(fā)者的年度盛會,華為開發(fā)者大會2021(Cloud)將于2021年4月24日-26日在深圳舉行。本屆大會以#每一個開發(fā)者都了不起#為主題,將匯聚業(yè)界大咖、華為科學家、頂級技術(shù)專家、天才少年和眾多開發(fā)者,共同探討和分享云、計算、人工智能等最新ICT技術(shù)在行業(yè)的深度創(chuàng)新和應用。智能時代,每一個開發(fā)者都在創(chuàng)造一往無前的奔騰時代。世界有你,了不起!
點擊鏈接,了解大會詳細信息。https://developer.huaweicloud.com/HDC.Cloud2021.html
HDC2021 云數(shù)據(jù)庫 GaussDB(for Influx) 數(shù)據(jù)庫
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。