jmxtrans + influxdb + granafa 监控套件使用手册
需求说明
随着大数据组件的日益完善,需要随时随地保持各个组件的日常运行,对各个组件的监控势在必行。为了减少运维部门的负担,通过筛选,我们使用 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语句,
- 查询数据库
show databases; - 跳转数据库
use hbaseJmx; - 创建数据库
create databse test; - 查看表
show measurements; - 查询表
select * from test limit 1;
Grafana的使用
登陆界面
首页


数据源配置



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


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


配置Graph
- 界面描述

- 配置展示数据

- 配置SQL

配置图的展示规则



Table配置
新建Table



配置SQL

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

Time seried to columns 根据时间展示列

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

对列配置规则

jmxtrans + influxdb + granafa 监控套件使用手册的更多相关文章
- jmxtrans + OpenTSDB + granafa 监控套件使用手册
需求说明 编写背景 此手册的基础在于对<jmxtrans + influxdb + granafa 监控套件使用手册>的熟悉和使用.本手册仅介绍以下几项: OpenTSDB 的配置安装 对 ...
- Kafka使用jmxtrans+influxdb+grafana监控JMX指标
最近在搞Kafka集群监控,之前也是看了网上的很多资料.之所以使用jmxtrans+influxdb+grafana是因为界面酷炫,可以定制化,缺点是不能操作Kafka集群,可能需要配合Kafka M ...
- 基于jmxtrans+influxdb+grafana实现对canal监控
最近在调研canal数据同步系统的监控方案,网上关于jmxtrans+influxdb+grafana监控kafka的文档很多,没有监控canal的.通过几天的摸索,大致明白了来龙去脉.监控流程基本是 ...
- Grafana+Influxdb+Telegraf监控mysql
Grafana+Influxdb+Telegraf监控mysql 一.安装 1.1安装Grafana+influxdb+telegraf 1.2启动服务,添加开机启动 1.3查看grafana界面 二 ...
- Jmeter + Grafana + InfluxDB 性能测试监控
阅读目录 1. 安装InfluxDB 2. 安装Grafana 3. 配置Jmeter 序章 前几天在群里看到大神们在讨论Jmeter + InfluxDB + Grafana监控.说起来Jmeter ...
- [转]Jmeter + Grafana + InfluxDB 性能测试监控
https://www.cnblogs.com/yyhh/p/5990228.html Jmeter + Grafana + InfluxDB 性能测试监控 效果不错
- 搭建Jmeter + Grafana + InfluxDB性能测试监控环境
背景 Jmeter原生的实时监控每半分钟收集一次数据,只能在Linux控制台查看日志输出,界面看起来不直观,图表报告只能等压测结束后才能生成.如下图为jmeter在Linux下运行的实时日志: 那么如 ...
- 使用Telegraf + Influxdb + Grafana 监控SQLserver服务器的运行状况
使用Telegraf + Influxdb + Grafana 监控SQLserver服务器的运行状况 前言 本文在Debian9下采用Docker的方式安装Telegraf + Influxdb + ...
- 基于Docker 部署Jmeter + Grafana + InfluxDB 性能测试监控配置(亲测可用)
工具介绍: InfluxDB:是一款用Go语言编写的开源分布式时序.事件和指标数据库,无需外部依赖.该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, lo ...
随机推荐
- python网络编程-Json序列化功能扩展-软件开发架构-OSI七层协议-TCP-01
面向对象补充知识点(面向对象的应用) 扩展json序列化所支持的数据类型(分析源码) import json from datetime import datetime, date # ------- ...
- Java8 parallelStream浅析
JAVA8中引入了lamda表达式和Stream接口.其丰富的API及强大的表达能力极大的简化代码,提升了效率,同时还通过parallelStream提供并发操作的支持,本文探讨parallelStr ...
- leetcode中等题
# Title Solution Acceptance Difficulty Frequency 1 Two Sum 44.5% Easy 2 Add Two Number ...
- Jenkins安装部署及使用
Jenkins安装部署环境如下 PS:中文官网,东西比较全.(居然有中文官网了,真好!)以下为本人自己的使用过程,仅供参考! 一.准备阶段 1.组件及版本: Jenkins版本:2.164.3 操作系 ...
- JS基础_其他进制的数字(了解)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 权限(rwx)对于目录与文件的意义
1-权限对于目录的意义 首先要明白的是目录主要的内容是记录文件名列表和子目录列表,而不是实际存放数据的地方. r权限:拥有此权限表示可以读取目录结构列表,也就是说可以查看目录下的文件名和子目录名,注意 ...
- 彻底了解websocket原理
一.websocket与http WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算) 首先HTTP有 1 ...
- python--命令(各个模块的安装)
python命令行 退出python命令行:exit() 安装pymysql pip install pymysql 安装request pip install requests 1.安装django ...
- Object.keys()返回对象自身可枚举属性组成的数组
Object.keys()方法是对一个对象的key遍历,会把key组成一个数组返回 示例: // 参数为数组时,返回的是数组的索引 let arr1 = [1, 2, '3'] console.log ...
- Spark报错java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.
Spark 读取 JSON 文件时运行报错 java.io.IOException: Could not locate executable null\bin\winutils.exe in the ...
