前面我们使用了默认的H2(基于java的轻量级的关系型数据库)数据库作为kairosdb的存储,这个是默认设置,主要用于开发阶段,在实际的生产环境中,我们会采用cassandra或者HBase,HBase的存储的时间粒度是秒,而cassandra的时间粒度是毫秒。使用kairosdb作为监控,存储一般选择cassandra。
接下来我们将kairosdb的存储修改成cassandra。
步骤一:
下载最新的cassandra的包,我使用的是apache-cassandra-2.2.6-bin.tar.gz这个包,官网下载地址:http://cassandra.apache.org/download/,目前最新的是3.5;
或者在虚拟机中使用命令:
# wget http://www.apache.org/dyn/closer.lua/cassandra/2.2.6/apache-cassandra-2.2.6-bin.tar.gz
解压
# tar zxvf apache-cassandra-2.2.6-bin.tar.gz
进入
# cd apache-cassandra-2.2.6/conf
编辑cassandra.yaml
# vim cassandra.yaml中的部分值
seed_provider:
# Addresses of hosts that are deemed contact points.
# Cassandra nodes use this list of hosts to find each other and learn
# the topology of the ring. You must change this if you are running
# multiple nodes!
- class_name: org.apache.cassandra.locator.SimpleSeedProvider
parameters:
# seeds is actually a comma-delimited list of addresses.
# Ex: "<ip1>,<ip2>,<ip3>"
- seeds: "10.20.0.10"
listen_address: 10.20.0.10
start_native_transport: true
native_transport_port: 9042
start_rpc: true #建议目前打开,因为在kairosdb中需要配置这个地址,如果不打开,会报错说XXXX:9160打不开
rpc_address: 10.20.0.10
以上是需要注意的地方IP换成你的虚拟机的IP地址即可。一般保持默认值就行了。
保存即可
进入
# cd apache-cassandra-2.2.6/bin
使用下面命令打开服务
# ./cassandra -f
-f 表示在前台显示服务开启的整个过程。
显示如下内容标识启动成功
INFO 17:27:54 Starting listening for CQL clients on /10.20.0.10:9042...
INFO 17:27:54 Binding thrift service to /10.20.0.10:9160
INFO 17:27:54 Listening for thrift clients...
注:按ctr + c键就可以停止服务。
步骤二:
安装好cassandra之后,下面我们需要去修改kairosdb中的配置文件。
打开kairosdb的目录,进入conf文件夹中
# cd kairosdb/conf
编辑 kairosdb.properties中部分属性值
# vim kairosdb.properties
#kairosdb.service.datastore=org.kairosdb.datastore.h2.H2Module
kairosdb.datastore.concurrentQueryThreads=5
kairosdb.service.datastore=org.kairosdb.datastore.cassandra.CassandraModule
#kairosdb.service.datastore=org.kairosdb.datastore.remote.RemoteModule
#Cassandra properties
#host list is in the form> 1.1.1.1:9160,1.1.1.2:9160
kairosdb.datastore.cassandra.host_list=10.20.0.10:9160
kairosdb.datastore.cassandra.keyspace=kairosdb
kairosdb.datastore.cassandra.replication_factor=1
kairosdb.datastore.cassandra.write_delay=1000
kairosdb.datastore.cassandra.write_buffer_max_size=500000
#When reading one row read in 10k
kairosdb.datastore.cassandra.single_row_read_size=10240
保存即可。
进入
# kairosdb/bin
执行下面命令
# ./kairosdb.sh run
使用run是在前台显示服务执行过程,使用start是在后台执行,使用stop是关闭服务。
看到下面的结果就表示启动成功。
13:43:20.298 [main] INFO [Main.java:306] - ------------------------------------------
13:43:20.298 [main] INFO [Main.java:307] - KairosDB service started
13:43:20.298 [main] INFO [Main.java:308] - -----------------------------------------
如何是第一次启动kairosdb的服务,cassandra的启动界面上会看到,他在初始化建立三张表,分别为:data_points,row_key_index,string_index。
这三张表就为kairosdb生成的表。
注解:就是kairosdb中配置文件中kairosdb.datastore.cassandra.host_list=10.20.0.10:9160 指定了数据表由谁来建立以及数据存储提交给哪个服务。
以上就是整个过程了。