安裝
https://docs.docker.com/samples/library/influxdb/
- 先啟動,創建admin用戶
docker run -d --name influxdb -p 8086:8086 -p 8083:8083 -v /data/opt/monitor/influx/influxdb:/var/lib/influxdb influxdb
登錄
docker exec -it influxdb /bin/bash
輸入influx
創建admin用戶
create user "admin" with password 'admin' with all privileges
- 創建配置文件:
docker run --rm influxdb influxd config > influxdb.conf
修改配置文件后,設置認證開啟
[http]
enabled = true
bind-address = ":8086"
auth-enabled = true # ✨
- kill並重啟,並指定我們的配置文件
docker kill influxdb
docker rm influxdb
docker run -d --name influxdb -p 8086:8086 -p 8083:8083 -v /data/opt/monitor/influx/influxdb.conf:/etc/influxdb/influxdb.conf:ro -v /data/opt/monitor/influx/influxdb:/var/lib/influxdb influxdb
再次登錄
docker exec -it influxdb /bin/bash
輸入influx
auth admin admin
show databases;
create database demo
備份
#!/bin/bash
# 0 0 * * * sh /data/opt/monitor/backup/influx/backup-influx.sh
source /etc/profile
LOG_DIR=/data/log/backup/influx
SOURCE_DIR=/data/opt/monitor/influx
BACKUP_DIR=/data/opt/monitor/backup/influx/data
REMOTE_IP=192.168.5.9
REMOTE_USER=root
REMOTE_DIR=/data/opt/backup/influx
function log()
{
echo "[ `date '+%Y-%m-%d %H:%M:%S'` ] $1"
}
# 備份
function main(){
d=`date "+%Y%m%d%H%M%S"`
fname=${BACKUP_DIR}/backup_${d}.tgz
log "開始備份 ${fname}"
tar -zcf ${fname} ${SOURCE_DIR}
scp ${fname} $REMOTE_USER@$REMOTE_IP:$REMOTE_DIR
log "備份到遠程成功"
log "開始刪除30天前的備份"
find ${BACKUP_DIR} -type f -atime +7 |xargs -t -i rm {}
log "刪除完畢"
}
main >> 2>&1 ${LOG_DIR}/backup.log
概念
https://jasper-zhang1.gitbooks.io/influxdb/content/Concepts/crosswalk.html
基本操作
數據保存策略(Retention Policies)
influxdb提供了數據的報錯策略 retention policies. 可以指定db的數據過期時間,然后定期刪除過期數據。
查看retention
> create database demo
> use demo
Using database demo
> show retention policies on "demo"
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 true
創建一個30天的過期策略
create retention policy "rp_30days" on "demo" duration 30d replication 1 default
- duration 單位 h(小時),d(天),w(星期);
修改retention
alter retention policy "rp_30days" on "demo" duration 30d default
刪除retention
drop retention policy "rp_name" on "db_name"