時序數據庫 InfluxDB(五)

相關文章:
時序數據庫 InfluxDB(一)
時序數據庫 InfluxDB(二)
時序數據庫 InfluxDB(三)
時序數據庫 InfluxDB(四)
時序數據庫 InfluxDB(五)
時序數據庫 InfluxDB(六)數據庫


系統監控


InfluxDB 自帶有一個監控系統,默認狀況下此功能是開啓的,每隔 10 秒中採集一次系統數據並把數據寫入到 _internal 數據庫中,其默認使用名稱爲 monitor 的 RP(數據保留 7 天),相關配置見配置文件中的:segmentfault

[monitor]
  store-enabled = true
  store-database = "_internal"
  store-interval = "10s"

_internal 數據庫與其它數據庫的使用方式徹底一致,其記錄的統計數據分爲多個 measurements :緩存

  • cq :連續查詢
  • database :數據庫
  • httpd :HTTP 相關
  • queryExecutor :查詢執行器
  • runtime :運行時
  • shard :分片
  • subscriber :訂閱者
  • tsm1_cache :TSM cache 緩存
  • tsm1_engine :TSM 引擎
  • tsm1_filestore :TSM filestore
  • tsm1_wal :TSM 預寫日誌
  • write :數據寫入

好比查詢最近一次統計的數據寫入狀況:服務器

select * from "write" order by time desc limit 1

_internal 數據庫裏的這些 measurements 中具體有哪些 field ,每一個 field 數據又表明了什麼含義,請參考官方文檔:
https://docs.influxdata.com/platform/monitoring/influxdata-platform/tools/measurements-internal/#influxdb-internal-measurements-and-fields網絡

InfluxDB 相關命令數據結構

  • show stats
  • show diagnostics

一、spa

SHOW STATS [ FOR '<component>' | 'indexes' ]

show stats 命令返回的系統數據與 _internal 數據庫中的數據結構是一致的,這裏的 component 其實就是對應 _internal 中的 measurement ,好比:debug

show stats for 'queryExecutor'

惟一例外的是:日誌

show stats for 'indexes'

其會返回全部索引使用的內存大小預估值,且沒有 _internal 中的 measurement 與之對應。code

二、

SHOW DIAGNOSTIC

返回系統的診斷信息,包括:版本信息、正常運行時間、主機名、服務器配置、內存使用狀況、Go 運行時等,這些數據不會存儲到 _internal 數據庫中。

InfluxDB 也支持經過 HTTP 接口獲取系統信息

  • /metrics :這個接口返回的數據是諸如垃圾回收、內存分配等的 Go 相關指標。
  • /debug/vars :這個接口返回的數據與 _internal 數據相似。

備份和恢復


InfluxDB 支持本地或遠程的數據備份和恢復,其是經過 TCP 鏈接進行的,對於遠程方式,你必須修改配置文件中的:

bind-address = "127.0.0.1:8088"

將其設置爲本機在網絡上可通訊的對外地址,而後重啓服務,執行命令時須要經過 -host 參數對應這個地址。

備份命令:

屏幕快照 2019-10-30 下午2.37.18.png

恢復命令:

屏幕快照 2019-10-30 下午3.18.31.png

備份和恢復的命令參數很是類似,參數的含義也是一目瞭然的,好比你能夠備份指定的數據庫、RP、shard,恢復到新的數據庫、RP 。

因爲備份的格式進行過不兼容的更新,-portable 就是指定使用新的備份格式(強烈建議使用),-online 就是老的備份格式。

全部備份都是全量備份,不支持增量備份。你可能會問,不是有 -start 和 -end 能夠指定備份數據的時間範圍嗎?沒錯,是能夠的,可是備份是在數據塊上執行,並非逐點執行,而數據塊又是高度壓縮的,你使用 -start 和 -end 時,其還會備份到同一個數據塊中的其它數據點,也就是說:

  • 備份和還原可能會包含指定時間範圍以外的數據。
  • 若是包含重複的數據點,再次寫入則會覆蓋現有數據點。

另外,恢復數據時,沒法直接恢復到一個已經存在的數據庫或者 RP 中,爲此你只能先使用一個臨時的數據庫和 RP ,而後再從新將數據插入到已有的數據庫中(好比使用 select ... into 語句)。

我的公衆號持續輸出原創文章,有興趣的能夠關注下。
qrcode_for_gh_9ccbe5e0dfb3_258.jpg

相關文章
相關標籤/搜索