WebLogic application server discovery

Discovery creates or updates a CMDB record when it detects an instance of an Oracle or BEA Weblogic application server running on a Windows or Linux system.

Requirements

For Windows
  • PowerShell must be enabled on the MID Server.
  • The WebLogic Administration Server instances that start via WebLogic NodeManager must have the -Dweblogic.RootDirectory=<path> parameter defined upon server startup. The Windows credential must also have read permissions on the config.xml file.
For Linux
  • Discovery requires the use of these Bourne shell commands:
    • find
    • cat
    • dirname
  • WebLogic administration server instances started via NodeManager must have the -Dweblogic.RootDirectory=<path> parameter defined and visible through the Linux ps process stat command (for each AdminServer) for the rest of the Linux WebLogic application server and web application information to be populated in the CMDB.
  • The following comfiguration must be set on the sudorers file:

    User ALL=(root) NOPASSWD: /bin/sh *

    User is the user name on the SSH credential that you create for this discovery.

  • This command must be able to be run:

    /bin/sh /tmp/snc-*-findcat.sh * *"

    Do not make any changes to findcat.sh.

  • The Linux - Weblogic - Find config.xml probe must specify this parameter and value: must_sudo = true

Probes and sensors

Discovery uses this process to identify Linux WebLogic application servers:

  1. The Unix - Active Processes probe detects a running process that matches one of the follow criteria:
    • The parameters of the process contain weblogic.Server.
    • The parameters of the process contain -Dweblogic.name.
  2. If there is a match on one of the criteria:
    • A record is created in the BEA Weblogic [cmdb_ci_app_server_weblogic] table. The record is populated with the server name and TCP port, which is gathered from the running process.
    • The Linux - Weblogic - Find config.xml probe triggers. The sensor of this probe populates additional information in the BEA Weblogic [cmdb_ci_app_server_weblogic] record and the Web Application [cmdb_ci_web_application] record if applicable.
  3. The Linux - Weblogic - Find config.xml probe attempts to find the related config.xml file for the server by either:
    • Using the -Dweblogic.RootDirectory=<path> parameter defined in the running process.
    • Searching for the parent process that started the WebLogic server (only viable if the weblogic jvm was started via the startWeblogic.sh or related custom script and not the init process).

Discovery uses this process to identify Windows WebLogic application servers:

  1. The Windows - Active Processes probe detects a running process that matches one of the follow criteria:
    • The parameters of the process contain weblogic.Server.
    • The parameters of the process contain -Dweblogic.name.
  2. If there is a match on one of the criteria:
    • A record is created in the BEA Weblogic [cmdb_ci_app_server_weblogic] table. The record is populated with the server name and TCP port, which is gathered from the running process.
    • The Windows - Weblogic - Find config.xml probe triggers. The sensor of this probe populates additional information in the BEA Weblogic [cmdb_ci_app_server_weblogic] record and the Web Application [cmdb_ci_web_application] record if applicable.
  3. The Windows - Weblogic - Find config.xml probe attempts to find the related config.xml file for the server by:
    • Using the -Dweblogic.RootDirectory=<path> parameter defined in the running process.
    • Searching for config.xml files under the –Dplatform.home=<path> parameter defined in the running process (not as efficient using the parameters of the process).
  4. If there are associated web applications found in the WebLogic config.xml file, the Windows – Weblogic find web.xml probe triggers for each application. This probe reads the WebLogic web.xml file for each web application and the sensor, and then populates additional information.

Data collected

Table 1. Default data collected for Linux
Table Field Source
cmdb_ci_app_server_weblogi Name (name) running process
cmdb_ci_app_server_weblogic TCP port (tcp_port) running process
Table 2. Data collected from the config.xml file for Windows
Table Name Field Source
cmdb_ci_app_server_weblogic Version (version) config.xml
cmdb_ci_app_server_weblogic Weblogic domain (weblogic_domain) config.xml
cmdb_ci_web_application Name (name) config.xml
cmdb_ci_web_application Context path (context_path) config.xml
cmdb_ci_web_application App server (app_server) config.xml
Table 3. Default data collected on Windows
Label Table Name Field Name Source
Name cmdb_ci_app_server_weblogic name running process
TCP port cmdb_ci_app_server_weblogic tcp_port running process
Table 4. Data collected from configuration files for Windows
Label Table Name Field Name Source
Version cmdb_ci_app_server_weblogic version config.xml
Weblogic domain cmdb_ci_app_server_weblogic weblogic_domain config.xml
Name cmdb_ci_web_application name config.xml
Document base cmdb_ci_web_application document_base config.xml
Description cmdb_ci_web_application description web.xml
Servlet class cmdb_ci_web_application servlet_class web.xml
Servlet name cmdb_ci_web_application servlet_name web.xml
App server cmdb_ci_web_application app_server config.xml
TCP port cmdb_ci_app_server_weblogic tcp_port web.xml

Relationships

Table 5. Relationships
Parent class Relationship type Child class
cmdb_ci_app_server_weblogic Runs on::Runs cmdb_ci_linux_server
cmdb_ci_app_server_weblogic Contains::Contained by cmdb_ci_web_application
cmdb_ci_app_server_weblogic Depends on::Used by cmdb_ci_app_server_weblogic

This relationship is made between an AdminServer and any managed servers it encapsulates.

cmdb_ci_app_server_weblogic Runs on::Runs cmdb_ci_windows_server