ZenPack:Oracle WebLogic Server

From Zenoss Wiki
This is the approved revision of this page, as well as being the most recent.
Jump to: navigation, search


Note: This ZenPack is available in commercial versions of Zenoss. Click here to request more information about this commercial ZenPack. Click here to see all commercial ZenPacks.

Organization
Zenoss, Inc.
ZenPack name
ZenPacks.zenoss.WebLogicMonitor


Applications Monitored: 



Oracle WebLogic Server ZenPack

This ZenPack allows you to monitor an Oracle WebLogic Server.

Warning

The ZenPack Catalog has moved to its new home at https://www.zenoss.com/product/zenpacks as of January 17, 2017. The following information may be out of date, and this page will eventually be removed.

Support

This ZenPack is included with commercial versions of Zenoss and enterprise support for this ZenPack is provided to Zenoss customers with an active subscription.

Releases

Version 2.2.3- Download
Released on 2016/01/14
Requires ZenPacks.zenoss.ZenJMX ZenPack
Compatible with Zenoss Resource Manager 4.2.x, Zenoss Resource Manager 5.x

Background

The ZenPacks.zenoss.WebLogicMonitor ZenPack monitors Oracle WebLogic Server services.


This ZenPack uses the JMX Remote API and and accesses MBeans deployed within WebLogic that contain performance information about the components that are being managed. This performance information includes pool sizes for data sources (JDBC), threads, connections (JCA), queues (JMS), servlets, JSPs, Enterprise Java Beans (EJB), timer queues.

Throughput is also monitored when it is available. This metric is computed by WebLogic and is based on the number of messages moving through a queue at any given time. The throughput metric gives a good picture of the health of the messaging subsystem, which is commonly used throughout many enterprise applications. Stateless, Stateful, and Entity EJB performance metrics are monitored, as are message driven bean performance.

Security realms are also monitored for potential denial of service attacks. This includes recording of authentication failures, broken out by valid accounts, invalid accounts, and accounts that are currently locked out. Application specific realms can be monitored by customizing the built in WebLogic default realm.


Overall Application Server Vitals

  • Number of total and active JMS connections and servers
  • Overall number of JTA transactions that are rolled back or abandoned
  • JTA transactions rolled back due to system, application, or resource issues
  • Number of JTA rollbacks that timeout
  • Active and committed JTA transaction count
  • Timer exceptions, executions, and scheduled triggers
  • User accounts that are locked and unlocked
  • Authentication failures against locked accounts and non-existent accounts
  • Total sockets opened, and the current number of open sockets
  • JVM Mark/Sweep and Scavenge garbage collector execution counts
  • Number of JVM daemon threads
  • JVM Heap/Non-Heap used and committed memory


Entity EJB, Message Driven Bean (MDB), and Session EJB Subsystem Metrics

  • Rollback and commit count on a per-EJB basis
  • Bean pool accesses, cache hits, and cache misses
  • Number of Beans in use, idle, and destroyed
  • Number of activations and passivations


Data Pool (JDBC) metrics

  • Leaked, Total, and Active connections
  • Number of requests waiting for a connection
  • Number of reconnect failures


Queue (JMS) Metrics

  • Bytes received, currently active, and pending in the queue
  • Number of queue consumers
  • Number of current, pending, and receives messages


Prerequisites

WebLogic 10.0 or higher is required.


Configuring WebLogic to Allow JMX Queries

If you have not set up a domain and server then run the startWLS.sh script located in the ${BEA_HOME}/wlserver_10.0/server/bin directory. If you don't have the Terminal I/O package installed you can set the JAVA_OPTIONS variable to the following value:

JAVA_OPTIONS="-Dweblogic.management.allowPasswordEcho=true"
export JAVA_OPTIONS

Provide a user name and password to start WebLogic. Note that WebLogic requires a password that is at least eight characters long. Wait for WebLogic to generate a configuration and start up. Shut down WebLogic and restart it with remote JMX access enabled.

To enable remote JMX access set the following variable:

JAVA_OPTIONS="-Dcom.sun.management.jmxremote.port=12347"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTIONS="${JAVA_OPTIONS} -Dcom.sun.management.jmxremote.ssl=false"
export JAVA_OPTIONS

Then re-run the ./startWLS.sh script. JConsole can then communicate with the server on port 12347.

For newer versions it may be required to add one more Java option:

JAVA_OPTIONS="${JAVA_OPTIONS} -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder"

It may be convinient to store this variables in script itself. Example for Windows and WebLogic Server 12c ("startWebLogic.cmd" script):

set JAVA_OPTIONS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12347 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder


Configuring Zenoss platform

All WebLogic services must have a device entry under the /Devices/Server/WebLogic device class.


Note: The zenjmx daemon must be configured and running. See ZenPack:Java_2_Platform_Standard_Edition_(J2E) for more information about configuring the zenjmx daemon with the Sun JRE tools.


  1. Navigate to the device class or device.
    • If applying changes to a device class:
      1. Select the class in the devices hierarchy.
      2. Click Details.
      3. Select Configuration Properties.
    • If applying changes to a device:
      1. Click the device in the device list.
      2. Select Configuration Properties.
  2. Edit the appropriate configuration properties for the device or devices.
    WebLogic Configuration Properties
    Name Description
    zWebLogicJmxManagementAuthenticate This configuration property is deprecated
    zWebLogicJmxManagementPassword JMX password
    zWebLogicJmxManagementPort The port number used to gather JMX information
    zWebLogicJmxManagementUsername JMX username for authentication


  3. Click Save to save your changes. You will now be able to start collecting the WebLogic server metrics from this device.
  4. Navigate to Graphs and you should see some placeholders for performance graphs. After approximately 15 minutes you should see the graphs start to become populated with information.


Tip: The out-of-the-box WebLogic data source configuration has been defined at the macro level, but can be configured to operate on a more granular basis. For example, the Servlet Reload Count applies to all servlets in all web applications but it could be narrowed to be Servlet /submitOrder in web application "production server".


Change the Amount of Data Collected and Graphed

For performance reasons you may reduce the amount of metrics retrieved.

  1. Navigate to the device or device class.
  2. Select Monitoring Templates in the left panel.
  3. From the Action menu, select Bind Templates to display the Bind Templates dialog.
  4. Move templates from the Available area to the Selected area, and then click Save.
    WebLogic Templates
    Name Description
    WebLogic Core Core information about any WebLogic server, including memory usage, threads, and uptime.
    WebLogic JCA
    WebLogic JMS
    WebLogic JMS Destination
    WebLogic JTA
    WebLogic JTA Rollbacks
    WebLogic JVM
    WebLogic Thread Pool Threadpool metrics measured per Tomcat connector
    WebLogic Timer Service
    WebLogic User Lockouts


  5. Click the OK button to save your changes.


Viewing Raw Data

WebLogic has a tool to check with monitoring data - "WebLogic ServerAdministration Console". By default it is available on:

http://WEB_LOGIC_HOST:7001/console/dashboard


To view raw data JConsole application from Java suite can be used. To connect to WebLogic Server JMX point JConsole to:

service:jmx:rmi:///jndi/rmi://SERVER_IP:JMX_PORT/jmxrmi


Monitor SSL-Proxied WebLogic Servers

If you are monitoring a Web application running on WebLogic server, you may find that the transaction always fails with a code 550 regardless of how you configure the script. This could be a result of the WebLogic server being behind an SSL proxy. When used in this configuration, WebLogic requires that a WL-Proxy-SSL header be added to the request so that it knows to redirect to HTTPS instead of HTTP.

To support this extra header in your Zenoss platform Web transaction, you must make the following changes on the script tab of your WebTx data source.

  • Remove any content from the Initial URL field.
  • Add the following to the beginning of the Script box.
    add_extra_header WL-Proxy-SSL true
    go


Limitations

Depending on WebLogic server configuration it may happen that not all JMX datapoints are collected. This may occur when all monitoring templates are enabled. To deal with it turn off monitoring templates you not interested in as described in "Change the Amount of Data Collected and Graphed" section.


Daemons

Type Name
Performance Collector zenjmx


Changes

2.2.3
  • Dropped support of 9.0
  • Updated monitoring templates for newer versions of WebLogic Server
  • Added tests

Installation

Normal Installation (packaged egg)

  1. Download the appropriate egg file for the version of Zenoss you are running.
  2. Ensure you are logged in as the zenoss user:
    $ sudo su - zenoss
  3. Install the ZenPack:
    $ zenpack --install ZenPacks.zenoss.WebLogicMonitor-*.egg
  4. Restart these services:
    $ zenoss restart


Discuss

Purplemarker.png New: Don't forget to add yourself to the Zenoss User Map!

blog comments powered by Disqus