如何基于MRS HBase搭建OpenTSDB(附Storm写入OpenTSDB样例)

举报
石头剪刀布 发表于 2018/08/15 17:32:32 2018/08/15
【摘要】 1 安装OpenTSDB【简介】OpenTSDB是一个基于HBase上的实时监控信息收集和展示平台。它支持秒级数据采集metrics,使用HBase进行永久存储,可以做容量规划,并很容易的接入到现有的监控系统里。OpenTSDB可以从大规模的设备中获取相应的metrics并进行存储、索引以及服务,从而使得这些数据更容易让人理解,如web化,图形化等。本文介绍如何在MRS分析集群上搭建Open...

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

如果执行结果如下图所示,则表示安装成功:

gnuplot.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的截图
start.png

启动完成以后,可以通过“OpenTSDB的IP:4242”访问,查看是否正常工作:
1.png

步骤 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的页面上可以查看到该数据的绘制图形

graph1.png





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地址。
storm_submit.png


步骤 4     稍等一段时间后,查看OpenTSDB页面,可以看到新增了一个“city.ch.aqi”metric,绘制图形如下:

storm_write_open_tsdb.png
















【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。