关闭

OpenTSDB安装与使用

标签: hbaseopentsdb
3019人阅读 评论(0) 收藏 举报
分类:

1. 安装环境

1. 系统版本

('centos', '6.4', 'Final')

2. 内核版本

Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

3. 依赖安装

1. java安装

1.yum install java-1.6.0-openjdk-devel.x86_64

2. java环境变量设置  

在~/.bash_profile文件中添加以下行。

# java
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

2 gnuplot安装

yum install libotf

yum install gnuplot-common.x86_64

yum install gnuplot.x86_64

 

2. hbase 安装

1.  源码下载

wget http://mirror.bit.edu.cn/apache/hbase/hbase-0.94.27/hbase-0.94.27.tar.gz

2. 配置修改

1.修改hbase-env.sh中的如下属性

export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/

export HBASE_MANAGES_ZK=true

 

2.单机配置修改hbase-site.xml:

<configuration>

<property>

        <name>hbase.rootdir</name>

        <value>/root/guochunyang/hbase_fs/</value>

</property>

</configuration>

3. 启动hbase

./bin/start-hbase.sh

4. 关闭hbase

./bin/stop-hbase.sh

3. opentsdb 安装

1. 下载源码

git clone https://github.com/OpenTSDB/opentsdb.git

2.编译

./build.sh

3. 建表

env COMPRESSION=NONE HBASE_HOME=../hbase-0.94.27 src/create_table.sh

4. 配置文件 opentsdb.conf

[root@10.77.51.10 opentsdb]# cat /etc/opentsdb.conf 
# --------- NETWORK ----------
# The TCP port TSD should use for communications
# *** REQUIRED ***
tsd.network.port = 4242

# The IPv4 network address to bind to, defaults to all addresses
# tsd.network.bind = 0.0.0.0

# Enables Nagel's algorithm to reduce the number of packets sent over the
# network, default is True
#tsd.network.tcpnodelay = true

# Determines whether or not to send keepalive packets to peers, default 
# is True
#tsd.network.keepalive = true

# Determines if the same socket should be used for new connections, default 
# is True
#tsd.network.reuseaddress = true

# Number of worker threads dedicated to Netty, defaults to # of CPUs * 2
#tsd.network.worker_threads = 8

# Whether or not to use NIO or tradditional blocking IO, defaults to True
#tsd.network.async_io = true

# ----------- HTTP -----------
# The location of static files for the HTTP GUI interface.
# *** REQUIRED ***
tsd.http.staticroot = build/staticroot

# Where TSD should write it's cache files to
# *** REQUIRED ***
tsd.http.cachedir = /tmp/tsd

# --------- CORE ----------
# Whether or not to automatically create UIDs for new metric types, default
# is False
#tsd.core.auto_create_metrics = false
tsd.core.auto_create_metrics = true

# --------- STORAGE ----------
# Whether or not to enable data compaction in HBase, default is True
#tsd.storage.enable_compaction = true

# How often, in milliseconds, to flush the data point queue to storage, 
# default is 1,000
# tsd.storage.flush_interval = 1000

# Name of the HBase table where data points are stored, default is "tsdb"
#tsd.storage.hbase.data_table = tsdb

# Name of the HBase table where UID information is stored, default is "tsdb-uid"
#tsd.storage.hbase.uid_table = tsdb-uid

# Path under which the znode for the -ROOT- region is located, default is "/hbase"
#tsd.storage.hbase.zk_basedir = /hbase

# A comma separated list of Zookeeper hosts to connect to, with or without 
# port specifiers, default is "localhost"
#tsd.storage.hbase.zk_quorum = localhost

 

5.启动

带参数模式

./build/tsdb tsd --port=4242 --staticroot=build/staticroot --cachedir="$tsdtmp" --zkquorum=127.0.0.1:2181

使用配置文件

./build/tsdb tsd

 

6. 创建指标

1. 手动创建指标

[root@10.77.51.10 opentsdb]# ./build/tsdb mkmetric mysql.bytes_received mysql.bytes_sent
metrics mysql.bytes_received: [0, 0, 1]
metrics mysql.bytes_sent: [0, 0, 2]

2.自动创建指标

需要修改配置文件中tsd.core.auto_create_metrics = true,默认为false。

需要向tsdb的监听端口发送消息。比如:

put tsd.connectionmgr.connections 1443170747 6 type=open host=localhost.localdomain

3.向OpenTSDB添加数据

(1)telnet或者nc

语法:

put <metric> <timestamp> <value> <tagk1=tagv1[ tagk2=tagv2 ...tagkN=tagvN]>

例如:

put sys.cpu.user 1356998400 42.5 host=webserver01 cpu=0

[root@10.77.51.10 ~]# telnet 127.0.0.1 4242

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

put proc.test.telnet 1443426262 12 telnet_host=localhost

 

[root@10.77.51.10 ~]# nc 127.0.0.1 4242

put proc.test.nc 1443426262 3 nc_host=localhost

(2)HTTP API

curl -H "Content-Type: application/json" -X POST  http://127.0.0.1:4242/api/put/ -d '{"metic":"proc.test.curlpost","timestamp":1443427323,"value":18,"tags":{"host":"web01","dc":"lga"}}'

或者通过以下python脚本

[root@10.77.51.10 opentsdb_test]# cat test_post.py 
#!/usr/bin/env python
#  -*- coding:utf-8 -*-

import httplib
import urllib
import urllib2
import json
import time
import random

def my_post():
    base_url = '10.77.51.10'
    headerdata =  {'Content-type':'application/json'}
    time_cur = int(time.time())
    va = random.randint(1,100)
    values = {
        "metric": "proc.test.httppost",
        "timestamp": time_cur,
        "value": va,
        "tags": {
           "host": "web01",
           "dc": "lga"
        }
    }
    jdata = json.dumps(values)
    conn = httplib.HTTPConnection(base_url,4242)
    conn.request(method="POST",url="/api/put/",body=jdata,headers=headerdata)
    res = conn.getresponse()
    res.read()
    # get response /api/put?details
    conn.request(method="POST",url="/api/put?details",body=jdata,headers=headerdata)
    res = conn.getresponse()
    return res.read()

while(True):
    try:
        resp = my_post()
        print(resp)
        time.sleep(1)
    except Exception as e:
        exit(0)
    except KeyboardInterrupt as e:
        exit(0)
[root@10.77.51.10 opentsdb_test]# python test_post.py 
{"errors":[],"failed":0,"success":1}
{"errors":[],"failed":0,"success":1}
{"errors":[],"failed":0,"success":1}
{"errors":[],"failed":0,"success":1}
^C[root@10.77.51.10 opentsdb_test]# 

参考http://opentsdb.net/docs/build/html/api_http/put.html

(3)批量导入

参考http://opentsdb.net/docs/build/html/user_guide/cli/import.html

      

3. tcollector安装

1. 下载源码

 https://github.com/OpenTSDB/tcollector

2. 启动

[root@10.77.51.10 tcollector]# pwd

/root/guochunyang/tcollector

[root@10.77.51.10 tcollector]# python tcollector.py

4. opentsdb_test

1. 启动opentsdb,配置支持tsd.core.auto_create_metrics = true,启动hbase,启动tcollector。用浏览器打开,打开后如图

2. 测试

Metric:test1.test1.test1

测试程序:

[root@10.77.51.10 opentsdb_test]# cat test2.py

import subprocess

import time

import logging

import random

 

logging.basicConfig(level=logging.DEBUG,filename="test.log")

def put_data(metric,value,**kw):

        t = int(time.time())

        cmd = "echo put %s %d %d host=test1 tag_k1=tag_v1 | nc -w 30 127.0.0.1 4242" %(metric,t,value)

        subp = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE)

 

random.seed()

while(True):

        i = random.randint(1,100)

        time.sleep(1)

        put_data("test1.test1.test1",i)

        i += 1

监控结果如图:

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

openTSDB的分布式集群的安装和使用

1  安装提前             确保安装了jdk           &...
  • wyl6019
  • wyl6019
  • 2017-04-14 14:54
  • 2112

TCollector基于opentsdb的采集器

TCollector 一、开发语言 二、设计框架 三、代码理解 四、效果展示 一、开发语言 语言特性:高级语言,解释型语言,动态...
  • lzqs201314
  • lzqs201314
  • 2016-07-07 15:54
  • 4143

openTSDB安装步骤

openTSDB安装步骤openTSDB是一种开源的时间序列数据库,由于最近刚接触这个数据库,这个数据库的安装步骤如下所示: 安装所需环境及软件 linux操作系统 java Hbase gnuplo...
  • xin122508
  • xin122508
  • 2017-06-27 15:38
  • 226

OpenTSDB安装,配置,数据存储介绍

1.什么是OpenTSDB 2.OpenTSDB是用什么语言编写和构建的? 3.如何安装OpenTSDB? 1. OpenTSDB介绍 OpenTSDB用HBase存储所有的时序(无须采样)来...
  • u012036736
  • u012036736
  • 2017-10-26 15:12
  • 295

OpenTSDB 使用时 推荐配置

OpenTSDB所有的配置都在 link. 这里列出来的配置基本都有默认值,但是有些需要根据环境和性能做出改变,具体如下表: 配置项 默认值 描述 修改值 tsd.core.prel...
  • mt0803
  • mt0803
  • 2016-01-05 17:45
  • 2805

OpenTSDB 安装 启动 数据存储

1、安装启动zookeeper并启动 zkServer.sh start2、安装hadoop 参考文章:http://www.powerxing.com/install-hadoop-in-cent...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2017-05-28 13:00
  • 531

opentsdb-2.0.1 RPM包的安装以及测试

介绍 开源监控系统OpenTSDB,用hbase存储所有的时序(无须 采样)来构建一个分布式、可伸缩的时间序列数据库。它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很...
  • sun7545526
  • sun7545526
  • 2015-03-03 17:37
  • 2305

OpenTSDB配置安装

Getting Started This page will walk you through the setup process to get OpenTSDB running. It assume...
  • shaojie668
  • shaojie668
  • 2013-04-10 13:21
  • 780

OpenTSDB-2.0.0安装布署

1、介绍 OpenTSDB是一个架构在Hbase系统之上的实时监控信息收集和展示平台。它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系统里。OpenTS...
  • bingjie1217
  • bingjie1217
  • 2013-10-09 11:36
  • 6952

OpenTSDB研究---安装过程

1、  准备一台有liunx的虚拟机 2、  安装jdk 没安装jdk前在shell中java –version 是有版本显示的,是因为默认带着opensdk,但是网上查这个还是有区别的,所以还是要下...
  • qq234568970
  • qq234568970
  • 2015-12-25 08:39
  • 221
    个人资料
    • 访问:1803597次
    • 积分:20659
    • 等级:
    • 排名:第457名
    • 原创:609篇
    • 转载:788篇
    • 译文:4篇
    • 评论:73条
    技术交流
    域名出售
    www.importnew.cn
    www.jinrimiantiao.com
    文章分类
    最新评论