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语句,

  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. 对列配置规则

猜你喜欢

转载自www.cnblogs.com/fengzzi/p/10033751.html