安装
KairosDB 需要运行在java1.6及以上版本。以及设置java环境变量。
KairosDB 下载地址:https://github.com/kairosdb/kairosdb/releases文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
1. 将KairosDB解压到你想位于的目录下文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
2. 编辑conf/kairosdb.properties文件,更改 kairosdb.service.datastore属性,决定你要使用的数据库。默认是内存H2数据库,这个比较慢。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
3. 执行./kairosdb run启动KairosDB。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
更改系统文件句柄限制
# vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536
更改数据存储
KairosDB 后端数据存储可以有多个选择。在默认情况下KairosDB使用内存H2数据库来存储数据点数据。要更改存储方式编辑kairosdb.properties 文件修改kairosdb.service.datastore属性。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
使用H2
kairosdb.service.datastore=org.kairosdb.datastore.h2.H2Module
这是默认情况下,在开发环境下,可以这么来配置。生产环境下不建议。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
配置选项
kairosdb.datastore.h2.database_path | H2数据库目录 |
删除数据库目录和重新启动KairosDB会导致数据丢失。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
使用Cassandra
kairosdb.service.datastore=org.kairosdb.datastore.cassandra.CassandraModule
对Cassandra的默认配置是使用宽行。每一行设置为包含3周的数据,原因是如果你每毫秒写一个指标,3周的数据量刚刚超过10亿列。而Cassandra有一个20亿列的限制。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
行的大小有点小的疑惑。当查询数据时,越多的数据位于当行上执行的效率高。这并不意味着Cassandra只能保存3周的数据,而是意味着在写入到新行前将3周的数据写入到同一行。 这个可以看看Cassandra模式。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
更改read_repair_chance,这个值告诉Cassandra多久需要进行读修复。读修复默认是1,也就100%改变。推荐值为0.1,10%的改变。登录cassandra-cli执行下面的命令更改:文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
>use kairosdb; >update column family data_points with read_repair_chance = 0.1; >update column family row_key_index with read_repair_chance = 0.1; >update column family string_index with read_repair_chance = 0.1;
配置选项
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
kairosdb.service.datastore=net.opentsdb.kairosdb.HBaseModule
需要手动创建表。创建表的脚本位于源码目录下./src/scripts/create_hbase_table.sh文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
注意:HBase目前只支持秒级别数据。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
配置选项
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.service.datastore=org.kairosdb.datastore.remote.RemoteModule
将远程的KairosDB服务器作为本地的KairosDB实例的存储并将数据发送到远程。数据以JSON格式存储在目录下。可配置的后台线程将压缩数据并将数据点上传到远程KairosDB实例上。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-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脚本来完成。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
在前台启动服务:文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
# ./kairosdb.sh run
在后台启动服务:文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
# ./kairosdb.sh start
停止服务:文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
# ./kairosdb.sh stop文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
采集数据
简单的收集些数据。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
#!/bin/bash set -e while true; do awk -v now=$(($(date +%s%N)/1000000)) -v host='www.ttlsa.com' \ '{ print "put proc.loadavg.1m " now " " $1 " host=" host; print "put proc.loadavg.5m " now " " $2 " host=" host; print "put proc.loadavg.15m " now " " $3 " host=" host }' /proc/loadavg sleep 1 done | nc -w 30 10.0.101.145 4242
可视化界面
KairosDB自带了一个可视化界面,不过与OpenTSDB的可视化界面对比,感觉比较糟糕。文章源自运维生存时间-https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
访问地址:http://10.0.101.145:8080/index.html

4F
可以认为是时序数据库啊,不过KairosDB底层存储是基于H2、cassandra、hbase的,是为用户提供一个操作底层存储的接口。
3F
KairosDB is a fast distributed scalable time series database written on top of Cassandra.
Not a database?!
2F
kairosdb 不是数据库,它的底层存储是基于H2、cassandra、hbase的。 国内用的比较少。
1F
最近也在看时序数据库,对kairosdb还不太了解。请问这个数据库现在有哪家公司在用吗?国内国外的都可以