SlideShare ist ein Scribd-Unternehmen logo
1 von 74
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

Weitere ähnliche Inhalte

Was ist angesagt? (8)

The Java EE 6 platform
The Java EE 6 platformThe Java EE 6 platform
The Java EE 6 platform
 
MariaDB training
MariaDB trainingMariaDB training
MariaDB training
 
Jbosstraining
JbosstrainingJbosstraining
Jbosstraining
 
Fungsi run
Fungsi runFungsi run
Fungsi run
 
Ch10.애플리케이션 서버의 병목_발견_방법
Ch10.애플리케이션 서버의 병목_발견_방법Ch10.애플리케이션 서버의 병목_발견_방법
Ch10.애플리케이션 서버의 병목_발견_방법
 
How to Install JAVA 7 (JDK 7u79) on CentOS_RHEL 7_6_5
How to Install JAVA 7 (JDK 7u79) on CentOS_RHEL 7_6_5How to Install JAVA 7 (JDK 7u79) on CentOS_RHEL 7_6_5
How to Install JAVA 7 (JDK 7u79) on CentOS_RHEL 7_6_5
 
Instalar PENTAHO 5 en CentOS 6
Instalar PENTAHO 5 en CentOS 6Instalar PENTAHO 5 en CentOS 6
Instalar PENTAHO 5 en CentOS 6
 
Vmware management-with-vcli-5.0
Vmware management-with-vcli-5.0Vmware management-with-vcli-5.0
Vmware management-with-vcli-5.0
 

Ähnlich wie JMX Management Tools

WebLogic Administration course outline
WebLogic Administration course outlineWebLogic Administration course outline
WebLogic Administration course outline
Vybhava Technologies
 
As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012
alepalin
 
April 2010 - JBoss Web Services
April 2010 - JBoss Web ServicesApril 2010 - JBoss Web Services
April 2010 - JBoss Web Services
JBug Italy
 
Jopr Plugin Development
Jopr Plugin DevelopmentJopr Plugin Development
Jopr Plugin Development
SEA Tecnologia
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
Frank Munz
 

Ähnlich wie JMX Management Tools (20)

J boss
J bossJ boss
J boss
 
JBoss AS 7, la révolution
JBoss AS 7, la révolutionJBoss AS 7, la révolution
JBoss AS 7, la révolution
 
JDK Tools For Performance Diagnostics
JDK Tools For Performance DiagnosticsJDK Tools For Performance Diagnostics
JDK Tools For Performance Diagnostics
 
Jaoo Michael Neale 09
Jaoo Michael Neale 09Jaoo Michael Neale 09
Jaoo Michael Neale 09
 
Python + GDB = Javaデバッガ
Python + GDB = JavaデバッガPython + GDB = Javaデバッガ
Python + GDB = Javaデバッガ
 
Genode Compositions
Genode CompositionsGenode Compositions
Genode Compositions
 
JBoss Enterprise Application Platform 6 Troubleshooting
JBoss Enterprise Application Platform 6 TroubleshootingJBoss Enterprise Application Platform 6 Troubleshooting
JBoss Enterprise Application Platform 6 Troubleshooting
 
It pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_enIt pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_en
 
WebLogic Administration course outline
WebLogic Administration course outlineWebLogic Administration course outline
WebLogic Administration course outline
 
As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012As7 web services - JUG Milan April 2012
As7 web services - JUG Milan April 2012
 
Apache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikApache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip Hanik
 
Introduction to Backbone.js
Introduction to Backbone.jsIntroduction to Backbone.js
Introduction to Backbone.js
 
JBossWS Project by Alessio Soldano
JBossWS Project by Alessio SoldanoJBossWS Project by Alessio Soldano
JBossWS Project by Alessio Soldano
 
April 2010 - JBoss Web Services
April 2010 - JBoss Web ServicesApril 2010 - JBoss Web Services
April 2010 - JBoss Web Services
 
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache MesosJUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
JUC Europe 2015: Using Infrastructure Nodes Wisely With Jenkins and Apache Mesos
 
Jopr Plugin Development
Jopr Plugin DevelopmentJopr Plugin Development
Jopr Plugin Development
 
WildFly AppServer - State of the Union
WildFly AppServer - State of the UnionWildFly AppServer - State of the Union
WildFly AppServer - State of the Union
 
CRaSH the shell for the JVM
CRaSH the shell for the JVMCRaSH the shell for the JVM
CRaSH the shell for the JVM
 
WebLogic JMX for DevOps
WebLogic JMX for DevOpsWebLogic JMX for DevOps
WebLogic JMX for DevOps
 
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion MiddlewareAMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
 

Mehr von SEA Tecnologia

A escola do século XXI deve ser ágil, enxuta e empreendedora.
A escola do século XXI deve ser ágil, enxuta e empreendedora.A escola do século XXI deve ser ágil, enxuta e empreendedora.
A escola do século XXI deve ser ágil, enxuta e empreendedora.
SEA Tecnologia
 
Open data, scraping e thacks com Software Livre
Open data, scraping e thacks com Software LivreOpen data, scraping e thacks com Software Livre
Open data, scraping e thacks com Software Livre
SEA Tecnologia
 
Roadshow Brasília Novas funcionalidades Liferay 6
Roadshow Brasília Novas funcionalidades Liferay 6Roadshow Brasília Novas funcionalidades Liferay 6
Roadshow Brasília Novas funcionalidades Liferay 6
SEA Tecnologia
 

Mehr von SEA Tecnologia (20)

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

Kürzlich hochgeladen

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

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

Hinweis der Redaktion

  1. Quer dizer, JMX est&amp;#xE1; para Java assim como SNMP est&amp;#xE1; para dispositivos de rede.
  2. No caso do SNMP, ele corresponde a uma interface que externaliza dados de dispositivos, que s&amp;#xE3;o lidos por ferramentas especializadas.
  3. Exemplo de console SNMP
  4. Exemplo de console JMX
  5. 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.
  6. 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.
  7. 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.
  8. Ent&amp;#xE3;o, por ter seus servi&amp;#xE7;os na forma de MBeans, o JBoss pode ser monitorado por qualquer Console JMX
  9. 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.
  10. 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.
  11. Mas existem v&amp;#xE1;rios outros Consoles JMX dispon&amp;#xED;veis no mercado.
  12. Extremamente simples. Dispon&amp;#xED;vel a partir do JDK 1.5.
  13. O JConsole est&amp;#xE1; inclu&amp;#xED;do nas instala&amp;#xE7;&amp;#xF5;es do Java5 ou superior.
  14. Para executar, chame &amp;#x2018;jconsole&amp;#x2019; no terminal.
  15. Ap&amp;#xF3;s reinicializar o JBoss e reconectar o JConsole, seus MBeans s&amp;#xE3;o apresentados.
  16. 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.
  17. Um template para o arquivo de senhas pode ser encontrado em JRE_HOME/lib/management/jmxremote.password.template
  18. Um pouco mais completo que o JConsole, mas....
  19. ...est&amp;#xE1; parado desde 2005. O l&amp;#xED;der do projeto, Greg Hinkle, foi pro JON.
  20. VisualVM pode ser baixado da Internet.....
  21. ...ou aproveitado do pr&amp;#xF3;prio JDK. J&amp;#xE1; vem com o Java6
  22. &amp;#xD3;timo para compreender o funcionamento da mem&amp;#xF3;ria da JVM e dos algoritmos de Garbage Collector.
  23. Mesma informa&amp;#xE7;&amp;#xE3;o do jmx-console e do JConsole.
  24. Desenvolva seus pr&amp;#xF3;prios plugins.