這是我之前整理的InfluxDB安裝及配置的筆記,這里記錄下,也方便我以后查閱。
環境: CentOS6.5_x64
InfluxDB版本:1.1.0
一、安裝
1、二進制安裝
這里以centos6.5為例進行安裝:
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.1.0.x86_64.rpm yum localinstall influxdb-1.1.0.x86_64.rpm
其它環境可以參考influxdb官方文檔:
https://www.influxdata.com/downloads/#influxdb
安裝后,在/usr/bin下面有如下文件:
influxd influxdb服務器 influx influxdb命令行客戶端 influx_inspect 查看工具 influx_stress 壓力測試工具 influx_tsm 數據庫轉換工具(將數據庫從b1或bz1格式轉換為tsm1格式)
在/var/lib/influxdb/下面會有如下文件夾:
data 存放最終存儲的數據,文件以.tsm結尾 meta 存放數據庫元數據 wal 存放預寫日志文件
2、源碼編譯安裝
go get github.com/influxdata/influxdb cd $GOPATH/src/github.com/influxdata/ go get ./... go install ./...
具體可參考這里:https://anomaly.io/compile-influxdb/
二、啟動
1、以服務方式啟動
service influxdb start
2、以非服務方式啟動
influxd
需要指定配置文件的話,可以使用 --config 選項,具體可以help下看看。
三、配置
配置文件路徑 :/etc/influxdb/influxdb.conf
可以通過以下命令生成默認配置文件:
influxd config > default.conf
reporting-disabled
該選項用於上報influxdb的使用信息給InfluxData公司,默認值為false
對應源碼文件:
influxdb-1.1.0/cmd/influxd/run/config.go
Config中的ReportingDisabled配置項
bind-address
備份恢復時使用,默認值為8088
對應源碼文件:
influxdb-1.1.0/cmd/influxd/run/config.go
Config中的BindAddress配置項
[meta]
meta相關配置
對應源碼文件:
influxdb-1.1.0/services/meta/config.go
dir
meta數據存放目錄,默認值:/var/lib/influxdb/meta
retention-autocreate
用於控制默認存儲策略,數據庫創建時,會自動生成autogen的存儲策略,默認值:true
logging-enabled
是否開啟meta日志,默認值:true
[data]
tsm1引擎配置
對應源碼文件:
influxdb-1.1.0/tsdb/config.go
dir
最終數據(TSM文件)存儲目錄,默認值:/var/lib/influxdb/data
wal-dir
預寫日志存儲目錄,默認值:/var/lib/influxdb/wal
query-log-enabled
是否開啟tsm引擎查詢日志,默認值: true
cache-max-memory-size
用於限定shard最大值,大於該值時會拒絕寫入,默認值:
DefaultCacheMaxMemorySize = 1024 * 1024 * 1024 // 1GB
cache-snapshot-memory-size
用於設置快照大小,大於該值時數據會刷新到tsm文件,默認值:
DefaultCacheSnapshotMemorySize = 25 * 1024 * 1024 // 25MB
cache-snapshot-write-cold-duration
tsm1引擎 snapshot寫盤延遲,默認值:
DefaultCacheSnapshotWriteColdDuration = time.Duration(10 * time.Minute)
compact-full-write-cold-duration
tsm文件在壓縮前可以存儲的最大時間,默認值:
DefaultCompactFullWriteColdDuration = time.Duration(4 * time.Hour)
max-series-per-database
限制數據庫的級數,該值為0時取消限制,默認值:
DefaultMaxSeriesPerDatabase = 1000000
measurement, tag set, retention policy 相同的數據集合算做一個serie,級數算法示例如下:
假設monitor1這個measurement有兩個tags:id 和 name id 的數量為10,name的數量為 100,則 series 基數為 10 * 100 = 1000
max-values-per-tag
一個tag最大的value數,0取消限制,默認值:
DefaultMaxValuesPerTag = 100000
trace-logging-enabled
是否開啟trace日志,默認值: false
[coordinator]
查詢管理的配置選項
對應源碼文件:
influxdb-1.1.0/coordinator/config.go
write-timeout
寫操作超時時間,默認值: 10s
max-concurrent-queries
最大並發查詢數,0無限制,默認值: 0
query-timeout
查詢操作超時時間,0無限制,默認值:0s
log-queries-after
慢查詢超時時間,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]
舊數據的保留策略
對應源碼文件:
influxdb-1.1.0/services/retention/config.go
enabled
是否啟用該模塊,默認值 : true
check-interval
檢查時間間隔,默認值 :"30m0s"
[shard-precreation]
分區預創建
對應源碼文件:
influxdb-1.1.0/services/precreator/config.go
enabled
是否啟用該模塊,默認值 : true
check-interval
檢查時間間隔,默認值 :"10m0s"
advance-period
預創建分區的最大提前時間,默認值 :"30m0s"
[admin]
influxdb提供的簡單web管理頁面
對應源碼文件:
influxdb-1.1.0/services/admin/config.go
enabled
是否啟用該模塊,默認值 : false
bind-address
綁定地址,默認值 :":8083"
https-enabled
是否開啟https ,默認值 :false
https-certificate
https證書路徑,默認值:"/etc/ssl/influxdb.pem"
[monitor]
這一部分控制InfluxDB自有的監控系統。 默認情況下,InfluxDB把這些數據寫入_internal 數據庫,如果這個庫不存在則自動創建。 _internal 庫默認的retention策略是7天,如果你想使用一個自己的retention策略,需要自己創建。
對應源碼文件:
influxdb-1.1.0/monitor/config.go
store-enabled
是否啟用該模塊,默認值 :true
store-database
默認數據庫:"_internal"
store-interval
統計間隔,默認值:"10s"
[subscriber]
控制Kapacitor接受數據的配置
對應源碼文件:
influxdb-1.1.0/services/subscriber/config.go
enabled
是否啟用該模塊,默認值 :true
http-timeout
http超時時間,默認值:"30s"
insecure-skip-verify
是否允許不安全的證書,當測試自己簽發的證書時比較有用。默認值: false
ca-certs
設置CA證書,無默認值
write-concurrency
設置並發數目,默認值:40
write-buffer-size
設置buffer大小,默認值:1000
[http]
influxdb的http接口配置
對應源碼文件:
influxdb-1.1.0/services/httpd/config.go
enabled
是否啟用該模塊,默認值 :true
bind-address
綁定地址,默認值:":8086"
auth-enabled
是否開啟認證,默認值:false
log-enabled
是否開啟日志,默認值:true
write-tracing
是否開啟寫操作日志,如果置成true,每一次寫操作都會打日志,默認值:false
pprof-enabled
是否開啟pprof,默認值:true
https-enabled
是否開啟https,默認值:false
https-certificate
設置https證書路徑,默認值:"/etc/ssl/influxdb.pem"
https-private-key
設置https私鑰,無默認值
max-row-limit
配置查詢返回最大行數,默認值:10000
max-connection-limit
配置最大連接數,0無限制,默認值:0
shared-secret
用於JWT簽名的共享密鑰,無默認值
realm
配置JWT realm,默認值: "InfluxDB"
unix-socket-enabled
是否使用unix-socket,默認值:false
bind-socket
unix-socket路徑,默認值:"/var/run/influxdb.sock"
[[graphite]]
graphite相關配置
具體參考:https://github.com/influxdata/influxdb/blob/master/services/graphite/README.md
對應源碼文件:
influxdb-1.1.0/services/graphite/config.go
enabled
是否啟用該模塊,默認值 :false
bind-address
綁定地址,默認值:":2003"
database
數據庫名稱,默認值:"graphite"
retention-policy
存儲策略,無默認值
protocol
協議,默認值:"tcp"
batch-size
批量size,默認值:5000
batch-pending
配置在內存中等待的batch數,默認值:10
batch-timeout
超時時間,默認值:"1s"
consistency-level
一致性級別,默認值:"one"
separator
多個measurement間的連接符,默認值: "."
udp-read-buffer = 0
udp讀取buffer的大小,0表示使用操作系統提供的值,如果超過操作系統的默認配置則會出錯。 該配置的默認值:0
[[collectd]]
具體參考:https://github.com/influxdata/influxdb/tree/master/services/collectd
對應源碼文件:
influxdb-1.1.0/services/collectd/config.go
enabled
是否啟用該模塊,默認值 :false
bind-address
綁定地址,默認值: ":25826"
database
數據庫名稱,默認值:"collectd"
retention-policy = ""
存儲策略,無默認值
batch-size
默認值:5000
batch-pending
默認值:10
batch-timeout
默認值:"10s"
read-buffer
udp讀取buffer的大小,0表示使用操作系統提供的值,如果超過操作系統的默認配置則會出錯。默認值:0
typesdb
路徑,默認值:"/usr/share/collectd/types.db"
[[opentsdb]]
opentsdb配置
對應源碼文件:
influxdb-1.1.0/services/opentsdb/config.go
enabled
是否啟用該模塊,默認值:false
bind-address
綁定地址,默認值:":4242"
database
默認數據庫:"opentsdb"
retention-policy
存儲策略,無默認值
consistency-level
一致性級別,默認值:"one"
tls-enabled = false
是否開啟tls,默認值:false
certificate
證書路徑,默認值:"/etc/ssl/influxdb.pem"
batch-size
默認值:1000
batch-pending
默認值:5
batch-timeout
超時時間,默認值:"1s"
log-point-errors
出錯時是否記錄日志,默認值:true
[[udp]]
udp配置,具體參考:
https://github.com/influxdata/influxdb/blob/master/services/udp/README.md
對應源碼文件:
influxdb-1.1.0/services/udp/config.go
enabled
是否啟用該模塊,默認值:false
bind-address
綁定地址,默認值:":8089"
database
數據庫名稱,默認值:"udp"
retention-policy
存儲策略,無默認值
batch-size
默認值:5000
batch-pending
默認值:10
read-buffer
udp讀取buffer的大小,0表示使用操作系統提供的值,如果超過操作系統的默認配置則會出錯。 該配置的默認值:0
batch-timeout
超時時間,默認值:"1s"
precision
時間精度,無默認值
[continuous_queries]
CQs配置
對應源碼文件:
influxdb-1.1.0/services/continuous_querier/config.go
log-enabled
是否開啟日志,默認值:true
enabled 是否開啟CQs,默認值:true
run-interval
時間間隔,默認值:"1s"
本文github地址:
https://github.com/mike-zhang/mikeBlogEssays/blob/master/2017/20170206_InfluxDB安裝及配置.md
歡迎補充