监控--jmxtrans+influxdb+Grafana
这里主要梳理一下大数据常用的监控组件的组合使用,jmxtrans
+influxdb
+Grafana
。jmxtrans用于收集服务的jmx信息(通过配置json文件),然后入库到influxDB。
通过配置Grafana,把influxDB里面的数据通过web展示出来。
我这里主要做一些简单的安装,然后以HBase为例做收集存储展示,更多详细的内容,会在后面的内容分享。
influxDB安装
下载地址:https://portal.influxdata.com/downloads/#influxdb
- 我这里通过wget下载1.7.5的版本
- wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.5.x86_64.rpm
安装
- sudo yum localinstall influxdb-1.7.5.x86_64.rpm
启动
1
2
3[root@fetch-slave2 ~]# service influxdb start
Starting influxdb...
influxdb process was started [ OK ]
配置文件
- 默认配置文件:/etc/influxdb/influxdb.conf
- 默认日志文件:/var/log/influxdb/influxd.log
- 配置文件详解:https://www.cnblogs.com/guyeshanrenshiwoshifu/p/9188368.html
- 可以修改mete、data、wal-dir目录(注意修改的目录需要有influxdb用户的写入权限,我这里修改到app目录了),
重要的目录
- 服务启动后生成以下目录:
data 存放最终存储的数据,文件以.tsm结尾
meta 存放数据库元数据
wal 存放预写日志文件
- 服务启动后生成以下目录:
客户端操作
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. 查看创建database1
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
下载安装
下载:https://grafana.com/grafana/download?platform=linux1
安装:yum localinstall grafana-5.4.2-1.x86_64.rpm
重要配置及目录
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
启动grafana服务
1
2[root@fetch-slave2 ~]# service grafana-server start
Starting Grafana Server: ... [确定]- 插件安装(略)
- 访问
- 网页访问,
端口号3000,账号密码都是admin
安装jmxtrans
-
- 下载地址:http://central.maven.org/maven2/org/jmxtrans/jmxtrans/
- 我下载的jmxtrans-270.rpm
安装
1
[root@fetch-slave2 work]# yum localinstall jmxtrans-270.rpm
配置文件
- /etc/jmxtrans/wrapper.conf
- 启动
1
[root@fetch-slave2 ~]# service jmxtrans start
收集HBase Jmx
- 配置一个Demo,即收集
HBase
里面的监控项,通过Jmxtrans写入到influxDB,然后通过grafana展示。
配置hbase,将
hbase-env.sh
中以下配置项的注释打开,打开后为:1
2
3
4
5
6export 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在 服务环境高级配置代码段中配置(注意该配置无法识别$变量)
- 我是使用cloudera manager中的hbase,所以配置hbase-env.sh在 服务环境高级配置代码段中配置(注意该配置无法识别$变量)
配置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"
}]
}]
}]
}注意:空格等字符,还有注意上面的服务都是使用自己的用户启动服务,日志、数据等目录需要有相应的权限
- 重启Jmxtrans,在启动服务的时候也可以手动指定上面的配置文件。
查看influxDB中的数据
- 注意:如果改数据库没有表或者数据,
请查看Jmxtrans的日志
,启动是否正常等。
- 注意:如果改数据库没有表或者数据,
- 配置grafana
4.1. 配置grafanad的database
4.2. 配置grafanad的dashboard
4.3. 查看图