监控平台实践(四)使用jmxtrans 监控Java应用

前情提要:

点我

00 写个简单的java应用

在监控之前,我们需要准备一个简单的java web应用
这里用springboot实现:

  • ip:10.154.0.24
  • 端口:8081
  • http请求:get
  • 路径:/hello
  • 返回内容:hello world

生成jar包:testing.jar,上传至linux

01 启动参数

通过jmx的方式获取java进程信息,需要在参数中添加(参数按环境填写):

java -jar \
-Dcom.sun.management.jmxremote.port=8999 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=10.154.0.24 \
testing.jar

跑起来就先告一段落啦,接下来数据采集:jmxtrans

02 jmxtrans安装

官方链接:

下载链接:jmxtrans.rpm 安装说明:installation

下载安装:

上传并安装:
yum localinstall -y jmxtrans-271.rpm

03 配置文件

Ⅰ 参数

"port": "8999",
"host": "10.154.0.24",
这两个参数对应java启动参数中的ipport

Ⅱ 数据库

这里使用influxdb数据库,所以这里outputWriters中的相关配置与influxdb有关

"outputWriters": [{
    "@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
	"url" : "http://10.154.0.24:8086/",
	"username" : "root",
	"password" : "root",
	"database" : "test",
	"tags" : {"application" : "Memory"}
   }],
   "obj": "java.lang:name=CMS Old Gen,type=MemoryPool",
   "resultAlias": "cmsoldgen",
   "attr": ["Usage"]
创建文件

目录:cd /var/lib/jmxtrans
创建配置文件:test.json

{
 "servers": [{
  "port": "8999",
  "host": "10.154.0.24",
  "queries": [{
   "outputWriters": [{
    "@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
	"url" : "http://10.154.0.24:8086/",
	"username" : "root",
	"password" : "root",
	"database" : "test",
	"tags" : {"application" : "Memory"}
   }],
   "obj": "java.lang:type=Memory",
   "resultAlias": "heap",
   "attr": ["HeapMemoryUsage", "NonHeapMemoryUsage"]
  }, {
   "outputWriters": [{
    "@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
	"url" : "http://10.154.0.24:8086/",
	"username" : "root",
	"password" : "root",
	"database" : "test",
	"tags" : {"application" : "MemoryPool"}
   }],
   "obj": "java.lang:name=CMS Old Gen,type=MemoryPool",
   "resultAlias": "cmsoldgen",
   "attr": ["Usage"]
  }, {
   "outputWriters": [{
    "@class": "com.googlecode.jmxtrans.model.output.InfluxDbWriterFactory",
	"url" : "http://10.154.0.24:8086/",
	"username" : "root",
	"password" : "root",
	"database" : "test",
	"tags" : {"application" : "GarbageCollector"}
   }],
   "obj": "java.lang:type=GarbageCollector,name=*",
   "resultAlias": "gc",
   "attr": ["CollectionCount", "CollectionTime"]
  }],
  "numQueryThreads": 2
 }]
}

04 启动

启动命令:systemctl start jmxtrans
日志位置:/var/log/jmxtrans/jmxtrans.log
如有报错,可以日志中查看,一般来说是json配置的问题。
查看数据库:
influx
use test(这里不清楚是否需要手动创建databasetest
show measurements

  • gc
  • Memory

05 番外 - 使用 jconcole监控进程数据

jsoncolejdk自带的jmx信息抓取程序
jmxtrans也是用这种方式来抓取数据的,展示页面如下(windows):
在这里插入图片描述

06 番外2 - kafka配置方法

修改文件kafka/bin/kafka-run-class.sh
修改配置,如下


# JMX port to use
if [  $JMX_PORT ] && [ -z "ISKAFKASERVER" ]; then
  KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT "
fi

# Memory options
if [ -z "$KAFKA_HEAP_OPTS" ]; then
  KAFKA_HEAP_OPTS="-Xmx256M"
  JMX_PORT="8999"
fi

启动kafka:
bin/kafka-server-start.sh config/server.properties
即可在jconsole上连接

CMS LITE(雄迈cms监控软件)是雄迈推出的一款远程视频监控客户端,cms监控软件配套摄像机使用方便快捷,用户可以在计算机上就可以了解监控情况,实时对周边环境进行监控,有需要的赶快下载吧! CMS LITE(雄迈cms监控软件)基本简介 杭州雄迈信息技术有限公司是业内最具发展潜力的优质企业,以领先的监控产品创新技术为核心竞争力,致力于提供高品质、高性价比的安防产品,提供客户化的产品和点到点的服务。 公司的主要产品有硬盘录像机、网络视频服务器、便携式硬盘录像机、网络摄像机、物联网前后端产品、云监控平台等,涵盖道路监控、智能交通、城市安防、车载监控、小区监控、物联网等众多领域,被广泛应用于金融、交通、电信、电力、水利等行业。 企业专注于数字音视频压缩、存储、解压缩及网络传输等相关领域的深入研究,同时不断挑战新技术新方法,独创BLOCK结构,解决了行业内细分领域差异化产品的难题,使快速灵活定制成为可能。2012年5月公司重拳推出集高清、智能、混合于一体的新型硬盘录像机,结合领先的视频云监控系统,真正实现了即插即用,一步上网功能,引领家用安防的普及化,率先步入DVR4.0云监控时代,掀起安防监控新篇章。 公司产品畅销海内外市场,营销及服务网络遍及全球,目前在国内各大城市已设立分公司和办事处,主要出口国家有美国、英国、法国、德国、巴西、印度、俄罗斯、意大利、波兰等,并在多个国家建立了服务器集群,让世界各地的客户体验云服务带来的快捷和便利。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值