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 根据时间做聚合展示
-
对列配置规则
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步