需求说明

编写背景

此手册的基础在于对《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配置

数据源配置

面板配置

jmxtrans + OpenTSDB + granafa 监控套件使用手册的更多相关文章

  1. jmxtrans + influxdb + granafa 监控套件使用手册

    需求说明 随着大数据组件的日益完善,需要随时随地保持各个组件的日常运行,对各个组件的监控势在必行.为了减少运维部门的负担,通过筛选,我们使用 jmxtrans + influxdb + granafa ...

  2. Kafka使用jmxtrans+influxdb+grafana监控JMX指标

    最近在搞Kafka集群监控,之前也是看了网上的很多资料.之所以使用jmxtrans+influxdb+grafana是因为界面酷炫,可以定制化,缺点是不能操作Kafka集群,可能需要配合Kafka M ...

  3. 使用prometheus + granafa 监控mysql主从

    若主从同步数据库未同步默认的mysql表,则也需要在从库上创建mysql用户mysqld_exporter用来收集监控数据 mysqld_exporter安装部署 这里采取的是mysqld_expor ...

  4. 小米open-falcon监控系统接入手册

    一.新项目接入 0.官方文档: https://book.open-falcon.org/zh_0_2/usage/getting-started.html 1.联系运维人员确定可以使用监控系统: ( ...

  5. prometheus+alertmanager+granafa监控总结,安装基于docker-compose(长期更新)

    最近自己个人尝试在使用prometheus+grafana监控工作业务上的指标, 但是报警功能还没有实际用上,但是感觉是很好用,写下一些啃prometheus官网文档并且自己用到的一些配置的总结,后续 ...

  6. 基于jmxtrans+influxdb+grafana实现对canal监控

    最近在调研canal数据同步系统的监控方案,网上关于jmxtrans+influxdb+grafana监控kafka的文档很多,没有监控canal的.通过几天的摸索,大致明白了来龙去脉.监控流程基本是 ...

  7. hbase 监控指标项

    名词解释 JMX:Java Management Extensions,用于用于Java程序扩展监控和管理项 GC:Garbage Collection,垃圾收集,垃圾回收机制 指标项来源 主机名 u ...

  8. Hbase监控指标项

    名词解释 JMX:Java Management Extensions,用于用于Java程序扩展监控和管理项 GC:Garbage Collection,垃圾收集,垃圾回收机制 指标项来源 主机名 u ...

  9. Zabbix监控笔记

    了解zabbix,有必要了聊一下监控系统相关内容 企业中常用的开源监视系统目前有 cacti.Nagios.Open-Falcon.zabbix.prometheus等 使用监控系统的目的在于 /1. ...

随机推荐

  1. python_0基础开始_day07

    第七节 1,基础数据类型补充 str: print(str.capitalize()) —— 首字母大写 print(str.title()) —— 每个单词的首字母大写 print(str.swap ...

  2. python爬虫简介

    一.什么是网络爬虫? 网络爬虫,是一种按照一定规则,自动的抓取万维网信息的程序或者脚本. 二.python网络爬虫, 需要用到的第三方包 requests和BeautifulSoup4 pip ins ...

  3. calc,support,media各自的含义及用法

    @support:用于检测浏览器是否支持CSS某个属性,即条件判断,如果支持某个属性,可以写一套样式,如果不支持某属性,提供另一套样式作为替补. calc():用于计算动态函数值,支持“+”,“-”, ...

  4. C语言字符串函数总结

    原文链接 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include <s ...

  5. PID应用详解

    PID应用详解 阅读目录 1.PID介绍及原理2.常用四轴的两种PID算法讲解(单环PID.串级PID)3.常用PID算法的C语言实现5.常用的四轴飞行器PID算法 PID介绍及原理 PID介绍 在工 ...

  6. GO语言语法入门

    引言 Go Go语言是谷歌2009发布的编程语言,它是一种并发的.带垃圾回收的.快速编译的语言. 它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性.它也打算成为现代的,支持网 ...

  7. asyncio动态添加任务

    asyncio.run_forever()下动态添加任务 方法一.asyncio.run_coroutine_threadsafe(coroutine, loop) 方法二.asyncio.call_ ...

  8. flask实现文件的上传

    文件上传过程中,一定要进行文件大小的校验,如果用户上传文件过大,比如:100GB,所以一直在处理这个请求,别的请求进来就无法处理了,所以要限制上传文件的大小. flask中文件上传大小的校验 flas ...

  9. zabbix的简单操作(proxy代理分布式监控)

    分布式监控 作用:分担压力,减轻负载,多机房监控 通过zabbix proxy的搭建,zabbix server可以远程从proxy获取到数据,这里的环境相当于zabbix server具有一个公网i ...

  10. JAVA排序算法(一)冒泡排序、选择排序

    /* 冒泡排序 * * 相邻的元素,两两比较.如果第一个比第二个大,就交换他们两个. 大的后移 * 对每一对相邻元素做同样的工作,这样第一轮结束后,最大值在最后一个. */ public static ...