InfluxDB介紹
官網:https://www.influxdata.com/
文檔:https://docs.influxdata.com/influxdb/v1.2/introduction/
InfluxDB 是用Go語言編寫的一個開源分布式時序、事件和指標數據庫,無需外部依賴。
主要特色功能
- 基於時間序列(Time Series),支持與時間有關的相關函數(如最大,最小,求和等)
- 可度量性(Metrics):你可以實時對大量數據進行計算
- 基於事件(Eevents):它支持任意的事件數據
主要特點
- 無結構(無模式):可以是任意數量的列
- 可拓展的
- 支持min, max, sum, count, mean, median 等一系列函數,方便統計
- 原生的HTTP支持,內置HTTP API
- 強大的類SQL語法
- 自帶管理界面,方便使用
InfluxDB部署
官網介紹:https://portal.influxdata.com/downloads
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.2.4.x86_64.rpm sudo yum localinstall influxdb-1.2.4.x86_64.rpm
啟動服務 service influxdb start
非服務方式啟動 influxd
/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 配置文件
/var/run/influxdb/
- influxd.pid PID文件
InfluxDB web管理頁面
配置/etc/influxdb/influxdb.conf
[admin] enabled = true bind-address = ":8083"
訪問http://IP:8083/
配置influxdb.conf
官方介紹:https://docs.influxdata.com/influxdb/v1.2/administration/config/
全局配置
reporting-disabled = false # 該選項用於上報influxdb的使用信息給InfluxData公司,默認值為false bind-address = ":8088" # 備份恢復時使用,默認值為8088
1、meta相關配置
[meta] dir = "/var/lib/influxdb/meta" # meta數據存放目錄 retention-autocreate = true # 用於控制默認存儲策略,數據庫創建時,會自動生成autogen的存儲策略,默認值:true logging-enabled = true # 是否開啟meta日志,默認值:true
2、data相關配置
[data] dir = "/var/lib/influxdb/data" # 最終數據(TSM文件)存儲目錄 wal-dir = "/var/lib/influxdb/wal" # 預寫日志存儲目錄 query-log-enabled = true # 是否開啟tsm引擎查詢日志,默認值: true cache-max-memory-size = 1048576000 # 用於限定shard最大值,大於該值時會拒絕寫入,默認值:1000MB,單位:byte cache-snapshot-memory-size = 26214400 # 用於設置快照大小,大於該值時數據會刷新到tsm文件,默認值:25MB,單位:byte cache-snapshot-write-cold-duration = "10m" # tsm引擎 snapshot寫盤延遲,默認值:10Minute compact-full-write-cold-duration = "4h" # tsm文件在壓縮前可以存儲的最大時間,默認值:4Hour max-series-per-database = 1000000 # 限制數據庫的級數,該值為0時取消限制,默認值:1000000 max-values-per-tag = 100000 # 一個tag最大的value數,0取消限制,默認值:100000
3、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
4、retention舊數據的保留策略
[retention] enabled = true # 是否啟用該模塊,默認值 : true check-interval = "30m" # 檢查時間間隔,默認值 :"30m"
5、shard-precreation分區預創建
[shard-precreation] enabled = true # 是否啟用該模塊,默認值 : true check-interval = "10m" # 檢查時間間隔,默認值 :"10m" advance-period = "30m" # 預創建分區的最大提前時間,默認值 :"30m"
6、monitor 控制InfluxDB自有的監控系統。 默認情況下,InfluxDB把這些數據寫入_internal 數據庫,如果這個庫不存在則自動創建。 _internal 庫默認的retention策略是7天,如果你想使用一個自己的retention策略,需要自己創建。
[monitor] store-enabled = true # 是否啟用該模塊,默認值 :true store-database = "_internal" # 默認數據庫:"_internal" store-interval = "10s # 統計間隔,默認值:"10s"
7、admin web管理頁面
[admin] enabled = true # 是否啟用該模塊,默認值 : false bind-address = ":8083" # 綁定地址,默認值 :":8083" https-enabled = false # 是否開啟https ,默認值 :false https-certificate = "/etc/ssl/influxdb.pem" # https證書路徑,默認值:"/etc/ssl/influxdb.pem"
8、http API
[http] enabled = true # 是否啟用該模塊,默認值 :true bind-address = ":8086" # 綁定地址,默認值:":8086" auth-enabled = false # 是否開啟認證,默認值:false realm = "InfluxDB" # 配置JWT realm,默認值: "InfluxDB" log-enabled = true # 是否開啟日志,默認值:true write-tracing = false # 是否開啟寫操作日志,如果置成true,每一次寫操作都會打日志,默認值:false pprof-enabled = true # 是否開啟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"
9、subscriber 控制Kapacitor接受數據的配置
[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
10、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間的連接符,默認值: "."
11、collectd
[[collectd]] enabled = false # 是否啟用該模塊,默認值 :false bind-address = ":25826" # 綁定地址,默認值: ":25826" database = "collectd" # 數據庫名稱,默認值:"collectd" retention-policy = "" # 存儲策略,無默認值 typesdb = "/usr/local/share/collectd" # 路徑,默認值:"/usr/share/collectd/types.db" auth-file = "/etc/collectd/auth_file" batch-size = 5000 batch-pending = 10 batch-timeout = "10s" read-buffer = 0 # udp讀取buffer的大小,0表示使用操作系統提供的值,如果超過操作系統的默認配置則會出錯。默認值:0
12、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 batch-pending = 5 batch-timeout = "1s"
13、udp
[[udp]] enabled = false # 是否啟用該模塊,默認值:false bind-address = ":8089" # 綁定地址,默認值:":8089" database = "udp" # 數據庫名稱,默認值:"udp" retention-policy = "" # 存儲策略,無默認值 batch-size = 5000 batch-pending = 10 batch-timeout = "1s" read-buffer = 0 # udp讀取buffer的大小,0表示使用操作系統提供的值,如果超過操作系統的默認配置則會出錯。 該配置的默認值:0
14、continuous_queries
[continuous_queries] enabled = true # enabled 是否開啟CQs,默認值:true log-enabled = true # 是否開啟日志,默認值:true run-interval = "1s" # 時間間隔,默認值:"1s"
參考博文:http://www.cnblogs.com/MikeZhang/p/InfluxDBInstall20170206.html