KairosDB 入门教程

默北 KairosDB420,8911字数 2962阅读9分52秒阅读模式

安装

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

cassandra

cassandra

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 09/11/2014 01:00:09
  • 转载请务必保留本文链接:https://www.ttlsa.com/kairosdb/getting-started-with-kairosdb/
  • cassandra
  • HBase
  • KairosDB
  • OpenTSDB
  • 时间序列数据库
评论  4  访客  4
    • 运维生存时间
      运维生存时间 9

      可以认为是时序数据库啊,不过KairosDB底层存储是基于H2、cassandra、hbase的,是为用户提供一个操作底层存储的接口。

      • 匿名
        匿名 9

        KairosDB is a fast distributed scalable time series database written on top of Cassandra.

        Not a database?!

        • 默北
          默北

          kairosdb 不是数据库,它的底层存储是基于H2、cassandra、hbase的。 国内用的比较少。

          • 匿名
            匿名 0

            最近也在看时序数据库,对kairosdb还不太了解。请问这个数据库现在有哪家公司在用吗?国内国外的都可以

          评论已关闭!