Influxdb1.8.5

一、Prometheus

1.1、Prometheus的下载

下载链接: https://prometheus.io/download/

1.2、Prometheus的安装

tar -xvf prometheus-2.26.0.linux-amd64

1.3、Prometheus的运行

#进入prometheus安装目录,执行命令
./prometheus --config.file=prometheus.yml

# 查看运行状态
netstat -lnp|grep 9090

crul测试

curl http://IP地址:9090/metrics

浏览器打开 IP地址:9009测试
在这里插入图片描述

二、Influxdb安装配置

2.1、Influxdb安装

influxdb的官方下载地址为: https://portal.influxdata.com/downloads/
根据不同系统进行下载,这里使用官方提供的二进制进行安装。

这里使用1.8.5为例

# 下载2.0.6版本
wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.6-linux-amd64.tar.gz
# 解压2.0.6版本
tar xvfz influxdb2-2.0.6-linux-amd64.tar.gz
# 配置环境变量
sudo cp influxdb2-2.0.6-linux-amd64/{
    
    influx,influxd} /usr/local/bin/


# 下载1.8.5版本
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.5_linux_amd64.tar.gz
# 解压1.8.5版本
tar xvfz influxdb-1.8.5_linux_amd64.tar.gz

# 查看端口是否监听
ss -lnput | grep 8086

# 启动influxdb服务端
# 进入InfluxDB目录下的usr/bin文件夹,执行:
./influxd

## 指定配置配置文件启动
./influxd -config /opt/home/influxdb-1.8.5-1/etc/influxdb/influxdb.conf 

## 后台启动使用 ./influxd 启动,会占用控制台,关闭连接进程就关闭
## 可以将influxdb作为后台服务运行 可以使用nohup命令实现

## 默认配置文件启动 
##	   相对路径: ./influxd  
##     绝对路径: /opt/home/influxdb-1.8.5-1/usr/bin/influxd 
nohup ./influxd  >/dev/null 2>&1 &
nohup /opt/home/influxdb-1.8.5-1/usr/bin/influxd  >/dev/null 2>&1 &

## 指定配置文件启动
nohup ./influxd -config /opt/home/influxdb-1.8.5-1/etc/influxdb/influxdb.conf >/dev/null 2>&1 &

# 启动influxdb客户端 进入Influxdb目录下的usr/bin文件夹 执行./influx
./influx

2.2、配置prometheus集成infludb

#修改prometheus.yml文件
vim prometheus.yml

# 添加如下几行
remote_write:
  - url: "http://IP地址:8086/api/v1/prom/write?db=prometheus"

remote_read:
  - url: "http://IP地址:8086/api/v1/prom/read?db=prometheus"

# 重启 注意: 如果influxdb配置有密码, 请参考上面的官方文档地址进行配置。
systemctl restart prometheus 
systemctl status prometheus

2.3、测试数据是否存储到influxdb中

# 登陆客户端
./influx

# 显示所有的数据库
show databases;

2.4、配置文件讲解

# 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"

2.5、Influxdb命令

2.5.1、基本命令

## 查看所有的数据库
show databases

# 退出
exit

## 创建数据库
create database promethus

## 删除数据库
drop database promethus

## 选择数据库
use prometheus

## 查看所有的表
show measurements

## 查询
select * from http_requests_total
select * from go_info

## 根据日期范围查询
select * from go_info where time >= '2021-05-10T02:00:00.000Z' and time <= '2021-05-10T03:00:00.000Z'

## 设置显示的时间格式
precision rfc3339

## 启动时设置格式
## 该-precision参数指定任何返回的时间戳的格式/精度。(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ)返回时间戳。
./influx -precision rfc3339

## 创建表,直接在插入数据的时候指定表名(weather就是表名)
insert weather,altitude=1000,area=temperature=11,humidity=-4
## 删除表
drop measurement "measurement_name"

## 建立保留策略(retention policy) duration: 1h, 90m, 12h, 7d, 4w, INF 最小1h, 最大INF
create retention policy rp_collectd on collectd duration 1w replication 1 default

## 通过http添加数据
curl -i -XPOST ‘http://localhost:8086/write?db=testDB’ –data-binary 'weather,altitude=1000,area=北 temperature=11,humidity=-4'

## 查询10条数据
select * from measurement_name limit 10;

## 查看一个measurement中所有的tag key
show tag keys

## 查看一个measurement中所有的field key
show field keys

## 查看一个measurement中所有的保存策略(可以有多个,一个标识为default)
show retention policies

2.5.2、数据备份与还原

## Backup 命令
## InfluxDB 的 backup 命令可以生成一定的数据,并且创建保存至指定的目录中。在目录中将会根据 UTC 时间戳进行命令保存。

## 备份所有数据 <path-to-backup> 备份文件存放的路径
# influxd backup -portable <path-to-backup>
influxd backup -portable backup/

## 备份 指定仅备份prometheus数据库(使用 -database 参数指定备份的数据库)
## <db> 要备份的数据库。如果未指定,则备份所有数据库。 <path-to-backup> 备份文件存放的路径
# ./influxd backup -portable -database <db> <path-to-backup>
./influxd backup -portable -database prometheus backup/

## 要在指定的时间间隔内备份数据库(使用 -start 和 -end 参数指定备份的时间段)  <timestamp>需要备份的时间   <path-to-backup>备份文件存放的路径
# ./influxd backup -portable -database <db> -start <timestamp> -end <timestamp>  <path-to-backup>
## 日期格式 2021-05-10T02:00:00.000Z   2021-05-10T02:00:00Z
./influxd backup -portable -database prometheus -start '2021-05-10T02:00:00.000Z' -end '2021-05-10T03:00:00.000Z'  backup/


## Restore 命令
## 上面介绍了使用 backup 命令来备份数据,那么肯定也要介绍如何使用 restore 命令来恢复数据。

## 还原指定prometheus 数据库(prometheus 数据库必须不存在):
./influxd restore -portable -db prometheus backup/

## 恢复到新的数据库
./influxd restore -portable -db prometheus -newdb prometheus2 /opt/home/influxdb-1.8.5-1/usr/bin/backup


## 如果的确需要将数据还原至现有的数据库中,在 influxdb 官网推荐的做法如下:

## 1.将现有数据库备份还原到临时数据库
./influxd restore -portable -db prometheus -newdb prometheus_bak path-to-backup
## 2.(使用SELECT ... INTO语句)将数据侧载到现有目标数据库中,然后删除临时数据库。
> USE prometheus_bak
> SELECT * INTO prometheus..:MEASUREMENT FROM /.*/ GROUP BY *
> DROP DATABASE prometheus_bak 
## 3.还有另外一个数据,就是将查询一个时间段的数据,再插入到另一个数据库中,如下:
> show databases
name: databases
name
----
_internal
prometheus
prometheus2
> use prometheus2
Using database prometheus2
> precision rfc3339
> select * into prometheus..:MEASUREMENT from /.*/  where time >= '2021-05-27T00:00:00.000Z' and time <= '2021-05-28T00:00:00.000Z'
name: result
time                 written
----                 -------
1970-01-01T00:00:00Z 1442857
> 

InfluxDB 的 backup 命令可以生成一定的数据,并且创建保存至指定的目录中。在目录中将会根据 UTC 时间戳进行命令保存。

[root@iZ2ze3gakdimayf5kglcuvZ backup]# ll
总用量 2928
-rw------- 1 root root     681 527 14:21 20210527T062148Z.manifest
-rw-r--r-- 1 root root     557 527 14:21 20210527T062148Z.meta
-rw------- 1 root root  658043 527 14:21 20210527T062148Z.s58.tar.gz
-rw------- 1 root root  271226 527 14:21 20210527T062148Z.s59.tar.gz
-rw------- 1 root root 2053128 527 14:21 20210527T062148Z.s60.tar.gz

从上面的执行示例可以看到生成了存储文件如下:

  • 20210527T062148Z.meta 则是 metastore 副本数据,包含 用户名以及密码。
  • 20210527T062148Z.s58.tar.gz 为分片副本数据。
  • 20210527T062148Z.manifest 为 JSON 格式文件,用于描述搜集的备份数据内容说明。

另外,要注意的一个地方就是 backup 备份的数据是忽略 WAL 文件以及在内存中的缓存数据的

2.5.3、backup 命令的参数说明

[root@iZ2ze3gakdimayf5kglcuvZ bin]# ./influxd backup -h
Creates a backup copy of specified InfluxDB OSS database(s) and saves the files in an Enterprise-compatible
format to PATH (directory where backups are saved). 

Usage: influxd backup [options] PATH

    -portable # 以较新的InfluxDB Enterprise兼容格式生成备份文件。强烈建议所有InfluxDB OSS用户使用。
            Required to generate backup files in a portable format that can be restored to InfluxDB OSS or InfluxDB 
            Enterprise. Use unless the legacy backup is required.
    -host <host:port> # InfluxDB OSS实例的主机和端口。默认值为'127.0.0.1:8088'。远程连接所必需。例:-host 127.0.0.1:8088
            InfluxDB OSS host to back up from. Optional. Defaults to 127.0.0.1:8088.
    -db <name> # 要备份的数据库。如果未指定,则备份所有数据库。
            InfluxDB OSS database name to back up. Optional. If not specified, all databases are backed up when 
            using '-portable'.
    -rp <name> # 备份的保留策略。如果未指定,则默认为使用所有保留策略。如果指定,则需要使用 -database 指定数据库实例。
            Retention policy to use for the backup. Optional. If not specified, all retention policies are used by 
            default.
    -shard <id> # 要备份的分片的分片ID。如果指定,-retention <name> 则为必需。
            The identifier of the shard to back up. Optional. If specified, '-rp <rp_name>' is required.
    -start <2015-12-24T08:12:23Z> 
            # 设置备份数据的时间起点(RFC3339格式),不兼容-since。例:-start 2015-12-24T08:12:23Z
            Include all points starting with specified timestamp (RFC3339 format). 
            Not compatible with '-since <timestamp>'.
    -end <2015-12-24T08:12:23Z>
            # 排除指定时间戳记(RFC3339格式)之后的所有结果,不兼容-since。如果不使用-start,则将从1970-01-01开始备份所有数据。例:-end 2015-12-31T08:12:23Z
            Exclude all points after timestamp (RFC3339 format). 
            Not compatible with '-since <timestamp>'.
    -since <2015-12-24T08:12:23Z>
            # 在指定的时间戳记RFC3339格式之后执行增量备份。-start除非有旧版备份支持,否则请改用。建议使用 -start 参数。
            Create an incremental backup of all points after the timestamp (RFC3339 format). Optional. 
            Recommend using '-start <timestamp>' instead.
    -skip-errors # 跳过备份过程中发生的错误。
            Optional flag to continue backing up the remaining shards when the current shard fails to backup. 
backup: flag: help requested
root@9aaa0db75c4d:~#

2.5.4、restore 命令的参数说明

root@9aaa0db75c4d:~# ./influxd restore -h

Uses backup copies from the specified PATH to restore databases or specific shards from InfluxDB OSS
  or InfluxDB Enterprise to an InfluxDB OSS instance.

Usage: influxd restore -portable [options] PATH

Note: Restore using the '-portable' option consumes files in an improved Enterprise-compatible 
  format that includes a file manifest.

Options:
    -portable 
            Required to activate the portable restore mode. If not specified, the legacy restore mode is used.
            # 对InfluxDB OSS使用新的企业兼容备份格式。推荐使用该参数。可以将在InfluxDB Enterprise上创建的备份还原到InfluxDB OSS实例。

    -host  <host:port>    
            InfluxDB OSS host to connect to where the data will be restored. Defaults to '127.0.0.1:8088'.
            # InfluxDB OSS实例的主机和端口。默认值为'127.0.0.1:8088'。远程连接所必需。例:-host 127.0.0.1:8088

    -db    <name>
            Name of database to be restored from the backup (InfluxDB OSS or InfluxDB Enterprise)
            # 要从备份还原的数据库的名称。如果未指定,将还原所有数据库。

    -newdb <name> 
            Name of the InfluxDB OSS database into which the archived data will be imported on the target system. 
            Optional. If not given, then the value of '-db <db_name>' is used.  The new database name must be unique 
            to the target system.
            # 将在目标系统上导入存档数据的数据库的名称。如果未指定,则使用的-db 指定的数据库实例名称。新的数据库名称对于目标系统必须是唯一的。

    -rp    <name>
            Name of retention policy from the backup that will be restored. Optional. 
            Requires that '-db <db_name>' is specified.
            # 将从备份中恢复的保留策略的名称。需要-db设置。如果未指定,将使用所有保留策略。

    -newrp <name>
            Name of the retention policy to be created on the target system. Optional. Requires that '-rp <rp_name>' 
            is set. If not given, the '-rp <rp_name>' value is used.
    -shard <id>
            Identifier of the shard to be restored. Optional. If specified, then '-db <db_name>' and '-rp <rp_name>' are
            required.
            # 要在目标系统上创建的保留策略的名称。需要-rp设置。如果未指定,则使用该-rp值。

    PATH
            Path to directory containing the backup files.
            # 用来恢复数据的备份文件路径

restore: flag: help requested
root@9aaa0db75c4d:~#

2.5.5、 还原数据时,您可能会看到指定时间段之外的数据

官方文档解释: https://docs.influxdata.com/influxdb/v1.8/administration/backup_and_restore/
在这里插入图片描述

2.5.6、Admin密码

## 显示用户
show users

## 创建用户
CREATE USER "username" WITH PASSWORD 'password' 

## 创建管理员权限的用户
CREATE USER "username" WITH PASSWORD 'password' WITH ALL PRICILEGES

## 删除用户
drop user 'username'

SET PASSWORD FOR admin ='123456789'

注意:新建用户时候,用户名要用双引号,密码用单引号

开启密码登录
修改配置文件 influxdb.conf
在这里插入图片描述
然后重启influxdb服务

控制台命令

./influx -username root -password root
	## -username后边的root,是添加的用户名
	## -password后边的root,是添加的用户名的密码

2.6、InfluxDB保留策略

2.6.1、InfluxDB 数据保留策略 说明

InfluxDB的数据保留策略(RP) 用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据。

一个数据库可以有多个保留策略,但每个策略必须是独一无二的。

2.6.2、InfluxDB 数据保留策略 目的

InfluxDB本身不提供数据的删除操作,因此用来控制数据量的方式就是定义数据保留策略。

因此定义数据保留策略的目的是让InfluxDB能够知道可以丢弃哪些数据,从而更高效的处理数据。

2.6.3、InfluxDB 数据保留策略 操作

查询策略

## 查看数据库的现有策略:
>  SHOW RETENTION POLICIES ON prometheus
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true

可以看到,telegraf只有一个策略,各字段的含义如下:

  • name–名称,此示例名称为 autogen
  • duration–持续时间,0代表无限制
  • shardGroupDuration–shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,应该大于这个时间的数据在查询效率上应该有所降低。
  • replicaN–全称是REPLICATION,副本个数
  • default–是否是默认策略

新建策略

> CREATE RETENTION POLICY "2_hours" ON "prometheus" DURATION 2h REPLICATION 1 DEFAULT
> SHOW RETENTION POLICIES ON prometheus

name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        false
2_hours 2h0m0s   1h0m0s             1        true

## 通过上面的语句可以添加策略,本例在 prometheus库添加了一个2小时的策略,名字叫做 2_hours, duration为2小时,副本为1,设置为默认策略。

## 因为名为autogen 的策略不再是默认策略,因此,在查询使用default策略的表时要显式的加上策略名 “default”。

修改策略

> ALTER RETENTION POLICY "2_hours" ON "prometheus" DURATION 4h DEFAULT
> show retention POLICIES on prometheus
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        false
2_hours 4h0m0s   1h0m0s             1        true

# 可以看到,修改后的策略发生了变化。

删除策略

> show retention POLICIES on prometheus
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        false
2_hours 4h0m0s   1h0m0s             1        true
> drop retention POLICY "2_hours" ON "prometheus"
> show retention POLICIES on prometheus
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        false

##可以看到,名为2_hours的策略已经被删除了

2.7、和传统数据库对比

和传统数据库对比 influxdb在相关概念上有一定不同,具体如下:

influxdb 中的概念 传统数据库中的概念
database 数据库
measurement 数据库中的表
point 表中的一行数据

point的数据结构由时间戳(time)、标签(tags)、数据(fields)三部分组成,具体含义如下:

point 属性 含义
time 数据记录的时间,是主索引(自动生成)
tags 各种有索引的属性
fields 各种value值(没有索引的属性)

PS: 记得放行端口,prometheus :9090,influxdb:8086

三、可视化工具InfluxDBStudio

3.1、下载

链接:https://github.com/CymaticLabs/InfluxDBStudio/releases/tag/v0.2.0-beta.1

3.2、创建or编辑InfluxDB

软件虽然界面简陋,但是目前暂未发现另一款可以可视化操作InfluxDB的软件,

虽然简陋,但是还是很容易上手,简单介绍下如何使用

  • Name 名称 - 连接的名称。这是使用此连接时将看到的标签
  • Address 地址 - InfluxDB服务器的主机URI。排除协议信息。端口填写在右侧
  • Database 数据库 - 用于连接的数据库。将其留空以列出所有数据库(需要管理员权限)
  • UserName 用户名 - 用于连接的InfluxDB用户名
  • Password 密码 - 与连接一起使用的InfluxDB密码
  • Security - Use SSL 使用SSL - 连接到InfluxDB时是否使用SSL安全性(HTTPS)

在这里插入图片描述
在这里插入图片描述
单击“Test”,提示如下,证明连接成功
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_37242720/article/details/115905726