OpenTSDB使用demo及其httpAPI的保护

本文详细介绍了如何在CentOS 7环境下搭建OpenTSDB,包括准备运行环境、安装HA-hadoop、HA-HBASE、zookeeper集群,并通过Nginx实现OpenTSDB HTTP API的用户验证,确保接口安全。步骤覆盖了从安装Java到配置HDFS、YARN、HBase,再到启动OpenTSDB和设置Nginx认证,适合想在内网环境中安全使用OpenTSDB的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【目录】

【第一章】Opentsdb运行环境准备

【第二章】安装HA-hadoop集群、HA-HBASE集群、zookeeper集群

【第三章】安装openTSDB

【第四章】通过Nginx对OpenTSDB做用户验证,确保opentsdb http接口安全

 

本文提到的各种服务和操作都经过本人验证,期间的坑已经替你们踩过了,读者可以参照本文档来一步步实施。觉得有用可以收藏。

【第一章】Opentsdb运行环境准备

【操作系统】CentOS Linux release 7.2.1511 (Core)

【主机列表】

主机名                          内网IP地址

opentsdb-1-4      192.168.35.2

opentsdb-1-5      192.168.35.3

opentsdb-1-1      192.168.35.4

opentsdb-1-3      192.168.35.5

opentsdb-1-2      192.168.35.6

【系统脚本语言版本】内置的Python 2.7.5

【opentsdb要求java版本Java-1.6+】

        [root@opentsdb-1-4 ~]# yum makecache  # 更新yum源

[root@opentsdb-1-4 tony_soft]# for x in {5,1,3,2}; do ssh root@opentsdb-1-$x yum makecache; done

[root@opentsdb-1-4 tony_soft]# yum install -y java-1.8.0-openjdk  # 使用yum安装JDK-1.8

解决no jps in (/usr/local/sbin问题:yum install -y java-1.8.0-openjdk-devel.x86_64

继续为其他四个节点分别安装openjdk和jps:

[root@opentsdb-1-4 tony_soft]# for x in {5,1,3,2}; do ssh root@opentsdb-1-$x yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel.x86_64 >> /tmp/jdk_and_jps_INSTALLING.log 2>&1;java -version && jps;echo "FINISHED____ $x";done

【分别下载zookeeper-3.4.14、Hadoop-2.8.4、hbase-1.4.9】

wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.8.4/hadoop-2.8.4.tar.gz

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-1.4.9-bin.tar.gz

【配置ssh免密登录】

确保从opentsdb-1-4到其他节点能ssh免密登录,具体实施可参考博文:

https://jingyan.baidu.com/article/bea41d43b558ffb4c51be6db.html

【开发自定义批处理脚本】

脚本:

可执行文件callall 用于同时在集群所有节点执行一条命令

可执行文件send2others 用于向其他节点(除opentsdb-1-4之外的节点)传送文件

都放到/usr/local/bin里面,给一个合适的权限。

[root@opentsdb-1-4 etc]# ll -ht /usr/local/bin/ | head -n 3

total 8

-rwxr-xr-x 1 root root 278 4月  24 15:57 callall

-rwxr-xr-x 1 root root 384 4月  24 16:00 send2others

[root@opentsdb-1-4 etc]# cat /usr/local/bin/callall

#!/bin/bash

if [[ $# -lt 1 ]] ; then echo no params ; exit ; fi

cmd=$*

for h in {"opentsdb-1-4","opentsdb-1-5","opentsdb-1-1","opentsdb-1-3","opentsdb-1-2"}

do

   echo "正在$h 执行命令$cmd"

   ssh $h "$cmd"

   if [ $? -eq 0 ];then

     echo "--------命令执行成功!"

   fi

done ;

[root@opentsdb-1-4 etc]# cat /usr/local/bin/send2others

#!/bin/bash

if [[ $# -lt 1 ]] ; then echo no params ; exit ; fi

p=$1

dir=`dirname $p`

filename=`basename $p`

cd $dir

fullpath=`pwd -P .`

user=`whoami`

for h in {"opentsdb-1-5","opentsdb-1-1","opentsdb-1-3","opentsdb-1-2"}

do

   echo "正在同步文件到$h======="

   rsync -lr $p ${user}@$h:$fullpath

   if [ $? -eq 0 ];then

     echo "--------已成功同步到$h"

   fi

done ;

 

【各节点安装NTP时间同步服务】

安装、配置可参考《CentOS 7 中使用NTP进行时间同步》https://www.linuxidc.com/Linux/2015-11/124911.htm

 

【同步环境变量到其他四个节点】

创建符号链接:

         callall ln -s hadoop-2.8.4 hadoop

         callall ln -s hbase-1.4.9 hbase

         callall ln -s zookeeper-3.4.14 zookeeper

         send2others hbase && send2others zookeeper  # 同步软连接到其他节点的相应位置

         callall 'ls -al /tony_soft/'

先在/etc/profile配好JAVA_HOME、HADOOP_HOME、HBASE_HOME、ZOOKEEPER_HOME;再用send2others 同步到其他四个节点:

         cd /etc && send2others profile && callall 'source /etc/profile'

         callall echo $PATH && callall echo $HADOOP_HOME && callall echo $HBASE_HOME && callall echo $ZOOKEEPER_HOME

send2others hadoop && send2others hbase && send2others zookeeper  # 同步符号链接到其他节点

send2others hbase-1.4.9 && send2others zookeeper-3.4.14 && send2others hadoop-2.8.4   # 同步各个软件包到其他节点

 

【第二章】安装HA-hadoop集群、HA-HBASE集群、zookeeper集群

【配置HA-hadoop集群】

角色规划:

opentsdb-1-4  NameNode, QPM(zk), Hmaster, ResourceManager

opentsdb-1-5  NameNode, QPM(zk), Hmaster, ResourceManager

opentsdb-1-1  JournalNode, QPM(zk), DataNode, HRegionServer

opentsdb-1-3  JournalNode, DataNode, HRegionServer

opentsdb-1-2  JournalNode, DataNode, HRegionServer

配置静态IP(略)、关闭防火墙:

         callall service iptables stop,再callall cat /etc/selinux/config | grep SELINUX  # 确保每个主机的防火墙已关闭SELINUX=disabled

禁用Transparent Hugepage(为了提升hadoop集群性能):

配置省略, 可参考https://www.staroon.dev/2017/11/05/SetEnv/

为每个节点添加用户hadoop:

         callall groupadd hadoop && callall useradd -g hadoop hadoop

创建hdfs相关目录(name目录、jn日志目录)并赋权:

         callall 'mkdir -p /dfs/data' && callall 'chown -R hadoop:hadoop /dfs'

         for i in {1,3,2}; do ssh opentsdb-1-$i mkdir /jn_edits; done

         for i in {1,3,2}; do ssh opentsdb-1-$i chown -R hadoop:hadoop /jn_edits; done

拷贝hadoop相关命令到/usr/local/bin/目录下并赋权:

         callall 'cp /tony_soft/hadoop-2.8.4/bin/hdfs /usr/local/bin/ && chown hadoop:hadoop /usr/local/bin/hdfs'

         callall ls -lh /usr/local/bin/hdfs

修改主要配置文件:

         core-site.xml

<configuration>

<!-- 指定hdfs nameservice -->

<property>

    <name>fs.defaultFS</name>

    <value>hdfs://tony/</value>

</property>

<!-- 开启垃圾回收站功能,值为检查点被删除的分钟数,设为0表示禁用 -->

<property>

    <name>fs.trash.interval</name>

    <value>1440</value>

</property>

<!-- 指定Zookeeper地址及端口 -->

<property>

    <name>ha.zookeeper.quorum</name>

    <value>opentsdb-1-4:2181,opentsdb-1-5:2181,opentsdb-1-1:2181</value>

</property>

  <property>

      <name>dfs.namenode.name.dir</name>

      <value>file:///dfs/data</value>

      <description>namenode存放数据的目录,所有权是hadoop:hadoop</description>

  </property>

</configuration>

         hdfs-site.xml

<configuration>

<property>

    <name>dfs.nameservices</name>

    <value>tony</value>

</property>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值