目前我们需要收集一些用户在站点上的行为数据,又不想投入精力研发一整套的体系,于是找到了influxdb。
influxdb内置了HTTP API,免去了编写接入代码的繁琐,并带有数据查询和展示的组件,非常适合。
安装过程略去不提,参考官方文档
目录
- Influxdb
- Chronograf
- 例子
Influxdb
概念
一条influxdb的记录的结构是这样的
1 | <measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp] |
类比于RDMBS
influxdb | rdbms |
---|---|
unix-nano-timestamp | primary key |
measurement | table |
tag | indexed column |
fields | column |
HTTP API
influxdb的所有操作都可以通过HTTP API来完成
写数据1
curl -i -XPOST 'http://localhost:8086/write?db=mydb' --data-binary 'cpu_load_short,host=server01,region=us-west value=0.64 1434055562000000000'
Authentication & Authorization
通过HTTP API可以进行DDL操作,我们需要有一些权限机制来保证安全.
- 修改配置文件/etc/influxdb/influxdb.conf并重启
1 | [http] |
- 创建用户
创建超级用户admin
1 | CREATE USER admin WITH PASSWORD '123456' WITH ALL PRIVILEGES |
创建普通用户
1 | CREATE USER reader WITH PASSWORD '123456' |
Rentention Policy
时序数据的量可能会非常大,需要定义保存数据的策略
1 | CREATE RETENTION POLICY "one_day_only" ON "mydb" DURATION 1d REPLICATION 1 DEFAULT |
Chronograf
官方有一个叫TICK的技术栈推荐,但对于我们的场景,只要结合其中的IC就可以了,即influxdb和chronograf.
安装启动过程不提
在使用它之前,需要先学习一下基本的influxdb查询语法
这样,就可以轻松的在Chronograf中查询数据了,如果需要额外的数据,可以让业务方导出csv自行分析。