目前世面上较流行的JAVA容器工具有:tomcat,jboss,weblogic

在日常工作中,经常会遇到开发需要查看JVM相关信息,这时就需要开启JVM。

一、tomcat

1 修改jdk认证配置文件

文件位于jdk/jre/lib/management/目录下,该目录下有

  • jmxremote.access //配置用户认证相应权限
  • jxmremote.password //配置认证用户名和密码
  • management.properties //可配置相应端口,认证。此文件中的配置是使用此jdk相关JAVA程序,建议单独配置在相应的JAVA容器内,使每个JVM监控分隔开来。

2 tomcat中添加相应的监听端口和监听ip

注意:端口不要冲突

文件: tomcat/bin/catalina.sh //在文件前部添加下面内容

~]# vim /tomcat/bin/caclina.sh
JAVA_HOME=/iyunwen/server/jdk //配置每个tomcat个的JAVA_HOME
JAVA_OPTS="-server -Xms3096m -Xmx4096m -XX:PermSize=256M -XX:MaxNewSize=128m -XX:MaxPermSize=512m -Djava.awt.headless=true -Dfile.encoding=UTF-8" //配置tomcat内存大小
CATALINA_OPTS="$CATALINA_OPTS -Djava.rmi.server.hostname=172.18.35.189 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9002 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true"
// 监听的IP地址和端口,并开启认证

3 重启tomcat服务后,即可通过ip地址和端口进行监听JVM相关信息了

二、jboss

1 修改jdk认证配置文件,同tomcat配置jdk

2 添加相应node中的监听IP地址,端口。

jboss的相应配置文件位于node的run.conf文件

~]# vim /jboss/jboss-eap-4.3/jboss-as/server/node7081/run.conf
if [ "x$JAVA_OPTS" = "x" ]; then
#JAVA_OPTS="-Xms512m -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true"
JAVA_OPTS="-Xms512m -Xmx6144m -XX:MaxNewSize=512m -XX:MaxPermSize=512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -Dcom.sun.management.jmxremote.port=19910 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
fi
//这里修改了内存分配和JVM监控相关参数

3 重启jboss,并使用jvm查看工具即可

##三、weblogic

1 登陆was控制台 http://192.168.1.137:9060/admin

2 在 Generic JVM arguments 中添加JVM监控参数

Servers -> Server Types -> WebSphere application servers -> server1 -> Java and Process Management -> Process definition -> Java Virtual Machine

-Djavax.management.builder.initial= -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.1.130 //服务端的IP地址,不写可能会出现无法连接

添加完成后 -> apply -> save

3 修改weblogic中jdk相关文件

添加相应端口和认证

~]# vim /opt/IBM/WebSphere/AppServer/java/jre/lib/management/management.properties		//文件末尾添加如下配置。如不知道文件在哪的话,可以查看相关java进行中使用的jdk路径中查找
com.sun.management.jmxremote.port=9002 //监听端口
com.sun.management.jmxremote.authenticate=true //开启认证
com.sun.management.jmxremote.ssl=false //ssl关闭

修改认证中的用户名和密码

~]# vim /opt/IBM/WebSphere/AppServer/java/jre/lib/management/jmxremote.password.template     //修改文件的帐号 密码
monitorRole Java_Remote_Monitor
controlRole Java_Remote_Monitor

查看相关帐号权限

~]# vim /opt/IBM/WebSphere/AppServer/java/jre/lib/management/jmxremote.access
monitorRole readonly //只读
controlRole readwrite create javax.management.monitor.*,javax.management.timer.* unregister //可操作

最后重启weblogic,并检测相应端口是否可用

~]# ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9 	//这种操作只有确定这台机器中只有这一个java程序时才能操作,否则就请仔细重启相关服务

重启服务
~]# /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin/startServer.sh server1 查看端口
~]# netstat -ano | grep 19002 //端口正常启用
tcp 0 0 :::19002 :::* LISTEN off (0.00/0/0)

##使用Java VisualVM 监听服务
![](https://images2018.cnblogs.com/blog/1202606/201808/1202606-20180829115112856-2016020268.png)

JAVA 容器配置 JVM 监控的更多相关文章

  1. Zabbix-(五)监控Docker容器与自定义jvm监控项

    Zabbix-(五)监控Docker容器与自定义jvm监控项 一.前言 前文中讲述了Zabbix对服务器硬件方面的监控功能,本文将讲述利用Zabbix监控Docker容器中的Java Web服务,并通 ...

  2. Java容器化参数配置最佳实践

    Java是以VM为基础的,而云原生讲究的就是Native,天然的矛盾,虽然Quarkus是为GraalVM和HotSpot量身定制的K8s Native Java框架,生态原因切换成本太高,这种矛盾体 ...

  3. Java系列笔记(4) - JVM监控与调优

    目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例     光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之.通过学习,我觉得JVM ...

  4. [java] JVM监控与调优

    原文出处:http://www.cnblogs.com/zhguang/p/java-jvm-gc.html   光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分 ...

  5. 深入理解java:1.3.2 JVM监控与调优

    学习Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之. 本篇,来看看[ 如何监控和优化GC机制.] 通过学习,我觉得JVM监控与调优,主要在3个着眼点上: 1,如何配置 ...

  6. Java系列笔记(4) - JVM监控与调优【转】

    Java系列笔记(4) - JVM监控与调优[转]   目录 参数设置收集器搭配启动内存分配监控工具和方法调优方法调优实例     光说不练假把式,学习Java GC机制的目的是为了实用,也就是为了在 ...

  7. 【java编程】使用System.getProperty方法,如何配置JVM系统属性

    转载:https://www.cnblogs.com/acm-bingzi/p/6673823.html很多时候我们需要在项目中读取外部属性文件,用到了System.getProperty(" ...

  8. Spring核心技术(十二)——基于Java的容器配置(二)

    使用@Configuration注解 @Configuration注解是一个类级别的注解,表明该对象是用来指定Bean的定义的.@Configuration注解的类通过@Bean注解的方法来声明Bea ...

  9. Spring核心技术(十一)——基于Java的容器配置(一)

    基本概念: @Bean和@Configuration Spring中新的基于Java的配置的核心就是支持@Configuration注解的类以及@Bean注解的方法. @Bean注解用来表示一个方法会 ...

随机推荐

  1. 卷积神经网络概念及使用 PyTorch 简单实现

    卷积神经网络 卷积神经网络(CNN)是深度学习的代表算法之一 .具有表征学习能力,能够按其阶层结构对输入信息进行平移不变分类,因此也被称为“平移不变人工神经网络”.随着深度学习理论的提出和数值计算设备 ...

  2. Docker使用 - 镜像

    获取镜像 命令:docker  pull  [选项]  镜像名 可通过 ”docker  pull  --help“  命令来查看有哪些选项 docker pull training/webapp # ...

  3. iOS开发需要哪些设备

    ios开发硬件配置环境 工具:使用到 Xcode 和 iOS SDK(Apple 提供的开发工具). 硬件配置: 首先有一台Mac电脑,然后有一个iDevice——iPhone.iPad.iPod T ...

  4. robotframework启动ride失败,提示wxpython ImportError: DLL load failed: 找不到指定的模块

    背景:按照rf的操作,安装是没有问题,就是在启动ride.py 这个文件,就有问题了,提示 wxpython ImportError: DLL load failed: 找不到指定的模块 在pytho ...

  5. 【嵌入式开发】裸机引导操作系统和ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )

    [嵌入式开发]ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )     一. 内存 ...

  6. photoshop7.0 排版一寸照片、2寸照片

    说明:必须先照一张一寸电子照片,否则是无法做成 1.本例同样采用photoshop CS5制作,其它版本通用,这里采用上一教程“PS照片处理教程-制作一寸照片并排版”的处理效果图进行排版,首先在PS中 ...

  7. javascript之this、new、apply和call详解

    this指针的原理是个很复杂的问题,如果我们从javascript里this的实现机制来说明this,很多朋友可能会越来越糊涂,因此本篇打算换一个思路从应用的角度来讲解this指针,从这个角度理解th ...

  8. Nginx 配置学习

    官方文档 一.概述 Nginx的配置放在配置文件nginx.conf/etc/nginx/nginx.conf中,大概的结构如下: main # 全局配置 events { # nginx工作模式配置 ...

  9. python:将时间戳格式化为yyyyMMdd hh:mm:ss

    import time #将10位时间戳或者13位转换为时间字符串,默认为2017-10-01 13:37:04格式 def timestamp_to_date(time_stamp, format_ ...

  10. Java中常量以及常量池

    1.举例说明 变量 常量 字面量 int a=10; float b=1.234f; String c="abc"; final long d=10L; a,b,c为变量,d为常量 ...