ITPub博客

首页 > 数据库 > > KairosDB 安装与入门

KairosDB 安装与入门

作者:LCR_ 时间:2022-04-24 16:35:32 0 删除 编辑

安装

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。

更改系统文件句柄限制

1
2
3
# vim /etc/security/limits.conf
*      soft     nofile      65536
*      hard     nofile      65536

更改数据存储

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

使用H2

1
kairosdb . service . datastore = org . kairosdb . datastore . h2 . H2Module

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

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

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

使用Cassandra

1
kairosdb . service . datastore = org . kairosdb . datastore . cassandra . CassandraModule

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

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

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

1
2
3
4
> 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.portCassandra 服务端口号
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

1
kairosdb . service . datastore = net . opentsdb . kairosdb . HBaseModule

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

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

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

使用远程数据存储

1
kairosdb . service . datastore = org . kairosdb . datastore . remote . RemoteModule

将远程的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.scheduleQuartz cron schedule 上传收集数据的频率

启动和关闭服务

通过kairosdb.sh脚本来完成。

在前台启动服务:

1
# ./kairosdb.sh run

在后台启动服务:

1
# ./kairosdb.sh start

停止服务:

# ./kairosdb.sh stop

采集数据

简单的收集些数据。

1
2
3
4
5
6
7
8
9
#!/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的可视化界面对比,感觉比较糟糕。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000523/viewspace-3168470/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: Graphite介绍
请登录后发表评论 登录
全部评论

注册时间:2022-02-22

  • 博文量
    1402
  • 访问量
    15111