SlideShare a Scribd company logo
JMX Tools
Ferramentas de Monitoração
2
Java Management
              eXtension




‟
    The JMX technology provides the tools for
   building distributed, Web-based, modular and
     dynamic solutions for managing and
    monitoring devices, applications, and
              service-driven networks.



http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/index.jsp   3
Simple Network
Management Protocol




‟
 Simple Network Management Protocol
       (SNMP) is used in network
    management systems to
monitor network-attached devices for
 conditions that warrant administrative
               attention.


http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol   4
JMX    Java
SNMP   Rede


              5
SNMP
                    monitoração
                   gerenciamento




Dispositivo SNMP                   Console SNMP

                                                  6
JMX
                  monitoração
                 gerenciamento




Aplicação JMX                    Console JMX

                                               7
Console SNMP
  - Nagios -




               8
Console JMX
  - MC4J -




              9
Managed Beans
        mbean




mbean           mbean




        mbean

                        10
Microkernel
                    mbean




mbean                                    mbean




                    mbean



 http://www.jboss.org/community/docs/DOC-10671
 http://www.jboss.org/community/docs/DOC-10543   11
JBoss




http://www.jboss.org/file-access/default/members/jbossas/freezone/docs/Server_Configuration_Guide/4/html/The_JBoss_JMX_Microkernel-An_Introduction_to_JMX.html   12
13
Desafio
mbean   mbean   mbean   mbean   mbean   mbean   mbean   mbean   mbean




mbean   mbean   mbean   mbean   mbean   mbean   mbean   mbean   mbean


                                                                        14
Console JMX
    nativo do
      JBoss




mbean




                 15
MBeans têm atributos




                   16
MBeans têm operações




                       17
Resultado de uma
    operação




                   18
Outros
Consoles JMX



               19
twiddle
                                                  CLI do JBoss




app/jboss-4.2.2.GA/bin$ ls
classpath.sh                  probe.sh       twiddle.sh
javassist.jar                 run.bat        wsconsume.bat
jboss-profiler-plugins.jar    run.conf       wsconsume.sh
jboss-profiler.jar            run.jar        wsprovide.bat
jboss-profiler.properties     run.sh         wsprovide.sh
jboss_init_hpux.sh            shutdown.bat   wsrunclient.bat
jboss_init_redhat.sh          shutdown.jar   wsrunclient.sh
jboss_init_suse.sh            shutdown.sh    wstools.bat
jmxremote.password            twiddle.bat    wstools.sh
jmxremote.password.template   twiddle.jar
probe.bat                     twiddle.log




                                                                 20
get             atributo


twiddle            mbean

          invoke           operação   parâmetros




                                                   21
./run.sh
jboss-4.2.2.GA/bin$ ./twiddle.sh get jboss.system:type=ServerInfo HostAddress
10:54:35,761 ERROR [Twiddle] Exec failed
org.jboss.util.NestedRuntimeException: - nested throwable: (javax.naming.CommunicationException [Root exception is
java.rmi.ConnectException: Connection refused to host: 192.168.1.17; nested exception is:
        java.net.ConnectException: Connection refused])
        at org.jboss.console.twiddle.Twiddle$1.getServer(Twiddle.java:143)
        at org.jboss.console.twiddle.command.MBeanServerCommand.getMBeanServer(MBeanServerCommand.java:59)
        at org.jboss.console.twiddle.command.GetCommand.execute(GetCommand.java:149)
        at org.jboss.console.twiddle.Twiddle.main(Twiddle.java:305)




                        ./run.sh -b 192.168.1.17
jboss-4.2.2.GA/bin$ ./twiddle.sh get jboss.system:type=ServerInfo HostAddress
11:05:41,966 ERROR [Twiddle] Exec failed
org.jboss.util.NestedRuntimeException: Could not obtain connection to any of these urls: localhost:1099 and discovery
failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is
java.net.SocketTimeoutException: Receive timed out]; - nested throwable: (javax.naming.CommunicationException: Could not
obtain connection to any of these urls: localhost:1099 and discovery failed with error:
javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed
out] [Root exception is javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception
is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is
java.net.ConnectException: Connection refused]]])



                               ./run.sh -b 0.0.0.0
jboss-4.2.2.GA/bin$ ./twiddle.sh    get jboss.system:type=ServerInfo HostAddress
HostAddress=192.168.1.17



                                                                                                                      22
$ ./twiddle.sh get jboss.system:type=ServerInfo HostAddress
HostAddress=192.168.1.17

$ ./twiddle.sh get jboss.system:type=ServerInfo OSArch
OSArch=ppc

$ ./twiddle.sh get jboss.system:type=ServerInfo JavaVersion
JavaVersion=1.5.0_16
                                                              23
$ ./twiddle.sh invoke jboss.system:type=ServerInfo listThreadCpuUtilization
<table><tr><th>Thread Name</th><th>CPU (milliseconds)</th></tr><tr><td>DefaultQuartzScheduler_QuartzSchedulerThread</
td><td>2347</td></tr><tr><td>ScannerThread</td><td>1326</td></tr><tr><td>http-0.0.0.0-8080-1</td><td>814</td></
tr><tr><td>DestroyJavaVM</td><td>782</td></tr>(...)

$ ./twiddle.sh invoke jboss.system:type=ServerInfo listMemoryPools true
<b>Total Memory Pools:</b> 5<blockquote><b>Pool: Code Cache</b> (Non-heap memory)<blockquote>Peak Usage    : init:
163840, used:4691136, committed:4947968, max:33554432<br>Current Usage : init:163840, used:4683776, committed:4947968,
max:33554432<blockquote><br>|---------| committed:4.72Mb<br>
+---------------------------------------------------------------------+<br>|/////////|
| max:32Mb<br>+---------------------------------------------------------------------+<br>|--------| used:4.47Mb</
blockquote></blockquote><br><b>Pool: Eden Space</b> (Heap memory)(...)


                                                                                                                         24
JConsole




http://java.sun.com/j2se/1.5.0/docs/guide/management/jconsole.html   25
JConsole
pré-requisitos




           Java5+


                    26
JConsole
                  execução




Nenhuma VM foi
encontrada para
 monitoração
                             27
JBoss AS




            JBoss não está
           preparado para o
               JConsole
                              28
Parâmetro para
      habilitar monitoração
        via JMX console




...
                              29
Agora sim. VM do JBoss
   automaticamente
detectada pelo JConsole
                          30
Resumo de tudo




                 31
GC




As diversas regiões de memória da JVM
                                        32
33
34
MBeans da JVM
 Cadê os do JBoss?



                     35
Por padrão, o JBoss não usa
o MBean Server da VM, mas
uma implementação própria,
    chamada JBossMX




                              36
Agora sim!




             37
Na vida real,
servidores são
  acessados
remotamente.
                 38
Arquivo de senhas
                        para acesso JMX
                            remoto




  Configuração do
arquivo de senhas no
  run.conf do JBoss




                                           39
JConsole
               mais infos




http://java.sun.com/j2se/1.5.0/docs/guide/
   management/agent.html#jmxagent




                                             40
Usar o JConsole para monitoração das mesmas
informações monitoradas pela linha de comando nos
              exercícios anteriores.

                                                    41
MC4J




http://mc4j.org   42
Parou no tempo




                 43
VisualVM




https://visualvm.dev.java.net/   44
45
java-6-sun-1.6.0.13/bin$ ls
appletviewer   javac          jinfo        native2ascii   tnameserv
apt            javadoc        jmap         orbd           tools.policy
ControlPanel   javah          jps          pack200        unpack200
extcheck       javap          jrunscript   policytool     wsgen
HtmlConverter java-rmi.cgi    jsadebugd    rmic           wsimport
i386           javaws         jstack       rmid           xjc
idlj           jconsole       jstat        rmiregistry
jar            jcontrol       jstatd       schemagen
jarsigner      jdb            jvisualvm    serialver
java           jhat           keytool      servertool




                                                                     46
VisualVM
pré-requisitos




                 47
VisualVM
                    pré-requisitos
          todas são configurações no servidor remoto




Servidor RMI para                   Endereço a ser enviado ao
receber conexões                  VisualVM para que se conecte
     remotas                           ao servidor remoto




                                                                 48
Endereço do
servidor remoto




                  49
Endereço do
 agente JMX




              50
JVMs
monitoráveis no
servidor remoto




                  51
Resumo da
monitoração do
    JBoss




                 52
Monitoração do
    JBoss




                 53
Monitoração do
próprio VisualVM


   Dump da
   memória




                   54
Resumo do dump
  de memória




                 55
Memória consumida
 por cada tipo de
      objeto




                    56
Instâncias de uma
 classe específica




                    57
Threads do   Snapshot das
 servidor      threads




                            58
59
A graça do
VisualVM está em
   seus plugins

                   60
61
62
63
MBeans do JBoss



                  64
65
Troubleshooting
porque os problemas virão




                            66
Conexão estabelecida,
 mas nada acontece.




                          Inicialize o ‘jstatd’ no
                        servidor remoto e todas
                               as aplicações
                           monitoráveis serão
                              identificadas e
                             apresentadas no
                                 VisualVM




                                                     67
Problema de conexão com o
   agente JMX da JVM remota.
     Configure o parâmetro
java.rmi.server.hostname
 no run.conf do servidor remoto   68
VisualVM 1.1
tem problemas
 com JDK6u12


http://blogs.sun.com/nbprofiler/entry/visualvm_fixed_to_correctly_recognize   69
Plugin para resolver a
incompatibilidade do
  VisualVM 1.1 com
      JDK6u12




                         70
$ jstatd
Could not create remote object
access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write)
java.security.AccessControlException: access denied (java.util.PropertyPermission
java.rmi.server.ignoreSubClasses write)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
    at java.security.AccessController.checkPermission(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at java.lang.System.setProperty(System.java:727)
    at sun.tools.jstatd.Jstatd.main(Jstatd.java:122)




          grant codebase "file:${java.home}/../lib/tools.jar" {
              permission java.security.AllPermission;
          };
                                                         $JAVA_HOME/bin/tools.policy




$sudo jstatd -J-Djava.security.policy=$JAVA_HOME/bin/tools.policy

                                                                                       71
eclipse-jmx




http://code.google.com/p/eclipse-jmx/
                                        72
Pelo VisualVM,
acompanhar métricas
de memória, threads
  e processamento
durante os testes de
       carga.




                       73
P&R

More Related Content

PDF
soft-shake.ch - JBoss AS 7, la révolution
soft-shake.ch
 
PDF
JBoss AS 7 - YaJUG - nov. 2012
Alexis Hassler
 
PDF
JBoss AS 7 : Déployer sur terre et dans les nuages
Alexis Hassler
 
PDF
Tutorial j boss
Natan Loterio
 
PDF
OSGi framework overview
Balduran Chang
 
PDF
Algotitmo Moinho
De Mello Adriany
 
ODP
Java EE 6 = Less Code + More Power (Tutorial) [5th IndicThreads Conference O...
IndicThreads
 
PDF
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
Jagadish Prasath
 
soft-shake.ch - JBoss AS 7, la révolution
soft-shake.ch
 
JBoss AS 7 - YaJUG - nov. 2012
Alexis Hassler
 
JBoss AS 7 : Déployer sur terre et dans les nuages
Alexis Hassler
 
Tutorial j boss
Natan Loterio
 
OSGi framework overview
Balduran Chang
 
Algotitmo Moinho
De Mello Adriany
 
Java EE 6 = Less Code + More Power (Tutorial) [5th IndicThreads Conference O...
IndicThreads
 
Java EE 6 - Deep Dive - Indic Threads, Pune - 2010
Jagadish Prasath
 

What's hot (8)

PDF
The Java EE 6 platform
Lorraine JUG
 
PDF
MariaDB training
Samuel Dos Santos Tolentino
 
DOCX
Jbosstraining
Mastinder Singh
 
PDF
Fungsi run
amcied
 
PPTX
Ch10.애플리케이션 서버의 병목_발견_방법
Minchul Jung
 
PDF
How to Install JAVA 7 (JDK 7u79) on CentOS_RHEL 7_6_5
TUSHAR VARSHNEY
 
PDF
Instalar PENTAHO 5 en CentOS 6
Moisés Elías Araya
 
PDF
Vmware management-with-vcli-5.0
Sathishkumar A
 
The Java EE 6 platform
Lorraine JUG
 
MariaDB training
Samuel Dos Santos Tolentino
 
Jbosstraining
Mastinder Singh
 
Fungsi run
amcied
 
Ch10.애플리케이션 서버의 병목_발견_방법
Minchul Jung
 
How to Install JAVA 7 (JDK 7u79) on CentOS_RHEL 7_6_5
TUSHAR VARSHNEY
 
Instalar PENTAHO 5 en CentOS 6
Moisés Elías Araya
 
Vmware management-with-vcli-5.0
Sathishkumar A
 
Ad

Similar to JMX Management Tools (20)

PPT
J boss
jrfx448
 
PDF
JBoss AS 7, la révolution
Alexis Hassler
 
PDF
JDK Tools For Performance Diagnostics
Baruch Sadogursky
 
PDF
Jaoo Michael Neale 09
Michael Neale
 
PDF
Python + GDB = Javaデバッガ
Kenji Kazumura
 
PDF
Genode Compositions
Vasily Sartakov
 
PDF
JBoss Enterprise Application Platform 6 Troubleshooting
Alexandre Cavalcanti
 
PPTX
It pro dev_birbilis_20101127_en
George Birbilis
 
PPTX
WebLogic Administration course outline
Vybhava Technologies
 
PDF
As7 web services - JUG Milan April 2012
alepalin
 
PPT
Apache Tomcat 7 by Filip Hanik
Edgar Espina
 
PDF
Introduction to Backbone.js
Jonathan Weiss
 
PDF
April 2010 - JBoss Web Services
JBug Italy
 
PDF
JBossWS Project by Alessio Soldano
Java User Group Roma
 
PDF
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
CloudBees
 
KEY
Jopr Plugin Development
SEA Tecnologia
 
PDF
WildFly AppServer - State of the Union
Dimitris Andreadis
 
PPTX
CRaSH the shell for the JVM
jviet
 
PDF
WebLogic JMX for DevOps
Frank Munz
 
PDF
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
Getting value from IoT, Integration and Data Analytics
 
J boss
jrfx448
 
JBoss AS 7, la révolution
Alexis Hassler
 
JDK Tools For Performance Diagnostics
Baruch Sadogursky
 
Jaoo Michael Neale 09
Michael Neale
 
Python + GDB = Javaデバッガ
Kenji Kazumura
 
Genode Compositions
Vasily Sartakov
 
JBoss Enterprise Application Platform 6 Troubleshooting
Alexandre Cavalcanti
 
It pro dev_birbilis_20101127_en
George Birbilis
 
WebLogic Administration course outline
Vybhava Technologies
 
As7 web services - JUG Milan April 2012
alepalin
 
Apache Tomcat 7 by Filip Hanik
Edgar Espina
 
Introduction to Backbone.js
Jonathan Weiss
 
April 2010 - JBoss Web Services
JBug Italy
 
JBossWS Project by Alessio Soldano
Java User Group Roma
 
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
CloudBees
 
Jopr Plugin Development
SEA Tecnologia
 
WildFly AppServer - State of the Union
Dimitris Andreadis
 
CRaSH the shell for the JVM
jviet
 
WebLogic JMX for DevOps
Frank Munz
 
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
Getting value from IoT, Integration and Data Analytics
 
Ad

More from SEA Tecnologia (20)

PDF
Loomio how to Series - Working on a Discussion
SEA Tecnologia
 
PDF
Loomio how to Series - Creating a new Group of People
SEA Tecnologia
 
PDF
Loomio how to Series - Creating a new Discussion
SEA Tecnologia
 
PDF
Gerentes em Crise existencial - Existimos no Universo Ágil?
SEA Tecnologia
 
PDF
O curioso caso de Náutilus Button
SEA Tecnologia
 
PDF
Contratos de desenvolvimento de software para governo blue pill or red pill?
SEA Tecnologia
 
PDF
#Fail
SEA Tecnologia
 
PDF
Agilidade no Governo
SEA Tecnologia
 
KEY
Os benefícios e desafios da participação pública digital
SEA Tecnologia
 
KEY
A escola do século XXI deve ser ágil, enxuta e empreendedora.
SEA Tecnologia
 
PDF
Lean Startup
SEA Tecnologia
 
PDF
Open Data
SEA Tecnologia
 
PDF
Open data, scraping e thacks com Software Livre
SEA Tecnologia
 
PDF
Agilidade dos projetos à empresa, uma história de Intracontágio
SEA Tecnologia
 
ODP
Roadshow Brasília Novas funcionalidades Liferay 6
SEA Tecnologia
 
PDF
Roadshow Liferay no Brasil 2010
SEA Tecnologia
 
PDF
Sem tesão não há solução
SEA Tecnologia
 
PDF
Empreendimentos em Rede
SEA Tecnologia
 
PDF
Java Profiling Tools
SEA Tecnologia
 
PDF
Misc Monitoring Tools
SEA Tecnologia
 
Loomio how to Series - Working on a Discussion
SEA Tecnologia
 
Loomio how to Series - Creating a new Group of People
SEA Tecnologia
 
Loomio how to Series - Creating a new Discussion
SEA Tecnologia
 
Gerentes em Crise existencial - Existimos no Universo Ágil?
SEA Tecnologia
 
O curioso caso de Náutilus Button
SEA Tecnologia
 
Contratos de desenvolvimento de software para governo blue pill or red pill?
SEA Tecnologia
 
Agilidade no Governo
SEA Tecnologia
 
Os benefícios e desafios da participação pública digital
SEA Tecnologia
 
A escola do século XXI deve ser ágil, enxuta e empreendedora.
SEA Tecnologia
 
Lean Startup
SEA Tecnologia
 
Open Data
SEA Tecnologia
 
Open data, scraping e thacks com Software Livre
SEA Tecnologia
 
Agilidade dos projetos à empresa, uma história de Intracontágio
SEA Tecnologia
 
Roadshow Brasília Novas funcionalidades Liferay 6
SEA Tecnologia
 
Roadshow Liferay no Brasil 2010
SEA Tecnologia
 
Sem tesão não há solução
SEA Tecnologia
 
Empreendimentos em Rede
SEA Tecnologia
 
Java Profiling Tools
SEA Tecnologia
 
Misc Monitoring Tools
SEA Tecnologia
 

Recently uploaded (20)

PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
Software Development Methodologies in 2025
KodekX
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PPTX
Simple and concise overview about Quantum computing..pptx
mughal641
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Software Development Methodologies in 2025
KodekX
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Simple and concise overview about Quantum computing..pptx
mughal641
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 

JMX Management Tools

  • 1. JMX Tools Ferramentas de Monitoração
  • 2. 2
  • 3. Java Management eXtension ‟ The JMX technology provides the tools for building distributed, Web-based, modular and dynamic solutions for managing and monitoring devices, applications, and service-driven networks. http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/index.jsp 3
  • 4. Simple Network Management Protocol ‟ Simple Network Management Protocol (SNMP) is used in network management systems to monitor network-attached devices for conditions that warrant administrative attention. http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol 4
  • 5. JMX Java SNMP Rede 5
  • 6. SNMP monitoração gerenciamento Dispositivo SNMP Console SNMP 6
  • 7. JMX monitoração gerenciamento Aplicação JMX Console JMX 7
  • 8. Console SNMP - Nagios - 8
  • 9. Console JMX - MC4J - 9
  • 10. Managed Beans mbean mbean mbean mbean 10
  • 11. Microkernel mbean mbean mbean mbean http://www.jboss.org/community/docs/DOC-10671 http://www.jboss.org/community/docs/DOC-10543 11
  • 13. 13
  • 14. Desafio mbean mbean mbean mbean mbean mbean mbean mbean mbean mbean mbean mbean mbean mbean mbean mbean mbean mbean 14
  • 15. Console JMX nativo do JBoss mbean 15
  • 18. Resultado de uma operação 18
  • 20. twiddle CLI do JBoss app/jboss-4.2.2.GA/bin$ ls classpath.sh probe.sh twiddle.sh javassist.jar run.bat wsconsume.bat jboss-profiler-plugins.jar run.conf wsconsume.sh jboss-profiler.jar run.jar wsprovide.bat jboss-profiler.properties run.sh wsprovide.sh jboss_init_hpux.sh shutdown.bat wsrunclient.bat jboss_init_redhat.sh shutdown.jar wsrunclient.sh jboss_init_suse.sh shutdown.sh wstools.bat jmxremote.password twiddle.bat wstools.sh jmxremote.password.template twiddle.jar probe.bat twiddle.log 20
  • 21. get atributo twiddle mbean invoke operação parâmetros 21
  • 22. ./run.sh jboss-4.2.2.GA/bin$ ./twiddle.sh get jboss.system:type=ServerInfo HostAddress 10:54:35,761 ERROR [Twiddle] Exec failed org.jboss.util.NestedRuntimeException: - nested throwable: (javax.naming.CommunicationException [Root exception is java.rmi.ConnectException: Connection refused to host: 192.168.1.17; nested exception is: java.net.ConnectException: Connection refused]) at org.jboss.console.twiddle.Twiddle$1.getServer(Twiddle.java:143) at org.jboss.console.twiddle.command.MBeanServerCommand.getMBeanServer(MBeanServerCommand.java:59) at org.jboss.console.twiddle.command.GetCommand.execute(GetCommand.java:149) at org.jboss.console.twiddle.Twiddle.main(Twiddle.java:305) ./run.sh -b 192.168.1.17 jboss-4.2.2.GA/bin$ ./twiddle.sh get jboss.system:type=ServerInfo HostAddress 11:05:41,966 ERROR [Twiddle] Exec failed org.jboss.util.NestedRuntimeException: Could not obtain connection to any of these urls: localhost:1099 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]; - nested throwable: (javax.naming.CommunicationException: Could not obtain connection to any of these urls: localhost:1099 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to connect to server localhost:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost:1099 [Root exception is java.net.ConnectException: Connection refused]]]) ./run.sh -b 0.0.0.0 jboss-4.2.2.GA/bin$ ./twiddle.sh get jboss.system:type=ServerInfo HostAddress HostAddress=192.168.1.17 22
  • 23. $ ./twiddle.sh get jboss.system:type=ServerInfo HostAddress HostAddress=192.168.1.17 $ ./twiddle.sh get jboss.system:type=ServerInfo OSArch OSArch=ppc $ ./twiddle.sh get jboss.system:type=ServerInfo JavaVersion JavaVersion=1.5.0_16 23
  • 24. $ ./twiddle.sh invoke jboss.system:type=ServerInfo listThreadCpuUtilization <table><tr><th>Thread Name</th><th>CPU (milliseconds)</th></tr><tr><td>DefaultQuartzScheduler_QuartzSchedulerThread</ td><td>2347</td></tr><tr><td>ScannerThread</td><td>1326</td></tr><tr><td>http-0.0.0.0-8080-1</td><td>814</td></ tr><tr><td>DestroyJavaVM</td><td>782</td></tr>(...) $ ./twiddle.sh invoke jboss.system:type=ServerInfo listMemoryPools true <b>Total Memory Pools:</b> 5<blockquote><b>Pool: Code Cache</b> (Non-heap memory)<blockquote>Peak Usage : init: 163840, used:4691136, committed:4947968, max:33554432<br>Current Usage : init:163840, used:4683776, committed:4947968, max:33554432<blockquote><br>|---------| committed:4.72Mb<br> +---------------------------------------------------------------------+<br>|/////////| | max:32Mb<br>+---------------------------------------------------------------------+<br>|--------| used:4.47Mb</ blockquote></blockquote><br><b>Pool: Eden Space</b> (Heap memory)(...) 24
  • 27. JConsole execução Nenhuma VM foi encontrada para monitoração 27
  • 28. JBoss AS JBoss não está preparado para o JConsole 28
  • 29. Parâmetro para habilitar monitoração via JMX console ... 29
  • 30. Agora sim. VM do JBoss automaticamente detectada pelo JConsole 30
  • 32. GC As diversas regiões de memória da JVM 32
  • 33. 33
  • 34. 34
  • 35. MBeans da JVM Cadê os do JBoss? 35
  • 36. Por padrão, o JBoss não usa o MBean Server da VM, mas uma implementação própria, chamada JBossMX 36
  • 38. Na vida real, servidores são acessados remotamente. 38
  • 39. Arquivo de senhas para acesso JMX remoto Configuração do arquivo de senhas no run.conf do JBoss 39
  • 40. JConsole mais infos http://java.sun.com/j2se/1.5.0/docs/guide/ management/agent.html#jmxagent 40
  • 41. Usar o JConsole para monitoração das mesmas informações monitoradas pela linha de comando nos exercícios anteriores. 41
  • 45. 45
  • 46. java-6-sun-1.6.0.13/bin$ ls appletviewer javac jinfo native2ascii tnameserv apt javadoc jmap orbd tools.policy ControlPanel javah jps pack200 unpack200 extcheck javap jrunscript policytool wsgen HtmlConverter java-rmi.cgi jsadebugd rmic wsimport i386 javaws jstack rmid xjc idlj jconsole jstat rmiregistry jar jcontrol jstatd schemagen jarsigner jdb jvisualvm serialver java jhat keytool servertool 46
  • 48. VisualVM pré-requisitos todas são configurações no servidor remoto Servidor RMI para Endereço a ser enviado ao receber conexões VisualVM para que se conecte remotas ao servidor remoto 48
  • 53. Monitoração do JBoss 53
  • 54. Monitoração do próprio VisualVM Dump da memória 54
  • 55. Resumo do dump de memória 55
  • 56. Memória consumida por cada tipo de objeto 56
  • 57. Instâncias de uma classe específica 57
  • 58. Threads do Snapshot das servidor threads 58
  • 59. 59
  • 60. A graça do VisualVM está em seus plugins 60
  • 61. 61
  • 62. 62
  • 63. 63
  • 65. 65
  • 67. Conexão estabelecida, mas nada acontece. Inicialize o ‘jstatd’ no servidor remoto e todas as aplicações monitoráveis serão identificadas e apresentadas no VisualVM 67
  • 68. Problema de conexão com o agente JMX da JVM remota. Configure o parâmetro java.rmi.server.hostname no run.conf do servidor remoto 68
  • 69. VisualVM 1.1 tem problemas com JDK6u12 http://blogs.sun.com/nbprofiler/entry/visualvm_fixed_to_correctly_recognize 69
  • 70. Plugin para resolver a incompatibilidade do VisualVM 1.1 com JDK6u12 70
  • 71. $ jstatd Could not create remote object access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write) java.security.AccessControlException: access denied (java.util.PropertyPermission java.rmi.server.ignoreSubClasses write) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.System.setProperty(System.java:727) at sun.tools.jstatd.Jstatd.main(Jstatd.java:122) grant codebase "file:${java.home}/../lib/tools.jar" { permission java.security.AllPermission; }; $JAVA_HOME/bin/tools.policy $sudo jstatd -J-Djava.security.policy=$JAVA_HOME/bin/tools.policy 71
  • 73. Pelo VisualVM, acompanhar métricas de memória, threads e processamento durante os testes de carga. 73
  • 74. P&R

Editor's Notes

  • #6: Quer dizer, JMX est&amp;#xE1; para Java assim como SNMP est&amp;#xE1; para dispositivos de rede.
  • #7: No caso do SNMP, ele corresponde a uma interface que externaliza dados de dispositivos, que s&amp;#xE3;o lidos por ferramentas especializadas.
  • #9: Exemplo de console SNMP
  • #10: Exemplo de console JMX
  • #11: A especifica&amp;#xE7;&amp;#xE3;o JMX define MBeans como os elementos de externaliza&amp;#xE7;&amp;#xE3;o de informa&amp;#xE7;&amp;#xF5;es de qualquer aplica&amp;#xE7;&amp;#xE3;o Java.
  • #12: O pessoal do JBoss se aproveitou da estrutura modular definida pela especifica&amp;#xE7;&amp;#xE3;o JMX e usou-a na composi&amp;#xE7;&amp;#xE3;o de seu microkernel.
  • #13: Cada MBean do microkernel do JBoss &amp;#xE9; respons&amp;#xE1;vel por algum servi&amp;#xE7;o de infra-estrutura da especifica&amp;#xE7;&amp;#xE3;o JEE.
  • #14: Ent&amp;#xE3;o, por ter seus servi&amp;#xE7;os na forma de MBeans, o JBoss pode ser monitorado por qualquer Console JMX
  • #15: O grande desafio para uma boa monitar&amp;#xE7;&amp;#xE3;o via console JXM &amp;#xE9; conhecer a fundo as dezenas de MBeans que comp&amp;#xF5;em o JBoss.
  • #16: A forma mais f&amp;#xE1;cil de come&amp;#xE7;ar a se acostumar com os MBeans do JBoss &amp;#xE9; atrav&amp;#xE9;s de seu console JMX nativo.
  • #20: Mas existem v&amp;#xE1;rios outros Consoles JMX dispon&amp;#xED;veis no mercado.
  • #26: Extremamente simples. Dispon&amp;#xED;vel a partir do JDK 1.5.
  • #27: O JConsole est&amp;#xE1; inclu&amp;#xED;do nas instala&amp;#xE7;&amp;#xF5;es do Java5 ou superior.
  • #28: Para executar, chame &amp;#x2018;jconsole&amp;#x2019; no terminal.
  • #38: Ap&amp;#xF3;s reinicializar o JBoss e reconectar o JConsole, seus MBeans s&amp;#xE3;o apresentados.
  • #39: Ao habilitar o acesso remoto (com.sun.management.jmxremote.port), a seguran&amp;#xE7;a &amp;#xE9; obrigat&amp;#xF3;ria, salvo desabilita&amp;#xE7;&amp;#xE3;o expl&amp;#xED;cita, como fizemos, apenas para demonstra&amp;#xE7;&amp;#xE3;o.
  • #40: Um template para o arquivo de senhas pode ser encontrado em JRE_HOME/lib/management/jmxremote.password.template
  • #43: Um pouco mais completo que o JConsole, mas....
  • #44: ...est&amp;#xE1; parado desde 2005. O l&amp;#xED;der do projeto, Greg Hinkle, foi pro JON.
  • #46: VisualVM pode ser baixado da Internet.....
  • #47: ...ou aproveitado do pr&amp;#xF3;prio JDK. J&amp;#xE1; vem com o Java6
  • #63: &amp;#xD3;timo para compreender o funcionamento da mem&amp;#xF3;ria da JVM e dos algoritmos de Garbage Collector.
  • #65: Mesma informa&amp;#xE7;&amp;#xE3;o do jmx-console e do JConsole.
  • #66: Desenvolva seus pr&amp;#xF3;prios plugins.