需求说明

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

  • Jmxtrans:JMX可以对外暴露jvm内部的一些指标,但是要获取那些jvm的内部信息,就还需要自己写java程序调用jmx接口去获取数据,并按照某种格式发送到其他地方(如监控程序Graphite,Zabbix等)。这时jmxtrans就派上用场了,jmxtrans的作用是自动去jvm中获取所需要的jmx数据,并按照某种格式(json文件配置格式)输出到其他应用程序。

  • InfluxDb:InfluxDB是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及执行分析。内置HTTP API,所以不用再写服务端代码来启动和运行。数据可以被标记,允许非常灵活的查询。类似SQL的查询语言安装和管理简单,数据输入和输出速度快。它旨在实时响应查询。这意味着point数据写入即被索引并立即可供响应时间应小于100ms的查询使用。

  • Grafana:Grafana是一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源。Grafana主要特性:灵活丰富的图形化选项;可以混合多种风格;支持白天和夜间模式;多个数据源。

适用人群

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

监控套件架构图

登录网址

环境 网址
数据组测试集群 http://dev01:3000

jmxtrans的使用

配置数据源

Jmxtrans 组件会读取 /var/lib/jmxtrans 目录下所有数据源配置文件(json格式文件),实时从数据源中获取数据,解析数据后存储到 InfluxDb 中。

以下是数据源配置例子:

{
"servers":[
{
"port":"10102",
"host":"192.168.20.11",
"queries":[
{
"obj":"Hadoop:service=HBase,name=JvmMetrics",
"attr":[
"GcCount"
],
"resultAlias":"GcCount",
"outputWriters":[
{
"@class":"com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
"url":"http://192.168.20.10:8086/",
"username":"admin",
"password":"111111",
"database":"hbaseJmx",
"tags" : {"JVM" : "GcCount"}
}
]
}
]
}
]
}

数据项说明:

名称 描述 类型
servers 数据源配置 数组
port 接收jmx的json数据的端口 字符串
host 接收jmx的json数据的IP地址 字符串
queries 解析json的规则 数组
obj http://192.168.20.10:60010/jmx?qry=xxx 中的xxx 字符串
attr 需要存储的指标项字段,该字段名是数据目标表的字段名 数组
resultAlias InfluxDb 中的表名 字符串
outputWriters 数据目的地( InfluxDb ) 数组
@class 数据目的地( InfluxDb )的类 字符串
url 数据目的地( InfluxDb )的url 字符串
username InfluxDb登录名 字符串
password InfluxDb密码 字符串
database InfluxDb数据库名(需要预先创好) 字符串
tags 避免指标项在 InfluxDb 表中所对应的字段重名的情况 json

启动配置项

启动脚本

/usr/share/jmxtrans/bin/jmxtrans.sh start

配置项修改

sudo vim /usr/share/jmxtrans/bin/jmxtrans.sh

SECONDS_BETWEEN_RUNS=${SECONDS_BETWEEN_RUNS:-"60"} #数据获取间隔,秒级
HARDKILL_THRESHOLD=${HARDKILL_THRESHOLD:-60}

InfluxDb的使用

InfluxDb原先有web界面,但是这个web管理界面在1.1以后的版本中被删除。

启动脚本

启动脚本

sudo service influxdb start

停止脚本

sudo service influxdb stop

启动influxDb shell

influx

shell脚本

查询语句高度类似于SQL语句,

  1. 查询数据库

    show databases;
  2. 跳转数据库

    use hbaseJmx;
  3. 创建数据库

    create databse test;
  4. 查看表

    show measurements;
  5. 查询表

    select * from test limit 1;

Grafana的使用

登陆界面

http://dev01:3000

首页



数据源配置

图表展示配置

所有的图表都是在看板里配置的,先添加一个看板用来展示。

Graph配置

新建Graph

新建一个Graph并对界面进行说明

配置Graph
  1. 界面描述

  1. 配置展示数据

  1. 配置SQL

配置图的展示规则

Table配置

新建Table

配置SQL

配置Table的展示规则
  1. Time series to rows 根据时间展示行

  1. Time seried to columns 根据时间展示列

  2. Time series aggregation 根据时间做聚合展示

  3. 对列配置规则

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

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

    需求说明 编写背景 此手册的基础在于对<jmxtrans + influxdb + granafa 监控套件使用手册>的熟悉和使用.本手册仅介绍以下几项: OpenTSDB 的配置安装 对 ...

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

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

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

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

  4. Grafana+Influxdb+Telegraf监控mysql

    Grafana+Influxdb+Telegraf监控mysql 一.安装 1.1安装Grafana+influxdb+telegraf 1.2启动服务,添加开机启动 1.3查看grafana界面 二 ...

  5. Jmeter + Grafana + InfluxDB 性能测试监控

    阅读目录 1. 安装InfluxDB 2. 安装Grafana 3. 配置Jmeter 序章 前几天在群里看到大神们在讨论Jmeter + InfluxDB + Grafana监控.说起来Jmeter ...

  6. [转]Jmeter + Grafana + InfluxDB 性能测试监控

    https://www.cnblogs.com/yyhh/p/5990228.html Jmeter + Grafana + InfluxDB 性能测试监控 效果不错

  7. 搭建Jmeter + Grafana + InfluxDB性能测试监控环境

    背景 Jmeter原生的实时监控每半分钟收集一次数据,只能在Linux控制台查看日志输出,界面看起来不直观,图表报告只能等压测结束后才能生成.如下图为jmeter在Linux下运行的实时日志: 那么如 ...

  8. 使用Telegraf + Influxdb + Grafana 监控SQLserver服务器的运行状况

    使用Telegraf + Influxdb + Grafana 监控SQLserver服务器的运行状况 前言 本文在Debian9下采用Docker的方式安装Telegraf + Influxdb + ...

  9. 基于Docker 部署Jmeter + Grafana + InfluxDB 性能测试监控配置(亲测可用)

    工具介绍: InfluxDB:是一款用Go语言编写的开源分布式时序.事件和指标数据库,无需外部依赖.该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, lo ...

随机推荐

  1. 列出bug的几种状态

    1.New:(新的) 当某个“bug”被发现的时候(第一次),测试人员需要与项目负责人沟通以确认发现的的确是一个bug,如果被确认是一个bug,就将其记录下来,并将bug的状态设为New. 2.Ass ...

  2. DAX/PowerBI系列 - 关于时间系列 - 如何用脚本生成时间维度 (Generate TIME Dimension)

    DAX/PowerBI系列 - 关于时间系列 - 如何用脚本生成时间维度 (Generate TIME Dimension) 难度: ★☆☆☆☆(1星) 适用范围: ★★★★★(5星) 这个时间系列想 ...

  3. 稀疏矩阵三元组快速转置(转poklau123写的很清楚)

    关于稀疏矩阵的快速转置法,首先得明白其是通过对三元表进行转置.如果误以为是对矩阵进行转置,毫无疑问就算你想破脑袋也想不出个所以然,别陷入死胡同了! 对于一个三元表,行为i,列为j,值为v.需将其i与j ...

  4. Python 东方财富网-股市行情数据抓取

    东方财富网 股市行情数据抓取: http://quote.eastmoney.com/center/gridlist.html#hs_a_board 请求数据未入库处理,其中数据只存入数据文本,未做存 ...

  5. Ubuntu分区挂载

    创建主分区: 25G    主分区    空间起始位置    Ext4日志文件系统    / (ps:安装主要放这了,原因不明) 创建swap分区: 8192MB    逻辑分区        空间起 ...

  6. Jquery实现对select的操作

    select实现对文本框的显示和隐藏 /** * 通过select的值实现对文本框的显示和隐藏 * #id为一个select控件 * .obj为一个文本框 */ function initSelect ...

  7. java 语言多线程可见性(synchronized 和 volatile 学习)

    共享变量可见性实现的原理 java 语言层面支持的可见性实现方式: synchronized volatile 1. synchronized 的两条规定: 1 线程解锁前,必须把共享变量的最新值刷新 ...

  8. 给定一个字符串,根据字符出现频率排序--Java实现

    题目描述: 给定一个字符串,请将字符串里的字符按照出现的频率降序排列. 示例 1: 输入:"tree" 输出:"eert" 解释:'e'出现两次,'r'和't' ...

  9. Nginx如何配置https证书?

    #把80端口请求跳转到443端口 server { listen 80; server_name 域名; return 301 https://$http_host$request_uri; } se ...

  10. Linux inode 详解

    操作系统的文件数据除了实际内容之外,通常含有非常多的属性,例如Linux操作系统的文件权限与文件属性.文件系统通常会将这两部分内容分别存放在inode和block中. inode 和 block 概述 ...