Influxdb简介
InfluxDB
一个开源的时间序列数据库
InfluxDB是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及执行分析。
- 特性
内置HTTP API,所以不用再写服务端代码来启动和运行。
数据可以被标记,允许非常灵活的查询。
类似SQL的查询语言
安装和管理简单,数据输入和输出速度快
它旨在实时响应查询。这意味着point数据写入即被索引并立即可供响应时间应小于100ms的查询使用。
Influxdb保存策略
- InfluxDB 数据保留策略 说明
InfluxDB的数据保留策略(RP) 用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据。
一个数据库可以有多个保留策略,但每个策略必须是独一无二的。
- InfluxDB 数据保留策略 目的
InfluxDB本身不提供数据的删除操作,因此用来控制数据量的方式就是定义数据保留策略。
因此定义数据保留策略的目的是让InfluxDB能够知道可以丢弃哪些数据,从而更高效的处理数据。
- InfluxDB 数据保留策略 操作
- 查询策略
可以通过如下语句查看数据库的现有策略:
> SHOW RETENTION POLICIES ON a
name duration shardGroupDuration replicaN default
default 0 168h0m0s 1 true
可以看到,a只有一个策略,各字段的含义如下:
name–名称,此示例名称为 default
duration–持续时间,0代表无限制
shardGroupDuration–shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,应该大于这个时间的数据在查询效率上应该有所降低。
replicaN–全称是REPLICATION,副本个数
default–是否是默认策略
- 新建策略
> CREATE RETENTION POLICY "2_hours" ON "a" DURATION 2h REPLICATION 1 DEFAULT
> SHOW RETENTION POLICIES ON a
name duration shardGroupDuration replicaN default
default 0 168h0m0s 1 false
2_hours 2h0m0s 1h0m0s 1 true
通过上面的语句可以添加策略,本例在 a 库添加了一个2小时的策略,名字叫做 2_hours, duration为2小时,副本为1,设置为默认策略。
因为名为default的策略不再是默认策略,因此,在查询使用default策略的表时要显式的加上策略名 “default”。
> select * from "default".cpu limit 2
name: cpu
---------
time cpu host host_id usage_guest usage_guest_nice usage_idle usage_iowait usage_irq usage_nice usage_softirq usage_steal usage_system usage_user
1467884670000000000 cpu-total xxx 0 0 99.79994164175388 0 0 0.06251823446523729 0 0 0.12920435125646068 0.008335764603451727
1467884670000000000 cpu9 xxx 0 0 97.79338014069532 1.8054162487519367 0 0 0 0 0.10030090272883943 0.3009027081135398
- 修改策略
修改策略使用如下语句修改
> ALTER RETENTION POLICY "2_hours" ON "a" DURATION 4h DEFAULT
> show retention POLICIES on a
name duration shardGroupDuration replicaN default
default 0 168h0m0s 1 false
2_hours 4h0m0s 1h0m0s 1 true
可以看到,修改后的策略发生了变化。
- 删除策略
InfluxDB中策略的删除操作如下所示:
> drop retention POLICY "2_hours" ON "a"
> show retention POLICIES on a
name duration shardGroupDuration replicaN default
default 0 168h0m0s 1 false
可以看到,名为2_hours的策略已经被删除了。
- 其他说明
策略这个关键词“POLICY”在使用是应该大写,小写应该会出粗。
当一个表使用的策略不是默认策略时,在进行操作时一定要显式的指定策略名称,否则会出现错误。
安装InfluxDb
安装方式一
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.0.x86_64.rpm
sudo yum install influxdb-1.6.0.x86_64.rpm
sudo service influxdb start
安装方式二(推荐)
Red Hat和CentOS用户可以使用yum包管理器安装最新稳定版本的InfluxDB :
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
将存储库添加到yum配置后,通过运行以下命令安装并启动InfluxDB服务:
sudo yum install influxdb
sudo service influxdb start
或者,如果您的操作系统使用的是systemd(CentOS 7 +,RHEL 7+):
sudo yum install influxdb
sudo systemctl start influxdb
MAC OS X
- OS X 10.8或者更高版本的用户,可以使用Homebrew来安装InfluxDB; 一旦brew安装了,可以用下面的命令来安装InfluxDB:
brew update
brew install influxdb
#登陆后在用launchd开始运行InfluxDB之前,先跑:
ln -sfv /usr/local/opt/influxdb/*.plist ~/Library/LaunchAgents
#然后运行InfluxDB:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.influxdb.plist
#如果你不想用或是不需要launchctl,你可以直接在terminal里运行下面命令来启动InfluxDB:
influxd -config /usr/local/etc/influxdb.conf
进入influxdb
添加一个账号密码
shell>influx
Connected to http://localhost:8086 version 1.6.0
InfluxDB shell version: 1.6.0
>CREATE USER "root" WITH PASSWORD '123456' WITH ALL PRIVILEGES ##添加一个账号
#退出
>exit
#配置文件目录
/etc/influxdb/
系统具有每个配置文件设置的内部默认值。使用该influxd config命令查看默认配置设置。
本地配置文件(/etc/influxdb/influxdb.conf)中的大多数设置都被注释掉了; 所有注释掉的设置将由内部默认值确定。本地配置文件中的任何未注释的设置都会覆盖内部默认值。请注意,本地配置文件不需要包含每个配置设置。
有两种方法可以使用您的配置文件启动InfluxDB:
- 使用以下-config 选项将进程指向正确的配置文件:
influxd -config /etc/influxdb/influxdb.conf
- 将环境变量设置为INFLUXDB_CONFIG_PATH配置文件的路径并启动该过程。例如:
echo $INFLUXDB_CONFIG_PATH
/etc/influxdb/influxdb.conf
influxd
注意
influxdb字段属性如果是string类型,那么在grafana是不会显示具体值的,如果想要显示鼠标指示的地方的值,需要influxdb里的值为double类型
忘记密码
解决方案:
-
更改配置文件,设置auth-enabled = false.
-
重启influxdb。
-
用命令行登录。
-
进行用户管理:创建管理员、更改密码。。
-
更改配置文件,设置auth-enabled = true
-
重启influxdb。
-
done。