在集群中安裝influxdb
influxdb提供了官方鏡像,因此在集群中安裝influxdb十分方便,只需要指定鏡像名為influxdb即可自動下載運行,只需要配置環境變量就可以進行初始化設置
以下是官方文檔提供的可配置環境變量
INFLUXDB_DB
以這個環境變量作為名字自動初始化一個數據庫
INFLUXDB_HTTP_AUTH_ENABLED
允許身份驗證。必須設置此選項或必須在配置文件中設置auth-enabled = true
才能使后續的任何身份驗證相關選項生效。
INFLUXDB_ADMIN_USER
以這個環境變量作為名字自動初始化一個管理員用戶
INFLUXDB_ADMIN_PASSWORD
以這個環境變量作為管理員用戶的密碼
INFLUXDB_USER
以這個環境變量作為名字自動初始化一個普通用戶,如果初始化了數據庫,則自動獲得該數據庫的讀寫權限
INFLUXDB_USER_PASSWORD
使用INFLUXDB_USER配置的用戶的密碼。如果未設置,則生成隨機密碼並打印到標准輸出。
INFLUXDB_READ_USER
要在INFLUXDB_DB
上使用讀取權限創建的用戶的名稱。如果未設置INFLUXDB_DB
,則此用戶將沒有授予權限。
INFLUXDB_READ_USER_PASSWORD
使用INFLUXDB_READ_USER
配置的用戶的密碼。如果未設置,則生成隨機密碼並打印到標准輸出。
INFLUXDB_WRITE_USER
要在INFLUXDB_DB
上使用寫權限創建的用戶的名稱。如果未設置INFLUXDB_DB
,則此用戶將沒有授予權限。
INFLUXDB_WRITE_USER_PASSWORD
使用INFLUXDB_WRITE_USER
配置的用戶的密碼。如果未設置,則生成隨機密碼並打印到標准輸出。
使用HTTP API與數據庫通信
influxDB自帶HTTP接口,可以輕松編寫代碼讀寫數據庫
首先觀察官方文檔中使用curl操作數據庫的樣例:
Create your first database
curl -XPOST "http://localhost:8086/query" --data-urlencode "q=CREATE DATABASE mydb"
Insert some data
curl -XPOST "http://localhost:8086/write?db=mydb" \
-d 'cpu,host=server01,region=uswest load=42 1434055562000000000'
curl -XPOST "http://localhost:8086/write?db=mydb" \
-d 'cpu,host=server02,region=uswest load=78 1434055562000000000'
curl -XPOST "http://localhost:8086/write?db=mydb" \
-d 'cpu,host=server03,region=useast load=15.4 1434055562000000000'
Query for the data
curl -G "http://localhost:8086/query?pretty=true" --data-urlencode "db=mydb" \
--data-urlencode "q=SELECT * FROM cpu WHERE host='server01' AND time < now() - 1d"
Analyze the data
curl -G "http://localhost:8086/query?pretty=true" --data-urlencode "db=mydb" \
--data-urlencode "q=SELECT mean(load) FROM cpu WHERE region='uswest'"
看起來有一些麻煩,但是influxDB官方同時給出了HTTP client代碼庫
使用GO Client
連接客戶端
c, err := client_v2.NewHTTPClient(client_v2.HTTPConfig{
Addr: "http://192.168.102.238:8086",
Username: "kubespy",
Password: "kubespy",
})
if err != nil {
log.Fatal(err)
}
defer c.Close()