keycloak~jconsole监控wildfly和jboss

keycloak运行在wildfly(jboss)中,如果希望查询它在jboss中的运行情况,如堆内存,线程,GC等,可以通过jconsole进行远程监控。
参考:
https://goldmann.pl/blog/2013/04/16/jmx-connections-to-jboss-as/
https://www.cnblogs.com/tangculijizyw/p/9108015.html
https://groups.google.com/g/keycloak-user/c/eMHYfgmOQXU

注意

通过jconsole连接keycloak时,我们从keycloak中将jboss-cli-client.jar(放到jconsole.bat同级目录的bin/client下面)文件下载到windows客户端,从keycloak下载的jconsole.bat来启动它,如果使用JVM自带的jconsole是无法连接jboss服务器的,这一点我测试了很多次才发现。

添加远程监控的步骤

以容器化部署keycloak为例

  • 添加jms.cli
embed-server --server-config=standalone-ha.xml --std-out=echo
batch
/profile=full/subsystem=jmx/remoting-connector=jmx:add(use-management-endpoint=true)
run-batch
stop-embedded-server
  • Dockerfile里复制它
ADD jms.cli /opt/jboss/startup-scripts/
  • Dockerfile里添加管理员用户信息,用来登录远程jboss
RUN  /opt/jboss/keycloak/bin/add-user.sh test 123456
  • Docker启动时添加环境 变化 ,注意0.0.0.0表示使用所有可用IP,如果是127.0.0.1表示只有本机访问
docker run --name keycloak -d -p 8080:8080 -p 9990:9990  -e JAVA_OPTS="-Xms512M -Xmx1024M  -XX:MaxHeapSize=1024M  -Djboss.bind.address.management=0.0.0.0"  keycloak/self
  • 使用jconsole来连接远程JBOSS
JMX URL: service:jmx:http-remoting-jmx://192.168.4.26:9990
Username: `test`
Password: `123456`

注意,你的jconsole应该是从keycloak容器里复制出来的,需要有jboss-cli-client.jar这个jar的,它的目前目录的bin/client目录下(默认%JBOSS_HOME/bin/client下面)。

通过jboss的UI界面去查看

posted @   张占岭  阅读(345)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2016-01-12 大叔也说Xamarin~Android篇~为HttpClient共享Session,android与api的session共享机制
2015-01-12 EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~终结~配置的优化和事务里读写的统一
2013-01-12 将不确定变为确定~异常被抛出的顺序
2012-01-12 谁说LINQ复杂查询不支持返回实名类型~定义实体有讲究
点击右上角即可分享
微信分享提示