zoukankan      html  css  js  c++  java
  • 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配置

    数据源配置

    面板配置

  • 相关阅读:
    一个理科直男如何看《鱿鱼游戏》
    这个开源组织里的项目都是精品(第二弹)
    Python_关于python2的encode(编码)和decode(解码)的使用
    Python学习笔记
    解决E: Could not get lock /var/lib/dpkg/lock
    Ubuntu系统python3版本设置问题
    xshell连接虚拟机linux系统失败问题
    linux菜鸟笔记
    Python小白学习之基础知识(个人笔记)
    Python小白学习之如何添加类属性和类方法,修改类私有属性
  • 原文地址:https://www.cnblogs.com/fengzzi/p/10033796.html
Copyright © 2011-2022 走看看