influxdb

  • 启动

  window 

双击influxd.exe,启动服务
双击influx.exe,启动客户端
  • 配置文件
reporting-disabled
该选项用于上报influxdb的使用信息给InfluxData公司,默认值为false
bind-address
绑定地址以用于RPC服务以进行备份和还原,默认配置是127.0.0.1:8088

[meta]控制存储有关InfluxDB群集的元数据的Raft共识组的参数

dir

存储元数据/ raft数据库的目录,默认值:/var/lib/influxdb/meta
 
retention-autocreate
用于控制默认存储策略,数据库创建时,会自动生成autogen的存储策略,默认值:true
 
logging-enabled
 
为元服务打印日志消息,默认值:true
 
[data] 控制InfluxDB的实际分片数据的生存位置以及它从WAL中刷新的方式。 “dir”可能需要更改为适合您系统的位置,但WAL设置是高级配置。 默认值应适用于大多数系统
dir
 
最终数据(TSM文件)存储目录,默认值:/var/lib/influxdb/data
 
wal-dir
预写日志存储目录,默认值:/var/lib/influxdb/wal
wal-fsync-delay
写入在fsyncing之前等待的时间。 持续时间大于0可用于批量处理多个fsync调用。 
这对于较慢的磁盘或看到WAL写入争用时很有用。 每次写入WAL时值为0s fsyncs。
对于非SSD磁盘,建议使用0-100ms范围内的值
index-version
用于新分片的分片索引的类型。 默认值是在启动时重新创建的内存中索引。 值“tsi1”将使用支持更高的基于磁盘的索引基数数据集
 
trace-logging-enabled
 
是否开启跟踪(trace)日志,默认值:false
 
query-log-enabled
 
是否开启tsm引擎查询日志,默认值: true
 
validate-keys
 
验证传入的写入以确保密钥仅具有有效的unicode字符。 此设置将产生很小的开销,因为必须检查每个密钥,默认值false
 
cache-max-memory-size
 
用于限定shard最大值,大于该值时会拒绝写入,默认值:1GB
 
cache-snapshot-memory-size
 
用于设置快照大小,大于该值时数据会刷新到tsm文件,默认值:25MB
 
cache-snapshot-write-cold-duration
tsm1引擎 snapshot(快照)写盘延迟,默认值:10m
compact-full-write-cold-duration
tsm文件在压缩前可以存储的最大时间,默认值:4h
max-concurrent-compactions
可以一次运行的最大并发完全和级别压缩数。 值为0会导致运行时使用50%运行时.GOMAXPROCS(0)。 任何大于0的数字都会限制对该值的压缩。 此设置不适用于缓存快照,默认值:0
compact-throughput
是我们允许TSM压缩写入磁盘的速率限制(以字节/秒为单位)。 请注意,短脉冲串允许以可能更大的值发生,由Compact-Throughput-Burst设置,默认值:48m
 
compact-throughput-burst
 
是我们允许TSM压缩写入磁盘的速率限制,以每秒字节数为单位,默认值:48m
 
max-index-log-file-size
 
索引预写日志文件压缩到索引文件中时的阈值(以字节为单位)。 
较小的大小将导致日志文件更快地压缩,并导致较低的堆使用量,但代价是写入吞吐量。
更高的大小将更少压缩,在内存中存储更多系列,并提供更高的写入吞吐量。
有效大小的后缀为k,m或g(不区分大小写,1024 = 1k)。没有大小后缀的值以字节为单位,默认值:1m。
 
max-series-per-database
 
限制数据库的级数,该值为0时取消限制,默认值:1000000
 
max-values-per-tag
一个tag最大的value数,0取消限制,默认值:100000
tsm-use-madv-willneed
如果为true,则将针对TSM文件向内核提供mmap建议值MADV_WILLNEED。 已发现此设置在某些内核上存在问题,默认值:false。 
在某些情况下,它可能会帮助磁盘速度较慢的用户
[coordinator]:控制群集服务配置
write-timeout
写操作超时时间,默认值: 10s
max-concurrent-queries
最大并发查询数,0无限制,默认值: 0
 
query-timeout
 
查询操作超时时间,0无限制,默认值:0s
 
log-queries-after
 
慢查询超时时间,0无限制,默认值:0s
 
max-select-point
 
select语句可以处理的最大点数(points),0无限制,默认值:0
 
max-select-series
 
select语句可以处理的最大级数(series),0无限制,默认值:0
 
max-select-buckets
select语句可以处理的最大"GROUP BY time()"的时间周期,0无限制,默认值:0
[retention]: 旧数据的保留策略
enabled
是否启用该模块,默认值 : true
check-interval
检查时间间隔,默认值 :“30m”
 
[shard-precreation]:分区预创建
  
enabled
 
是否启用该模块,默认值 : true
 
check-interval
检查时间间隔,默认值 :“10m”
advance-period
预创建分区的最大提前时间,默认值 :30m
[monitor]:这一部分控制InfluxDB自有的监控系统。 默认情况下,InfluxDB把这些数据写入_internal 数据库,如果这个库不存在则自动创建。
_internal 库默认的retention策略是7天,如果你想使用一个自己的retention策略,需要自己创建
store-database
默认数据库:"_internal"
 
store-interval
统计间隔,默认值:“10s”
[http]:influxdb的http接口配置
enabled
是否启用该模块,默认值 :true
flux-enabled
是否启用流查询端点,默认值 :false
 
 
bind-address
绑定地址,默认值:":8086"
 
auth-enabled
 
是否开启认证,默认值:false
 
realm
 
发出基本身份验证质询时发送回的默认域,默认值: “InfluxDB”
 
log-enabled
是否开启http请求日志,默认值:true
suppress-write-log
在启用日志时是否应禁止HTTP写入请求日志,默认值:false
access-log-path
启用HTTP请求日志记录时,此选项指定应写入日志条目的路径
如果未指定,则默认为写入stderr,它将HTTP日志与内部InfluxDB日志记录混合。如果涌入无法访问指定路径,它将记录错误并回退到将请求日志写入stderr
 
access-log-status-filters
 
应记录哪些请求的过滤器。 每个过滤器的格式为NNN,NNX或NXX,其中N是数字,X是任意数字的通配符。 
要过滤所有5xx响应,请使用字符串5xx。 如果使用多个过滤器,则只需要匹配一个过滤器。 默认情况下没有过滤器会导致每个请求都被打印。
 
write-tracing
是否开启写操作日志,如果置成true,每一次写操作都会打日志,默认值:false
pprof-enabled
是否开启pprof,此端点用于故障排除和监视,默认值:true
debug-pprof-enabled
在启动时立即启用绑定到localhost:6060的pprof端点。这只需要调试启动问题。默认值:false
 
https-enabled
 
是否开启https,默认值:false
 
https-certificate
设置https证书路径,默认值:"/etc/ssl/influxdb.pem"
https-private-key
设置https私钥,无默认值
shared-secret
用于JWT签名的共享密钥,无默认值
 
max-row-limit
 
配置查询返回最大行数,默认值:10000
 
max-connection-limit
配置最大连接数,超出此限制的新连接将被删除,0无限制,默认值:0
unix-socket-enabled
通过unix域套接字启用http服务,默认值:false
bind-socket
unix-socket路径,默认值:"/var/run/influxdb.sock"
 
max-body-size
 
客户端请求正文的最大大小(以字节为单位), 将此值设置为0将禁用该限制。默认值:25000000
 
max-concurrent-write-limit
并发处理的最大写入次数,将此设置为0将禁用该限制。默认值:0
max-enqueued-write-limit
排队等待处理的最大写入次数。将此设置为0将禁用该限制。默认值:0
enqueued-write-timeout
写入等待队列中写入的最长持续时间。将此设置为0或将max-concurrent-write-limit设置为0将禁用该限制。默认值:0
 
[logging]:控制记录器如何将日志发送到输出
  
format
确定用于日志的日志编码器。 可用选项包括auto,logfmt和json。 
如果输出终端是TTY,则auto将使用更加用户友好的输出格式,但格式不易于机器读取。 当输出是非TTY时,auto将使用logfmt。默认值:“auto”
level
确定将发出的日志级别。 可用的级别包括错误,警告,信息和调试。 将发出等于或高于指定级别的日志。默认值:“info”
suppress-logo
禁止在程序启动时打印的徽标输出。 如果STDOUT不是TTY,则始终禁止使用徽标。默认值:false
[subscriber]:控制Kapacitor接受数据的配置
enabled
是否启用该模块,默认值 :true
http-timeout
http超时时间,默认值:“30s”
insecure-skip-verify
是否允许不安全的证书,当测试自己签发的证书时比较有用。默认值: false
 
ca-certs
 
设置CA证书,无默认值
 
write-concurrency
设置并发数目,默认值:40
write-buffer-size
设置buffer大小,默认值:1000
[[graphite]]:graphite相关配置
enabled
是否启用该模块,默认值 :false
database
数据库名称,默认值:“graphite”
retention-policy
存储策略,无默认值
 
bind-address
 
绑定地址,默认值:":2003"
 
protocol
 
协议,默认值:“tcp”
 
consistency-level
 
一致性等级,默认值:“one”
 
batch-size
批量size,默认值:5000
batch-pending
配置在内存中等待的batch数,默认值:10
batch-timeout
超时时间,默认值:“1s”
udp-read-buffer
udp读取buffer的大小,0表示使用操作系统提供的值,如果超过操作系统的默认配置则会出错。 该配置的默认值:0
 
separator
 
多个measurement间的连接符,默认值: “.”
 
tags
 
将添加到所有指标的默认标记。 这些可以在模板级别或从度量标准中提取的标签中覆盖,[“region=us-east”, “zone=1c”]
 
templates
每个模板行都需要模板模式。 它可以在模板之前有一个可选的过滤器,并用空格分隔。 
它还可以在模板后面添加可选的额外标签。 多个标签应该用逗号分隔,并且没有类似于行协议格式的空格。
只能有一个默认模板。templates = [".app env.service.resource.measurement", # Default template "server.",]
[[collectd]]:控制一个或多个收集数据的侦听器
enabled
是否启用该模块,默认值 :false
bind-address
绑定地址,默认值: “:25826”
 
database
 
数据库名称,默认值:“collectd”
 
retention-policy
 
存储策略,无默认值
 
batch-size
 
这些下一行控制批处理的工作方式。 您应该已启用此功能,否则您可能会丢失指标或性能不佳。 
如果有很多人进入,批处理将缓冲内存中的点。如果这么多点被缓冲,则刷新,默认值:5000
 
batch-pending
内存中可能挂起的批次数,默认值:10
batch-timeout
即使我们没有达到缓冲限制,也要经常冲洗至少这个,默认值:“10s”
read-buffer
udp读取buffer的大小,0表示使用操作系统提供的值,如果超过操作系统的默认配置则会出错。默认值:0
 
parse-multivalue-plugin
 
多值插件可以通过两种方式处理。 默认值:“split”
“split”将解析并将多值插件数据存储到单独的测量中
“join”将解析并将多值插件存储为单个多值测量。
“split”是与以前版本的Influxdb向后兼容的默认行为。
 
[[opentsdb]]:opentsdb配置
  
enabled
 
是否启用该模块,默认值:false
 
bind-address
绑定地址,默认值:":4242"
database
默认数据库:“opentsdb”
retention-policy
存储策略,无默认值
consistency-level
一致性级别,默认值:“one”
 
tls-enabled
 
是否开启tls,默认值:false
 
certificate
 
证书路径,默认值:"/etc/ssl/influxdb.pem"
 
log-point-errors
出错时是否记录日志,默认值:true
batch-size
这些下一行控制批处理的工作方式。 您应该已启用此功能,否则您可能会丢失指标或性能不佳。 仅通过telnet协议接收的指标进行批处理。如果这么多点被缓冲,请刷新。默认值:1000
batch-pending
内存中可能挂起的批次数,默认值:5
batch-timeout
即使我们没有达到缓冲限制,也要经常冲洗至少这个,默认值:“1s”
[[udp]]:udp配置

enabled
 
是否启用该模块,默认值:false
 
bind-address
 
绑定地址,默认值:":8089"
 
database
数据库名称,默认值:“udp”
retention-policy
存储策略,无默认值
precision
时间精度("" or “n”, “u”, “ms”, “s”, “m”, “h”),无默认值
batch-size
接下来的行控制批处理的工作原理。 您应该已启用此功能,否则您可能会丢失指标或性能不佳。 如果有很多进入,批处理将缓冲内存中的点。如果这么多点被缓冲,则刷新,默认值:5000
 
batch-pending
 
如果这么多点被缓冲,请刷新,默认值:10
 
batch-timeout
 
即使我们没有达到缓冲限制,也会经常冲洗至少这个,默认值:“1s”
 
read-buffer
udp读取buffer的大小,0表示使用操作系统提供的值,如果超过操作系统的默认配置则会出错。 默认值:0
[continuous_queries]:CQs配置
enabled
是否开启CQs,默认值:true
log-enabled
是否开启日志,默认值:true
 
uery-stats-enabled
 
控制是否将查询记录到自我监视数据存储。默认值:false
 
run-interval
 
检查连续查询是否需要运行的时间间隔,默认值:“1s”
 
[tls]:InfluxDB中TLS的全局配置设置
ciphers
确定可用的密码套件集。 有关可用密码的列表,请参阅https://golang.org/pkg/crypto/tls/#pkg-constants,这取决于Go的版本(使用查询SHOW DIAGNOSTICS查看用于构建InfluxDB的Go版本)。
如果未指定,则使用Go的crypto / tls包中的默认设置,默认值:ciphers =[“TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305”,“TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256”,]。
min-version
将协商的tls协议的最低版本。 如果未指定,则使用Go的crypto / tls包中的默认设置,默认值:“tls1.2”
max-version
将协商的tls协议的最大版本。 如果未指定,则使用Go的crypto / tls包中的默认设置,默认值:“tls1.2”

 

  • 命令

数据库与表的操作

#创建数据库
create database "db_name"
 
#显示所有的数据库
show databases
 
#删除数据库
drop database "db_name"
 
#使用数据库
use db_name
 
#显示该数据库中所有的表
show measurements
 
#创建表,直接在插入数据的时候指定表名(不用先创建表)
insert table_name,host=127.0.0.1,monitor_name=test count=1

#查询表数据
select * from table_name order by time desc
 
#删除表
drop measurement "measurement_name"

SHOW FIELD KEYS --查看当前数据库所有表的字段
SHOW series from pay --查看key数据
SHOW TAG KEYS FROM "pay" --查看key中tag key值
SHOW TAG VALUES FROM "pay" WITH KEY = "merId" --查看key中tag 指定key值对应的值
SHOW TAG VALUES FROM cpu WITH KEY IN ("region", "host") WHERE service = ‘redis‘
DROP SERIES FROM <measurement_name[,measurement_name]> WHERE <tag_key>=‘<tag_value>‘ --删除key
SHOW CONTINUOUS QUERIES   --查看连续执行命令
SHOW QUERIES  --查看最后执行命令
KILL QUERY <qid> --结束命令
SHOW RETENTION POLICIES ON mydb  --查看保留数据
查询数据
SELECT * FROM /.*/ LIMIT 1  --查询当前数据库下所有表的第一行记录
select * from pay  order by time desc limit 2
select * from  db_name."POLICIES name".measurement_name --指定查询数据库下数据保留中的表数据 POLICIES name数据保留
删除数据
delete from "query" --删除表所有数据,则表就不存在了
drop MEASUREMENT "query"   --删除表(注意会把数据保留删除使用delete不会)
DELETE FROM cpu
DELETE FROM cpu WHERE time < ‘2000-01-01T00:00:00Z‘
DELETE WHERE time < ‘2000-01-01T00:00:00Z‘
DROP DATABASE “testDB” --删除数据库
DROP RETENTION POLICY "dbbak" ON mydb --删除保留数据为dbbak数据
DROP SERIES from pay where tag_key=‘‘ --删除key中的tag

SHOW SHARDS  --查看数据存储文件
DROP SHARD 1
SHOW SHARD GROUPS
SHOW SUBSCRIPTIONS
  • 保存策略

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

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

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

查询数据库策略

show retention policies on "db_name"

influxdb

 

 

 

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

name--名称,此示例名称为monitor

duration--持续时间,0代表无限制,168h代表7天

shardGroupDuration--shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,应该大于这个时间的数据在查询效率上应该有所降低。

replicaN--全称是REPLICATION,副本个数

default--是否是默认策略

新建策略

##新建策略
create retention policy "rp_name" on "db_name" duration 3w replication 1 default

##修改策略
alter retention policy "rp_name" on "db_name" duration 30d default

##删除策略
drop retention policy "rp_name" on "db_name" 

       rp_name:策略名

      db_name:具体的数据库名

      3w:保存3周,3周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期)

     replication 1:副本个数,一般为1就可以了

     default:设置为默认策略

如果一个数据库中有多个存储策略,需要注意查询的写法

influxdb

 

 influxdb

 

 

 

  • 用户管理

#显示用户
show users
 
#创建用户
create user "username" with password ‘password‘
 
#创建管理员权限用户
create user "username" with password ‘password‘ with all privileges
 
#删除用户
drop user "username"

 

influxdb

上一篇:js 生成随机数


下一篇:sqlilab less19-less22