jmxtrans + OpenTSDB + granafa 监控套件使用手册

需求说明

编写背景

此手册的基础在于对《jmxtrans + influxdb + granafa 监控套件使用手册》的熟悉和使用。本手册仅介绍以下几项:

  • OpenTSDB 的配置安装
  • 对 json 文件的配置使其可以将数据导入OpenTSDB
  • grafana 对OpenTSDB 数据源的看板配置

适用人群

  • 管理层人员
  • 数据部门人员
  • 运维部门人员
  • 其他想要学习此类知识的人员

配置安装 OpenTSDB

简介

OpenTSDB ,可以认为是一个时系列数据(库),它基于HBase存储数据,充分发挥了HBase的分布式列存储特性,支持数百万每秒的读写,它的特点就是容易扩展,灵活的tag机制。

下载安装包

opentsdb-2.3.0.tar.gz

下载安装包并上传到服务器中

编译安装

  1. 解压

    tar -zxvf opentsdb-2.3.0.tar.gz -C /opt/others

  2. 第一步编译

    cd /opt/others
    mv opentsdb-2.3.0 opentsdb
    cd opentsdb
    sudo ./build.sh
    

    编译中会出现以下错误:

     ......
     javac: file not found: ./src/net/opentsdb/query/expression/parser/*.java
     Usage: javac <options> <source files>
     use -help for a list of possible options
     Makefile:1695: recipe for target '.javac-stamp' failed
     make[1]: *** [.javac-stamp] Error 2
     make[1]: Leaving directory '/home/bischoff_s/opentsdb-2.3.0/build'
     Makefile:1282: recipe for target 'all' failed
     make: *** [all] Error 2
    

    解决方法:

     cd opentsdb
     mkdir build #这个文件夹有可能会已经存在
     cp -r third_party ./build
     sudo ./build.sh
    
  3. 第二步编译

    cd build
    sudo make install #普通用户必须sudo权限运行,否则会报权限错误
    
  4. 运行建表脚本,建立 hbase 表

    sudo env HBASE_HOME=/opt/bigdata/hbase /opt/others/opentsdb/src/create_table.sh

  5. 修改配置文件

    vim /opt/others/opentsdb/src/opentsdb.conf
       tsd.network.port = 4242
       tsd.http.staticroot = build/staticroot #相对目录,取决于opentsdb.conf所在目录,
       tsd.http.cachedir = //opt/tmp/opentsdb #缓存目录
       tsd.core.auto_create_metrics = true
       tsd.storage.hbase.zk_quorum = dev01:2181,dev02:2181,dev03:2181 #zookeeper地址
    
  6. 启动 会一直有输出,可以将其后台运行并无输出

    tsdb tsd --config=src/opentsdb.conf

测试运行

查看版本号

dev@dev01:/var/lib/jmxtrans$ tsdb version
net.opentsdb.tools 2.3.0 built at revision  (MODIFIED)
Built on 2018/11/05 07:55:18 +0000 by dev@dev01:/opt/others/opentsdb

按照官网的 metrics 进行测试

  1. 创建一个sys.cpu.user

    tsdb mkmetric sys.cpu.user

  2. 使用4242端口进行数据输入

    # telnet localhost 4242
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    put sys.cpu.user 1356998400 42.5 host=webserver01 cpu=0
    put sys.cpu.user 1356999400 42.7 host=webserver01 cpu=0
    
  3. 读取数据

    3.1 命令行获取

    # tsdb query 1356998400 1356999400 sum sys.cpu.user
    sys.cpu.user 1356998400000 42.500000 {host=webserver01, cpu=0}
    sys.cpu.user 1356999400000 42.700001 {host=webserver01, cpu=0}
    

    3.2 web api获取

    http://dev01:4242/api/query?start=1356998400&m=sum:sys.cpu.user

    [{"metric":"sys.cpu.user","tags":{"cpu":"0"},"aggregateTags":["host"],"dps":{"1356998400":42.5,"1356999400":42.70000076293945,"1541406000":40,"1541406060":50}}]
    

jmxtrans配置OpenTSDB

示例json

{
  "servers" : [ {
    "port" : "10101",
    "host" : "192.168.20.10",
    "queries" : [ {
      "outputWriters" : [ {
        "@class" : "com.googlecode.jmxtrans.model.output.OpenTSDBWriterFactory",
          "port" : 4242,
          "host" : "192.168.20.10",
          "mergeTypeNamesTags" : true,
          "addHostnameTag" : true,
          "flushStrategy" : "always",
          "typeNames": []
      } ],
      "obj" : "java.lang:type=OperatingSystem",
      "resultAlias": "OperatingSystem",
      "attr" : [
           "FreePhysicalMemorySize",
           "TotalPhysicalMemorySize",
           "SystemCpuLoad",
           "TotalSwapSpaceSize",
           "FreeSwapSpaceSize",
           "ProcessCpuLoad"
        ]
    }],
    "numQueryThreads" : 6
  } ]
}

数据项说明:2.2版本以后的OpenTSDB中一定要配置tag

名称 描述 类型
servers 数据源配置 数组
port 接收jmx的json数据的端口 字符串
host 接收jmx的json数据的IP地址 字符串
queries 解析json的规则 数组
outputWriters 数据目的地( OpenTSDB) 数组
@class 数据目的地( OpenTSDB)的类 字符串
port OpenTSDB 的 opentsdb.conf 文件中的端口号 数值
host 安装 OpenTSDB 的机器IP 字符串
mergeTypeNamesTags 将即将要存储的字段名存储为tag(?猜测?) boolean值
addHostnameTag 如果没有指定标签,put到hbase的api将无法正常工作 boolean值
flushStrategy 默认是“never”,所以metrics实际上不会发送到opentsdb 字符串
numQueryThreads 总共对6个指标项进行监控 数值

grafana配置

数据源配置

面板配置

posted @ 2018-11-28 18:20  枫子_dan  阅读(688)  评论(0编辑  收藏  举报