大数据常用的监控组件的组合
前言
jmxtrans+influxdb+Grafana。jmxtrans用于收集服务的jmx信息(通过配置json文件),然后入库到influxDB。通过配置Grafana,把influxDB里面的数据通过web展示出来。
安装
influxDB
InfluxDb原先有web界面,但是这个web管理界面在1.1以后的版本中被删除。
1 | # 下载地址 https://portal.influxdata.com/downloads/#influxdb |
配置文件
- 默认配置文件:/etc/influxdb/influxdb.conf — 配置文件详解可以参考Influxdb配置文件详解—influxdb.conf
- 默认日志文件:/var/log/influxdb/influxd.log
1 | # 启动influxDb shell |
jmxtrans
官网:http://www.jmxtrans.org/
下载地址:http://central.maven.org/maven2/org/jmxtrans/jmxtrans/
1 | # 下载 270 版本 |
配置文件: /etc/jmxtrans/wrapper.conf
grafana
下载文档: https://grafana.com/grafana/download?platform=linux
1 | # 下载 |
配置文件
- 配置文件:/etc/sysconfig/grafana-server
- 环境变量文件:/etc/grafana/grafana.ini
- 日志文件:/var/log/grafana/grafana.log
网页访问,端口号3000,账号密码都是admin
收集 Jmx
这里以 HBase 为例,收集HBase里面的监控项,通过 Jmxtrans 写入到 influxDB ,然后通过 grafana 展示
配置hbase,将hbase-env.sh中以下配置项的注释打开,打开后为
1 | export HBASE_JMX_BASE="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" |
我这使用的是CDH的HBase,因此一开始在hbase-env.sh 的 HBase 客户端环境高级配置代码段(安全阀)
添加了以上配置内容(去掉export, 否则会报错)
重启后发现未生效,服务端口并未启动,但是查看 /etc/hbase/conf/hbase-env.sh
有对应的配置。
最后通过全网搜索在小小默的博客中找到了原因,该配置无法识别$变量
后面我选择在HBase RegionServer 的 Java 配置选项
的最后加了该配置,相应的是Master 的配置就在HBase Master 的 Java 配置选项
添加
重启 HBase 集群之后可以在服务器查看对应端口是否启动成功
Jmxtrans 组件会读取 /var/lib/jmxtrans 目录下所有数据源配置文件(json格式文件),实时从数据源中获取数据,解析数据后存储到目标源中
在/var/lib/jmxtrans/目录下创建 hbaseJmx.json 配置文件
1 |
|
上面的配置中第二部分的 Hadoop:service=HBase,name=RegionServer,sub=Regions
我监听了一个Region的storeFileSize,这是我的Region,不适用你的HBase,所以去掉即可,我这里只是展示多指标的配置样式
数据项说明
如果查询所有的属性,则在query子元素中不定义attr属性,influxdb 会将所有的attr属性作为表字段存储
关于HBase监控指标项可以参考这Hbase监控指标项
查看influxDB中的数据,记得要提前创建好 hbaseJmx 库
配置grafana这里跳过了,大家自行阅读其他博客,截图太累了。。。。大家可以参阅下方两个博客了解下
扩展
jmxtrans + influxdb + granafa 的应用挺广的,比如Zk,kafka、cannel,这里我贴几个我搜索到的资料
- jmxtrans+influxdb+grafana监控zookeeper实战
- 基于jmxtrans+influxdb+grafana实现对canal监控
- jmxtrans+influxdb+granafa监控hbase
- Kafka使用jmxtrans+influxdb+grafana监控JMX指标
参考链接