influxdb基礎---介紹和配置

#概述
InfluxDB是一個用Go語言編寫的時間序列數據庫,旨在處理高寫入和查詢負載。它是TICK堆棧的組成部分 。InfluxDB旨在用作涉及大量帶時間戳數據的任何用例的後備存儲,包括DevOps監控,應用程序指標,物聯網傳感器數據和實時分析。同時influxdb也是一個開源分佈式時序、事件和指標數據庫,無需外部依賴。類似的數據庫有kdb、Graphite、es等

influxdb git

這裏寫圖片描述

note:說明了新版本集羣只有在雲版或者企業版中才能使用(從0.12開始)就是要繳費,價格參考官網
這裏寫圖片描述

其主要特色功能

  • 基於時間序列,支持與時間有關的相關函數(如最大,最小,求和等)
  • 可度量性:你可以實時對大量數據進行計算
  • 基於事件:它支持任意的事件數據

InfluxDB的主要特點

  • 專爲時間序列數據編寫的自定義高性能數據存儲。TSM引擎允許高攝取速度和數據壓縮
  • 完全寫在Go。它編譯成單個二進制文件,沒有外部依賴項。
  • 簡單,高性能的寫入和查詢HTTP API。
  • 插件支持其他數據提取協議,如Graphite,collectd和OpenTSDB。
  • 專爲類似SQL的查詢語言量身定製,可輕鬆查詢聚合數據。支持min, max, sum, count, mean, median 等一系列函數,方便統計
  • 標籤允許對系列進行索引以實現快速有效的查詢。
  • 保留策略有效地自動使過時數據過期。
  • 連續查詢自動計算聚合數據,以提高頻繁查詢的效率。
  • 無結構(無模式):可以是任意數量的列
  • 可拓展的

集羣版本要收費,單機版本免費(0.11是最後一個包含集羣服務的開源版本:在influxdb 0.12發佈的同時,也宣告了influxdb開源集羣服務的結束,在官方文檔0.12與0.11的差別中的clustering updates部分 011_vs_012
內部集成的web控制檯模塊從1.3開始就被去掉了 web_admin_interface

這裏寫圖片描述
這裏寫圖片描述

#安裝
安裝最新版本 v1.6.2

以centos爲例,其他的 參考官網https連接 或者 參考官網http連接

  • 安裝
    RedHat & CentOS SHA256: fbe635db1402b0427b32b7268d291093fc97ae888b1a68087dbc1dd39e0ddf67
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.2.x86_64.rpm
sudo yum localinstall influxdb-1.6.2.x86_64.rpm

配置文件默然在/etc/influxdb/influxdb.conf,默認佔用端口是8088、8086
 # Bind address to use for the RPC service for backup and restore.
 # bind-address = “127.0.0.1:8088”
 # The bind address used by the HTTP service.
 # bind-address = “:8086”

  • 啓動命令
service influxdb start

非服務方式啓動 influxd

  • 關閉命令
service influxdb stop

#相關目錄

目錄 文件 備註
/usr/bin
influxd influxdb服務器
influx influxdb命令行客戶端
influx_inspect 查看工具
influx_stress 壓力測試工具
influx_tsm 數據庫轉換工具(將數據庫從b1或bz1格式轉換爲tsm1格式)
/var/lib/influxdb/
data 存放最終存儲的數據,文件以.tsm結尾
meta 存放數據庫元數據
wal 存放預寫日誌文件
/var/log/influxdb
influxd.log 日誌文件
/etc/influxdb
influxdb.conf 配置文件

#相關配置
配置文件默認位置/etc/influxdb/influxdb.conf,從上到下

# reporting-disabled = false	# 該選項用於上報influxdb的使用信息給InfluxData公司,默認值爲false
# bind-address = "127.0.0.1:8088"	# 備份恢復時使用,默認值爲8088
### [meta]
[meta]
  dir = "/var/lib/influxdb/meta"  # meta數據存放目錄
  # retention-autocreate = true  # 用於控制默認存儲策略,數據庫創建時,會自動生成autogen的存儲策略,默認值:true
  # logging-enabled = true  # 是否開啓meta日誌,默認值:true
### [data]
[data]
  dir = "/var/lib/influxdb/data"  # 最終數據(TSM文件)存儲目錄
  wal-dir = "/var/lib/influxdb/wal"  # 預寫日誌存儲目錄
  # wal-fsync-delay = "0s" #在同步寫入之前等待的總時間,默認0s
  # index-version = "inmem" #用於新碎片的切分索引的類型。
  # trace-logging-enabled = false #跟蹤日誌記錄在tsm引擎周圍提供了更詳細的輸出
  # query-log-enabled = true  # 是否開啓tsm引擎查詢日誌,默認值: true
  # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
  # cache-max-memory-size = "1g"  # 用於限定shard最大值,大於該值時會拒絕寫入,默認值:1000MB,單位:byte
  # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
  # cache-snapshot-memory-size = "25m"  # 用於設置快照大小,大於該值時數據會刷新到tsm文件,默認值:25MB,單位:byte
  # cache-snapshot-write-cold-duration = "10m"  # tsm引擎 snapshot寫盤延遲,默認值:10Minute
  # compact-full-write-cold-duration = "4h"  # tsm文件在壓縮前可以存儲的最大時間,默認值:4Hour
  # max-concurrent-compactions = 0 #壓縮併發的最大數量,默認設置爲0表示runtime.GOMAXPROCS(0)*50% ,否則以設置的非零值爲準
  # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
  # max-index-log-file-size = "1m" #限制索引日誌文件大小
  # max-series-per-database = 1000000  # 限制數據庫的級數,該值爲0時取消限制,默認值:1000000
  # max-values-per-tag = 100000  # 一個tag最大的value數,0取消限制,默認值:100000
  # tsm-use-madv-willneed = false #如果爲true,mmap的建議值MADV_WILLNEED會被提供給內核
### [coordinator]
[coordinator]
  # write-timeout = "10s"  # 寫操作超時時間,默認值: 10s
  # max-concurrent-queries = 0  # 最大併發查詢數,0無限制,默認值: 0
  # query-timeout = "0s"  # 查詢操作超時時間,0無限制,默認值:0s
  # log-queries-after = "0s"  # 慢查詢超時時間,0無限制,默認值:0s
  # max-select-point = 0  # SELECT語句可以處理的最大點數(points),0無限制,默認值:0
  # max-select-series = 0  # SELECT語句可以處理的最大級數(series),0無限制,默認值:0
  # max-select-buckets = 0  # SELECT語句可以處理的最大"GROUP BY time()"的時間週期,0無限制,默認值:0
### [retention]
[retention]
  # enabled = true  # 是否啓用該模塊,默認值 : true
  # check-interval = "30m" # 檢查時間間隔,默認值 :"30m"
### [shard-precreation]
[shard-precreation]
  # enabled = true # 是否啓用該模塊,默認值 : true
  # check-interval = "10m"  # 檢查時間間隔,默認值 :"10m"
  # advance-period = "30m"  # 預創建分區的最大提前時間,默認值 :"30m"
[monitor]
  # store-enabled = true # 是否啓用該模塊,默認值 :true
  # store-database = "_internal" # 默認數據庫:"_internal"
  # store-interval = "10s" # 統計間隔,默認值:"10s"
### [http]
[http]
  # enabled = true # 是否啓用該模塊,默認值 :true
  # bind-address = ":8086" # 綁定地址,默認值 :":8086"
  # auth-enabled = false # 是否開啓認證,默認值:false
  # realm = "InfluxDB" # 配置JWT realm,默認值: "InfluxDB"
  # log-enabled = true  # 是否開啓日誌,默認值:true
  # suppress-write-log = false #在啓用日誌時是否抑制HTTP寫請求日誌
  # access-log-path = "" #當啓用HTTP請求日誌時,該選項指定了路徑。如influxd不能訪問指定的路徑,它將記錄一個錯誤並將請求日誌寫入stderr
  # write-tracing = false  # 是否開啓寫操作日誌,如果置成true,每一次寫操作都會打日誌,默認值:false
  # pprof-enabled = true  # 是否開啓pprof,默認值:true
  # debug-pprof-enabled = false  # 是否開啓pprof,默認值:true
  # https-enabled = false # 是否開啓https ,默認值 :false
  # https-certificate = "/etc/ssl/influxdb.pem" # 設置https證書路徑,默認值:"/etc/ssl/influxdb.pem"
  # https-private-key = ""# 設置https私鑰,無默認值
  # shared-secret = "" # 用於JWT簽名的共享密鑰,無默認值
  # max-row-limit = 0 # 配置查詢返回最大行數,0無限制,默認值:0
  # max-connection-limit = 0  # 配置最大連接數,0無限制,默認值:0
  # unix-socket-enabled = false  # 是否使用unix-socket,默認值:false
  # bind-socket = "/var/run/influxdb.sock" # unix-socket路徑,默認值:"/var/run/influxdb.sock"
  # max-body-size = 25000000 #客戶端請求主體的最大值,以字節爲單位。0無限制,默認值0
  # max-concurrent-write-limit = 0 #併發處理的最大寫入次數,0無限制,默認值0
  # max-enqueued-write-limit = 0 #排隊等待處理的最大數量,0無限制,默認值0
  # enqueued-write-timeout = 0 #在隊列中等待處理的最長時間,0或者setting max-concurrent-write-limit=0無限制,默認值0
### [ifql]
[ifql]
  # enabled = true# 是否啓用該模塊,默認值 :true
  # log-enabled = true# 是否開啓日誌,默認值:true
  # bind-address = ":8082" #ifql RPC服務使用的綁定地址默認是8082
### [logging]
[logging]
  # format = "auto" #日誌格式,默認是自動
  # level = "info" #日誌級別默認info
  # suppress-logo = false #當程序啓動時,會抑制打印出來的logo輸出
### [subscriber]
[subscriber]
  # enabled = true	# 是否啓用該模塊,默認值 :true
  # http-timeout = "30s"	# http超時時間,默認值:"30s"
  # insecure-skip-verify = false	# 是否允許不安全的證書
  # ca-certs = ""	# 設置CA證書
  # write-concurrency = 40	#設置併發數目,默認值:40
  # write-buffer-size = 1000 	# 設置buffer大小,默認值:1000
### [[graphite]]
[[graphite]]
  # enabled = false# 是否啓用該模塊,默認值 :false
  # database = "graphite"# 數據庫名稱,默認值:"graphite"
  # retention-policy = "" # 存儲策略,無默認值
  # bind-address = ":2003"# 綁定地址,默認值:":2003"
  # protocol = "tcp"# 協議,默認值:"tcp"
  # consistency-level = "one" # 一致性級別,默認值:"one
  # batch-size = 5000 # 批量size,默認值:5000
  # batch-pending = 10# 配置在內存中等待的batch數,默認值:10
  # batch-timeout = "1s" # 超時時間,默認值:"1s"
  # udp-read-buffer = 0# udp讀取buffer的大小,0表示使用操作系統提供的值,如果超過操作系統的默認配置則會出錯。 該配置的默認值:0
  # separator = "." # 多個measurement間的連接符,默認值: "."
  # tags = ["region=us-east", "zone=1c"] #將被添加到所有指標的默認標籤。這些可以在模板級別上覆蓋或者從指標中提取的標籤
  # templates = [  
  #   "*.app env.service.resource.measurement",
  #   # Default template
  #   "server.*",
  # ]
### [collectd]
[[collectd]]
  # enabled = false# 是否啓用該模塊,默認值 :false
  # bind-address = ":25826"  # 綁定地址,默認值: ":25826"
  # database = "collectd"# 數據庫名稱,默認值:"collectd"
  # retention-policy = "" # 存儲策略,無默認值
  # typesdb = "/usr/local/share/collectd" # 路徑,默認值:"/usr/share/collectd/types.db"
  # security-level = "none" #安全級別
  # auth-file = "/etc/collectd/auth_file"
  # batch-size = 5000 #從緩存中批量獲取數據的量,默認值:5000
  # batch-pending = 10 #可能在內存中等待的批次的數量,默認值:10
  # batch-timeout = "10s" #即使沒有達到緩衝區的限制,至少要刷新一下,默認值:"10s"
  # read-buffer = 0 #udp讀取buffer的大小,0表示使用操作系統提供的值,如果超過操作系統的默認配置則會出錯。默認值:0
  # parse-multivalue-plugin = "split" #兩種處理方式split和join,split會分到不同的表中,join會將記錄作爲一個單獨的記錄處理。默認是split
### [opentsdb]
[[opentsdb]]
  # enabled = false# 是否啓用該模塊,默認值 :false
  # bind-address = ":4242"# 綁定地址,默認值:":4242"
  # database = "opentsdb"  # 默認數據庫:"opentsdb"
  # retention-policy = ""# 存儲策略,無默認值
  # consistency-level = "one" # 一致性級別,默認值:"one"
  # tls-enabled = false # 是否開啓tls,默認值:false
  # certificate= "/etc/ssl/influxdb.pem" # 證書路徑,默認值:"/etc/ssl/influxdb.pem"
  # log-point-errors = true# 出錯時是否記錄日誌,默認值:true
  # batch-size = 1000 #從緩存中批量獲取數據的量,默認值:1000
  # batch-pending = 5 #可能在內存中等待的批次的數量,默認值:5
  # batch-timeout = "1s" #即使沒有達到緩衝區的限制,至少要刷新一下,默認值:"1s"
### [[udp]]
[[udp]]
  # enabled = false# 是否啓用該模塊,默認值 :false
  # bind-address = ":8089" # 綁定地址,默認值:":8089"
  # database = "udp"# 數據庫名稱,默認值:"udp"
  # retention-policy = "" # 存儲策略,無默認值
  # precision = "" #接收點的時間點的精度("" or "n", "u", "ms", "s", "m", "h")
  # batch-size = 5000#從緩存中批量獲取數據的量,默認值:5000 
  # batch-pending = 10 #可能在內存中等待的批次的數量,默認值:10
  # batch-timeout = "1s" #即使沒有達到緩衝區的限制,至少要刷新一下,默認值:"1s"
  # read-buffer = 0# udp讀取buffer的大小,0表示使用操作系統提供的值,如果超過操作系統的默認配置則會出錯。 該配置的默認值:0 
### [continuous_queries]
[continuous_queries]
  # enabled = true# 是否啓用該模塊,默認值 :true
  # log-enabled = true# 是否開啓日誌,默認值:true
  # query-stats-enabled = false #控制查詢是否被記錄到自我監控數據存儲中
  # run-interval = "1s" # 時間間隔,默認值:"1s"
### [tls]
[tls]
  # ciphers = [
  #   "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
  #   "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
  # ]
  # min-version = "tls1.2"
  # max-version = "tls1.2"

用法下一節說~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章