KairosDB 入门教程

安装

KairosDB 需要运行在java1.6及以上版本。以及设置java环境变量。

KairosDB 下载地址:https://github.com/kairosdb/kairosdb/releases

1. 将KairosDB解压到你想位于的目录下

2. 编辑conf/kairosdb.properties文件,更改 kairosdb.service.datastore属性,决定你要使用的数据库。默认是内存H2数据库,这个比较慢。

3. 执行./kairosdb run启动KairosDB。

更改系统文件句柄限制

更改数据存储

KairosDB 后端数据存储可以有多个选择。在默认情况下KairosDB使用内存H2数据库来存储数据点数据。要更改存储方式编辑kairosdb.properties 文件修改kairosdb.service.datastore属性。

使用H2

这是默认情况下,在开发环境下,可以这么来配置。生产环境下不建议。

配置选项
kairosdb.datastore.h2.database_path H2数据库目录

删除数据库目录和重新启动KairosDB会导致数据丢失。

使用Cassandra

对Cassandra的默认配置是使用宽行。每一行设置为包含3周的数据,原因是如果你每毫秒写一个指标,3周的数据量刚刚超过10亿列。而Cassandra有一个20亿列的限制。

行的大小有点小的疑惑。当查询数据时,越多的数据位于当行上执行的效率高。这并不意味着Cassandra只能保存3周的数据,而是意味着在写入到新行前将3周的数据写入到同一行。 这个可以看看Cassandra模式。

更改read_repair_chance,这个值告诉Cassandra多久需要进行读修复。读修复默认是1,也就100%改变。推荐值为0.1,10%的改变。登录cassandra-cli执行下面的命令更改:

配置选项
kairosdb.datastore.cassandra.host_name  Cassandra 的主机名或IP
kairosdb.datastore.cassandra.port Cassandra 服务端口号
kairosdb.datastore.cassandra.replication_factor 当数据写入Cassandra时复制因子
kairosdb.datastore.cassandra.row_width 在一行里的毫秒数。默认为7257600000,也就是12周。加载数据后更改此值会导致意想不到的结果。
kairosdb.datastore.cassandra.write_delay 将数据写入到Cassandra,后台线程等待的时间。允许批量插入数据到存储。
kairosdb.datastore.cassandra.single_row_read_size 当读单行时的列数。在性能与内存之间平衡。当查询行健索引和最初多获取后的持续查询时使用。
kairosdb.datastore.cassandra.multi_row_read_size 一个查询读取初始多个get的列数。如果数据有极少的标记,该值设置大些。如果你的指标有很多标记组合低于该值,可能会遇到内存不足的问题。

使用HBase

需要手动创建表。创建表的脚本位于源码目录下./src/scripts/create_hbase_table.sh

注意:HBase目前只支持秒级别数据。

配置选项
kairosdb.datastore.hbase.timeseries_table 时间序列表名
kairosdb.datastore.hbase.uinqueids_table 唯一ID表名
kairosdb.datastore.hbase.zoo_keeper_quorum zoo keeper quorum主机名
kairosdb.datastore.hbase.zoo_keeper_base_dir
kairosdb.datastore.hbase.auto_create_metrics 自动创建指标

使用远程数据存储

将远程的KairosDB服务器作为本地的KairosDB实例的存储并将数据发送到远程。数据以JSON格式存储在目录下。可配置的后台线程将压缩数据并将数据点上传到远程KairosDB实例上。

配置选项
kairosdb.datastore.remote.data_dir 数据点目录,默认当前目录。
kairosdb.datastore.remote.remote_url 将数据发送到KairosDB 实例的URL,如: http://10.10.10.10:8080
kairosdb.datastore.remote.schedule Quartz cron schedule 上传收集数据的频率

启动和关闭服务

通过kairosdb.sh脚本来完成。

在前台启动服务:

在后台启动服务:

停止服务:

# ./kairosdb.sh stop

采集数据

简单的收集些数据。

可视化界面

KairosDB自带了一个可视化界面,不过与OpenTSDB的可视化界面对比,感觉比较糟糕。

访问地址:http://10.0.101.145:8080/index.html

cassandra

cassandra