PS:为了处理监控数据,我们需要一个时间序列数据库,OpenTSDB是前驱,但是是基于Hbase实现的,后来有了一个基于Cassandra的实现,就是KairosDB,模型上设计很有意思,依赖Cassandra的Column Family实现的大宽表来存储时间序列的数据(最多20亿列哦),细节找个时间再讲。
反正我们就是选取了KairosDB,既可以借鉴Cassandra的能力,又可以不用自己实现时间序列模型,何乐不为。
PPS:KariosDB并非DB,仅仅是基于某种datastore的时间序列存储和查询引擎,还自带了一个小型的图标引擎,并非真正的TSDB。
下面讲安装,安装KariosDB。
1.下载安装包,很简单,下载tar包
参考地址:https://github.com/kairosdb/kairosdb/releases
2.安装,tar包丢Linux上解压即可
3.配置
(1)到/conf目录下,找到kairosdb.properties,修改datastore为cassandra
#kairosdb.service.datastore=org.kairosdb.datastore.h2.H2Module
kairosdb.datastore.concurrentQueryThreads=5
kairosdb.service.datastore=org.kairosdb.datastore.cassandra.CassandraModule
(2)设置cassandra的连接方式
kairosdb.datastore.cassandra.host_list=192.168.1.107:9160
kairosdb.datastore.cassandra.keyspace=kairosdb
PS:由用户名密码就加上,我这里做demo没考虑安全性
4.启动:到/bin目录下,直接跑./kairosdb.sh run,最后会看到这样一句话,就OK了
08:26:42.257 [main] INFO [AbstractConnector.java:338] - Started SelectChannelConnector@0.0.0.0:8080
08:26:42.257 [main] INFO [Main.java:342] - ------------------------------------------
08:26:42.257 [main] INFO [Main.java:343] - KairosDB service started
08:26:42.257 [main] INFO [Main.java:344] - ------------------------------------------
5.设置kairosdb在cassandra上的参数优化
PS:因为我这里用的cassandra 3.10,所有部分语法与官方的不一致
[zhengyan@zhengyan_01 bin]$ ./cqlsh 192.168.1.107 9042
Connected to zhengyan at 192.168.1.107:9042.
[cqlsh 5.0.1 | Cassandra 3.10 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh> use kairosdb;
------------------------------------------
cqlsh:kairosdb> alter table data_points with read_repair_chance = 0.1;
cqlsh:kairosdb> alter table row_key_index with read_repair_chance = 0.1;
cqlsh:kairosdb> alter table string_index with read_repair_chance = 0.1;
PPS:这三个参数是说,cassandra有多少概率进行read repair,默认100%,这里就是10%,意思是,不repair没关系,反正是监控数据,慢慢修。
参考文档:http://kairosdb.github.io/docs/build/html/GettingStarted.html
6.打开web页面,一探究竟
http://localhost:8080