如何基于MRS HBase搭建OpenTSDB(附Storm写入OpenTSDB样例)
1 安装OpenTSDB
【简介】
OpenTSDB是一个基于HBase上的实时监控信息收集和展示平台。它支持秒级数据采集metrics,使用HBase进行永久存储,可以做容量规划,并很容易的接入到现有的监控系统里。OpenTSDB可以从大规模的设备中获取相应的metrics并进行存储、索引以及服务,从而使得这些数据更容易让人理解,如web化,图形化等。
本文介绍如何在MRS分析集群上搭建OpenTSDB服务,并使用MRS流式集群的Storm服务写入数据到OpenTSDB中。
【前提条件】
已创建MRS分析集群
【操作步骤】
步骤 1 需要先确定一个节点来安装OpenTSDB,我这里直接使用MRS集群中的Master1节点,所以需要给Master1节点绑定一个EIP,并开放安全组。
步骤 2 执行以下命令安装gnuplot:
yum -y install gnuplot
步骤 3 执行“gnuplot”,然后输入以下命令
set term png
如果执行结果如下图所示,则表示安装成功:
步骤 4 从https://github.com/OpenTSDB/opentsdb/releases/download/v2.3.0/opentsdb-2.3.0.rpm下载OpenTSDB的rpm包,然后上传到节点上,执行以下命令安装:
rpm -i opentsdb-2.3.0.rpm
安装完成以后,有以下目录或文件需要特别关注:
路径或文件 说明 /etc/opentsdb/opentsdb.conf OpenTsdb配置文件 /tmp/opentsdb 临时文件目录 /usr/share/opentsdb/bin 执行脚本 /usr/share/opentsdb/lib Java jar包 /usr/share/opentsdb/static 静态页面文件 /var/log/opentsdb 日志文件
步骤 5 在HBase中创建表,执行以下命令启动HBase客户端
source /opt/client/bigdata_env hbase shell
然后执行以下命令创建表:
create "tsdb-uid",{NAME => "id", COMPRESSION => "NONE", BLOOMFILTER => "ROW"},{NAME => "name", COMPRESSION => "NONE", BLOOMFILTER => "ROW"} create "tsdb", {NAME => "t", VERSIONS => 1, COMPRESSION => "NONE", BLOOMFILTER => "ROW"} create "tsdb-tree", {NAME => "t", VERSIONS => 1, COMPRESSION => "NONE", BLOOMFILTER => "ROW"} create "tsdb-meta", {NAME => "name", COMPRESSION => "NONE", BLOOMFILTER => "ROW"}
步骤 6 修改“/etc/opentsdb/opentsdb.conf”配置文件,需要修改以下两个配置
tsd.storage.hbase.zk_quorum = MRS集群 Zookeeper节点ip:2181 tsd.core.auto_create_metrics = true
如果MRS集群开启了Kerberos认证,则需要添加以后配置:
hbase.security.auth.enable=true hbase.security.authentication=kerberos hbase.kerberos.regionserver.principal=HBase服务的principal hbase.sasl.clientconfig=Client
其中“HBase服务的principal”需要替换成实际的值,如“hbase/hadoop.32ac2329_d6e9_47cb_ba94_123044b48578.com@32AC2329_D6E9_47CB_BA94_123044B48578.COM”
同时需要将OpenTSDB默认带的Zookeeper jar包换成MRS的Zookeeperjar包:
rm -rf /usr/share/opentsdb/lib/zookeeper*.jar cp /opt/Bigdata/MRS/FusionInsight-HBase-1.3.1.0302/hbase/lib/zookeeper-3.5.1-mrs-1.7.0.jar /usr/share/opentsdb/lib/
步骤 7 如果MRS集群未启用kerberos,执行以下命令启动OpenTSDB
tsdb tsd --config=/etc/opentsdb/opentsdb.conf
如果MRS集群开启了Kerberos认证,则需要执行以下步骤7.1-7.3:
7.1. 执行以下命令,将服务端的keytab放到OpenTSDB的配置目录下
mkdir /etc/opentsdb/conf/ cp /opt/Bigdata/MRS/etc/1_11_HMaster/hbase.keytab /etc/opentsdb/conf/ 注意: /opt/Bigdata/MRS/etc/1_11_HMaster/hbase.keytab 在两个master节点上,如果不是在master节点安装OpenTsdb,需要手工scp到对应的节点上。
7.2. 将以下内容写入到“/etc/opentsdb/conf/jaas.conf”文件中
Client { com.sun.security.auth.module.Krb5LoginModule required useKeyTab=true keyTab="/etc/opentsdb/conf/hbase.keytab" principal="HBase服务的principal" useTicketCache=false storeKey=true debug=true; };
其中“HBase服务的principal”需要替换成实际的值,如“hbase/hadoop.32ac2329_d6e9_47cb_ba94_123044b48578.com@32AC2329_D6E9_47CB_BA94_123044B48578.COM”
7.3. 执行以下命令启动OpenTSDB
export JVMARGS=-Djava.security.auth.login.config=/etc/opentsdb/conf/jaas.conf tsdb tsd --config=/etc/opentsdb/opentsdb.conf
以下是启动启用Kerberos的OpenTSDB的截图
启动完成以后,可以通过“OpenTSDB的IP:4242”访问,查看是否正常工作:
步骤 8 使用以下命令启动一个脚本,往本地的OpenTSDB中持续的写入数据
#!/bin/bash set -e while true; do awk -v now=`date +%s` -v host=`hostname` \ '{ print "put proc.loadavg.1m " now " " $1" host=" host;}' /proc/loadavg sleep 15 done | nc -w 30 localhost 4242
步骤 9 等待一段时间后,在OpenTSDB的页面上可以查看到该数据的绘制图形
OpenTSDB目前没有任何鉴权,启动以后任何能访问该网络的用户都可以访问OpenTSDB的页面和API,请注意通过防火墙或者安全组进行隔离。
2 使用Storm写入数据
【前提条件】
1. 已创建MRS分析集群和MRS流式集群,并且两个集群在同一个VPC网段内,网络畅通;
2. 已安装OpenTSDB。
【操作步骤】
步骤 1 从https://public-mrs.obs-website.cn-north-1.myhwclouds.com/storm-opentsdb-examples-1.6.x.zip下载Storm写入OpenTSDB的样例代码。
步骤 2 查看华为云的开发指南https://support.huaweicloud.com/devg-mrs/mrs_06_0002.html,使用mvn命令编译该样例代码。
步骤 3 将生成的样例jar包上传到流式集群的master2节点上,执行以下命令提交该拓扑到storm上执行
source /opt/client/bigdata_env storm jar storm-examples-1.6.0.jar com.huawei.storm.example.opentsdb.SimpleOpenTsdbTopo opentsdb_topo_new http://OpenTSDB的IP地址:4242/
其中“OpenTSDB的IP地址”需要替换成实际的IP地址。
步骤 4 稍等一段时间后,查看OpenTSDB页面,可以看到新增了一个“city.ch.aqi”metric,绘制图形如下:
- 点赞
- 收藏
- 关注作者
评论(0)