监控--jmxtrans+influxdb+Grafana

  这里主要梳理一下大数据常用的监控组件的组合使用,jmxtrans+influxdb+Grafana。jmxtrans用于收集服务的jmx信息(通过配置json文件),然后入库到influxDB。
  通过配置Grafana,把influxDB里面的数据通过web展示出来。
  我这里主要做一些简单的安装,然后以HBase为例做收集存储展示更多详细的内容,会在后面的内容分享

influxDB安装

  1. 下载地址:https://portal.influxdata.com/downloads/#influxdb

  2. 安装

    • sudo yum localinstall influxdb-1.7.5.x86_64.rpm
  3. 启动

    1
    2
    3
    [root@fetch-slave2 ~]# service influxdb start
    Starting influxdb...
    influxdb process was started [ OK ]
  1. 配置文件

    • 默认配置文件:/etc/influxdb/influxdb.conf
    • 默认日志文件:/var/log/influxdb/influxd.log
    • 配置文件详解:https://www.cnblogs.com/guyeshanrenshiwoshifu/p/9188368.html
    • 可以修改mete、data、wal-dir目录(注意修改的目录需要有influxdb用户的写入权限,我这里修改到app目录了),
  2. 重要的目录

    • 服务启动后生成以下目录:

      data 存放最终存储的数据,文件以.tsm结尾
      meta 存放数据库元数据
      wal 存放预写日志文件
      influxdb 数据目录

  3. 客户端操作

    1
    2
    3
    4
    5
    [root@fetch-slave2 ~]# /usr/bin/influx
    Connected to http://localhost:8086 version 1.7.5
    InfluxDB shell version: 1.7.5
    Enter an InfluxQL query
    >

6.1. 查看创建database

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> show databases;
name: databases
name
----
_internal
>
>
> create database hbaseJmx;
> show databases;
name: databases
name
----
_internal
hbaseJmx

6.2. 查看measurements,这个理解成表的概念

1
2
3
4
>
> use hbaseJmx
Using database hbaseJmx
> show measurements;

安装grafana

  1. 下载安装
    下载:https://grafana.com/grafana/download?platform=linux

    1
    安装:yum localinstall grafana-5.4.2-1.x86_64.rpm
  2. 重要配置及目录

    1
    2
    3
    4
    配置文件:/etc/sysconfig/grafana-server
    环境变量文件:/etc/grafana/grafana.ini

    日志文件:/var/log/grafana/grafana.log

可以在 /etc/sysconfig/grafana-server 文件中修改日志目录,数据目录和其他一些环境变量。
数据库:
默认配置指定的数据库 sqlite3 在 /var/lib/grafana/grafana.db

  1. 启动grafana服务

    1
    2
    [root@fetch-slave2 ~]# service grafana-server start
    Starting Grafana Server: ... [确定]

    grafana 数据目录

  2. 插件安装(略)
  1. 访问
  • 网页访问,端口号3000,账号密码都是admin
    grafana web

安装jmxtrans

  1. 官网:http://www.jmxtrans.org/

  2. 安装

    1
    [root@fetch-slave2 work]# yum localinstall jmxtrans-270.rpm
  3. 配置文件

  • /etc/jmxtrans/wrapper.conf
  1. 启动
    1
    [root@fetch-slave2 ~]# service jmxtrans start

收集HBase Jmx

  • 配置一个Demo,即收集HBase里面的监控项,通过Jmxtrans写入到influxDB,然后通过grafana展示。
  1. 配置hbase,将hbase-env.sh中以下配置项的注释打开,打开后为:

    1
    2
    3
    4
    5
    6
    export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
    export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10101"
    export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10102"
    export HBASE_THRIFT_OPTS="$HBASE_THRIFT_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10103"
    export HBASE_ZOOKEEPER_OPTS="$HBASE_ZOOKEEPER_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10104"
    export HBASE_REST_OPTS="$HBASE_REST_OPTS $HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10105"
    • 我是使用cloudera manager中的hbase,所以配置hbase-env.sh在 服务环境高级配置代码段中配置(注意该配置无法识别$变量
      grafana web
  2. 配置Jmxtrans

    • Jmxtrans的json默认地址:/var/lib/jmxtrans/,我在/var/lib/jmxtrans/目录下创建hbaseJmx.json配置文件,内容如下

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      {
      "servers":[{
      "port":"10101",
      "host":"10.xxx.IP地址",
      "queries":[{
      "obj":"Hadoop:service=HBase,name=JvmMetrics",
      "attr":["GcCount"],
      "resultAlias":"GcCount",
      "outputWriters":[{
      "@class":"com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
      "url":"http://localhost:8086/",
      "username":"admin",
      "password":"admin",
      "database":"hbaseJmx"
      }]
      }]
      }]
      }
    • 注意:空格等字符,还有注意上面的服务都是使用自己的用户启动服务,日志、数据等目录需要有相应的权限
      grafana 数据目录

    • 重启Jmxtrans,在启动服务的时候也可以手动指定上面的配置文件。
  3. 查看influxDB中的数据

    • 注意:如果改数据库没有表或者数据,请查看Jmxtrans的日志,启动是否正常等。
  1. 配置grafana
    4.1. 配置grafanad的database
    grafana 数据目录
    4.2. 配置grafanad的dashboard
    grafana 数据目录
    grafana 数据目录
    grafana 数据目录
    4.3. 查看图
    grafana 数据目录

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器