本文共 1841 字,大约阅读时间需要 6 分钟。
jmxtrans作为agent部署在需要采集数据的节点上,主要用于数据采集和发送.
配置文件内容需要json格式,名字可自取。
{ "servers" : [{ "port" : "8085", // 采集jmx进程的通信端口 "host" : "10.88.61.73", // 表示采集数据所在host IP "queries" : [ { "obj" : "java.lang:type=MemoryPool,name=CMS Old Gen", // 这里的obj是监控的bean对象,填写格式依据Jconsole所示 "attr" : [ "Usage" ], "resultAlias":"jmxDB_sparkTS_CMS_Old_datapm", // 数据存储的表别名,后面通过这个表名查到对应数据 "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory", "url" : "http://10.88.60.141:8086/", // 表示grafana服务host地址 "username" : "admin", "password" : "admin", "database" : "jmxDB", "tags" : {"application" : "SparkTS"} } ] } ]},{ "port" : "8085", "host" : "10.88.61.73", "queries" : [ { "obj" : "java.lang:type=MemoryPool,name=Par Eden Space", "attr" : [ "Usage" ], "resultAlias":"jmxDB_sparkTS_Par_Eden_datapm", "outputWriters" : [ { "@class" : "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory", "url" : "http://10.88.60.141:8086/", "username" : "admin", "password" : "admin", "database" : "jmxDB", "tags" : {"application" : "SparkTS"} } ] } ]}]}
以spark进程为例,在spark-default.conf文件中加入参数开启jmx端口:
export SPARK_DAEMON_JAVA_OPTS=’-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8085’如果是spark长进程作业得重启后参数才生效,可以通过lsof -i:8085 判断端口是否生效
启动jmxtrans开启数据拉取。
命令格式:bin/jmxtrans.sh {start|stop|restart|status} [filename.json]建立一个图表,配置类似如下参数
然后就可以看到图了。
配置好后效果如下图