Skip to main content
Version: NG-2.16

OHS

Introduction

Oracle HTTP Server (OHS) is a web server software product developed by Oracle Corporation. It is built on the Apache HTTP Server,one of the most widely used and open-source web servers in the world. OHS extends the capabilities of the Apache web server and is designed to work seamlessly with Oracle's other software products, particularly within the Oracle Fusion Middleware stack.

Getting Started

Compatibility

The OHS O11ySource is compatible with all versions greater than 12.2.0.

Data Collection Method

VuNet's vuAppAgent collects OHS metrics by establishing a connection to the server-status module, while additional metrics pertaining to vhosts are gathered through a connection to the DMS module.

OHS logs are collected by VuNet's vuLogAgent

Prerequisites

Inputs for Configuring Data Source

OHS Server
  • Period [in seconds]: How frequently data is gathered. period should be between 60 seconds - 3000 seconds.
  • Instance Details: Enter the Instance Details
  • IP Address: IP address on which DMS & Server-status module listens.This is configured in the ohs config file.
  • Instance Name: The name of the OHS instance
  • Server Status Path: Provide the path to server-status page. Eg: /server-status
  • Server Status Port: Provide the port to access server-status page.
  • Is SSL Enabled for Server status page?: Select if the SSL enabled or not to access this URL
  • DMS Path: Provide the path to dms page. Eg: /dms/dms.jsp
  • DMS Port: Provide the port to access DMS page.
  • Is SSL Enabled for DMS?: Select if the SSL enabled or not to access this URL
  • Log Configuration: Enter the logs details
  • Access Log Path: Enter the OHS access logfile's entire path.
  • OHS Error Log Path: Enter the OHS error logfile's entire path.

Firewall Requirement

To collect data from this O11ySource, ensure the following ports are opened:

Source IPDestination IPDestination PortProtocolDirection
IP address of the OHS serverData Collector End Point9092*TCPInbound

*Before providing the firewall requirements, please update the port based on the customer environment.

Configuring the Target

Configure Metrics Collection from OHS Server Enable Server Status Module To enable the server-status module in Oracle HTTP Server (OHS), changes are required to be made in the server configuration file (httpd.conf) or the OHS configuration file specific to your environment. Here are the general steps to enable the server-status module in OHS:

  • Open the Configuration File: Locate and open the configuration file for your OHS installation. This file is often named httpd.conf or ohs.conf and is typically located in the OHS configuration directory.
  • Locate the LoadModule Directive: Search for the LoadModule directives in the configuration file. These directives are used to load modules (including the server-status module) into OHS. Look for a line similar to the following:
LoadModule status_module "${PRODUCT_HOME}/modules/mod_status.so"

If you can't find this line, you may need to add it. Make sure the mod_status.so module file exists in the modules directory of your OHS installation.

  • Configure the server-status Location: You will also need to configure the of the server-status page. Add or modify a directive in your configuration file. Here's an example:
<Location /server-status>
SetHandler server-status
Require ip 127.0.0.1
Require ip 192.168.1.0/24
</Location>

This configuration restricts access to the server-status page to the 127.0.0.1 and network 192.168.1.0/24. Adjust the "Require ip" directive as needed to specify which IP addresses or networks are allowed to access the server-status page.

Locate the ExtendedStatus configuration directive within the configuration file and set it to On. Enabling the ExtendedStatus to On allows for the collection of extended status information.

Enable DMS Module To enable the DMS (Dynamic Monitoring Service) module in Oracle HTTP Server (OHS), configuration changes are required to be made in the OHS configuration file (httpd.conf or admin.conf). Here are the steps to enable the DMS module:

  • Open the Configuration File: Locate and open the OHS configuration file (httpd.conf or admin.conf) in a text editor.
  • Locate the LoadModule Directive: Search for the LoadModule directives in the configuration file. These directives are used to load modules, including the DMS module, into OHS. Look for a line similar to the following:
LoadModule status_module "${PRODUCT_HOME}/modules/mod_dms.so"

If you can't find this line, you may need to add it. Make sure the mod_dms.so module file exists in the modules directory of your OHS installation.

  • Configure the DMS Module: To configure the DMS module, add a block to your configuration file. This block defines where you want to enable DMS functionality. For example:
<Location /dms>
SetHandler dms-handler
Require ip 127.0.0.1
Require ip 192.168.1.0/24
</Location>

This configuration restricts access to the DMS page to the 127.0.0.1 and network 192.168.1.0/24. Adjust the "Require ip" directive as needed to specify which IP addresses or networks are allowed to access the DMS page. Configure Logs Collection from OHS Server The OHS access log offers even more specific information about each client request than the status module does. OHS logs can be customized to include information that is more pertinent to your requirements. We need to enhance the current logging format to include the request duration information. The %D variable precisely measures the time taken to handle each request in microseconds. To integrate %D into the log format used by Oracle HTTP Server (OHS), you should make adjustments to your OHS configuration file. Typically, this file can be found in the httpd.conf or within dedicated configuration files used by OHS.

  • Find your OHS configuration file, commonly named httpd.conf, and open it for editing. Then, search for the LogFormat directive, as this directive is responsible for defining the log format utilized by OHS.
  • Modify the LogFormat directive to include %D. For example:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined

In the above example, we added %D to the end of the log format string. Save and Restart After saving the configuration file, proceed to restart your Oracle HTTP Server to ensure the changes take effect. The method for restarting your OHS depends on your specific installation:

  • Using Command Line: You can employ command-line utilities to restart OHS. For instance, you can use commands such as apachectl restart or httpd -k restart based on your OHS installation.
  • Fusion Middleware Control: Alternatively, if you prefer a graphical interface, you can utilize Oracle Fusion Middleware Control to manage your OHS instance. It provides options for starting, stopping, and restarting Oracle HTTP Server with ease.
  • opmnctl Command: The opmnctl command is another option for controlling Oracle Process Manager and Notification Server (OPMN), which manages various components of Oracle Fusion Middleware, including OHS. You can utilize opmnctl to gracefully restart the Oracle HTTP Server component.

Configuration Steps

  • Enable the O11ySource.
  • Select the Sources tab and press the + button to add a new OHS host to be monitored.
  • Set up metrics and log collection configurations. The O11ysource already provides predefined metric collection queries. You have the flexibility to adjust query intervals, modify existing queries, and introduce new queries as needed. Afterwards, select Save and Continue to proceed with downloading the Logbeat agent.
  • The following packages will be available for download based on the OS:vuAppAgent Fresh Install Dropdown Option - Downloads the full vuAppAgent package with required configurations for a fresh installationvuHealthbAgent Update Dropdown Option - Downloads the agent configuration package to update an existing vuAppAgent installationvuLogAgent Fresh Install Dropdown Option - Downloads the full vuLogAgent package with required configurations for a fresh installationvuLogAgent Update Dropdown Option - Downloads the agent configuration package to update an existing vuLogAgent installation
  • Download the agent installation or update package, then click Finish to close the data source window.

Metrics Collected

NameDescriptionData Type
o11ysource_nameName of the observability source (O11y source)String
doc_typeType of document storedString
ohs_instance_idUnique identifier for the Oracle HTTP Server (OHS) instanceString
tagsAdditional metadata tagsString
tenant_idID of the tenant using the systemUInt8
collection_moduleThe module responsible for collecting the dataString
hostnameName of the host machineString
bu_idBusiness Unit IDUInt8
portPort number on which the OHS instance is runningString
instance_nameName of the specific instanceString
hostHostname or IP address of the OHS instanceString
@timestampTimestamp when the metric was collected (string format)String
source_idUnique ID for the source of the dataString
typeType of data or event collectedString
metricset_nameName of the metric set collectedString
metricset_moduleModule responsible for generating the metric setString
ohs_statusCurrent status of the OHS instance (e.g., running, stopped)String
ohs_wlsWait_avgAverage wait time for WebLogic Server connectionsFloat64
ohs_wlsWait_activeNumber of active WebLogic Server waitsUInt64
ohs_totalHandled_valueTotal number of requests handled by the OHS instanceUInt64
ohs_connection_avgAverage number of active connectionsUInt64
ohs_busyThreads_valueNumber of busy threads in the OHS instanceUInt64
ohs_handle_activeNumber of currently active request handlersUInt64
ohs_totalErrors_valueTotal number of errors encounteredUInt64
ohs_totalDeclines_valueTotal number of declined requestsUInt64
ohs_upTime_valueTotal uptime of the OHS instance (in seconds)UInt64
ohs_request_avgAverage number of requests processedUInt64
ohs_numProcesses_valueTotal number of processes in the OHS instanceUInt64
ohs_instance_name_valueName of the OHS instanceString
ohs_handle_avgAverage number of request handlers usedUInt64
ohs_totalRetries_valueTotal number of retried requestsUInt64
ohs_numThreads_valueTotal number of threads available in the OHS instanceUInt64
ohs_request_activeNumber of active requests being processedUInt64
ohs_busyProcesses_valueNumber of busy processes in the OHS instanceUInt64
ohs_wlsWait_completedNumber of completed WebLogic Server waitsUInt64
ohs_connection_activeNumber of active connections in the OHS instanceUInt64
ohs_totalSuccess_valueTotal number of successfully processed requestsUInt64
targetTarget system or service being monitoredString
periodData collection interval in secondsFloat64
timestampHigh-precision timestamp of the collected dataDateTime64
o11ysource_nameName of the observability source (O11y source)String
doc_typeType of document storedString
ohs_instance_idUnique identifier for the Oracle HTTP Server (OHS) instanceString
tagsAdditional metadata tagsString
tenant_idID of the tenant using the systemUInt8
collection_moduleThe module responsible for collecting the dataString
hostnameName of the host machineString
bu_idBusiness Unit IDUInt8
portPort number on which the OHS instance is runningString
instance_nameName of the specific instanceString
hostHostname or IP address of the OHS instanceString
@timestampTimestamp when the metric was collected (string format)String
source_idUnique ID for the source of the dataString
typeType of data or event collectedString
metricset_nameName of the metric set collectedString
metricset_moduleModule responsible for generating the metric setString
ohs_statusCurrent status of the OHS instance (e.g., running, stopped)String
ohs_load15System load average over 15 minutesFloat64
ohs_total_accessesTotal number of accesses (requests) handled by OHSUInt64
ohs_uptime_msTotal uptime of the OHS instance in millisecondsUInt64
ohs_total_durationTotal duration of all requests processed by OHSUInt64
ohs_idle_workersNumber of idle worker threads availableUInt64
ohs_scoreboard_idle_cleanup_of_workerNumber of worker threads in the idle cleanup stateUInt64
ohs_scoreboard_loggingNumber of worker threads in the logging stateUInt64
ohs_scoreboard_open_slotsNumber of available worker slotsUInt64
ohs_scoreboard_reading_requestNumber of worker threads reading a requestUInt64
ohs_scoreboard_starting_upNumber of worker threads in the startup phaseUInt64
ohs_scoreboard_closing_connectionNumber of worker threads closing a connectionUInt64
ohs_scoreboard_sending_replyNumber of worker threads sending a responseUInt64
ohs_scoreboard_dns_lookupNumber of worker threads performing DNS lookupsUInt64
ohs_scoreboard_gracefully_finishingNumber of worker threads gracefully finishing requestsUInt64
ohs_scoreboard_waiting_for_connectionNumber of worker threads waiting for new connectionsUInt64
ohs_scoreboard_keepaliveNumber of worker threads in keep-alive modeUInt64
ohs_requests_per_secondNumber of requests processed per secondFloat64
ohs_duration_per_requestAverage duration per request in millisecondsFloat64
ohs_bytes_per_secondData throughput in bytes per secondFloat64
ohs_restart_timeTimestamp of the last OHS restartString
ohs_total_bytesTotal bytes transferred by OHSFloat64
ohs_load1System load average over 1 minuteFloat64
ohs_load5System load average over 5 minutesFloat64
ohs_cpu_load_pctCPU load percentage of the OHS instanceFloat64
ohs_cpu_children_userCPU time used by child processes in user modeFloat64
ohs_cpu_children_systemCPU time used by child processes in system modeFloat64
ohs_cpu_userCPU time used in user modeFloat64
ohs_cpu_systemCPU time used in system modeFloat64
ohs_bytes_per_requestAverage number of bytes transferred per requestFloat64
ohs_busy_workersNumber of currently busy worker threadsUInt64
ohs_total_bytes_diffDifference in total bytes transferred since the last checkUInt64
ohs_total_bytes_rateRate of bytes transferred per secondFloat64
ohs_total_accesses_diffDifference in total accesses since the last checkUInt64
ohs_total_accesses_rateRate of accesses per secondFloat64
targetTarget system or service being monitoredString
periodData collection interval in secondsFloat64
timestampHigh-precision timestamp of the collected dataDateTime64
o11ysource_nameName of the observability source (O11y source)String
doc_typeType of document storedString
ohs_instance_idUnique identifier for the Oracle HTTP Server (OHS) instanceString
tagsAdditional metadata tagsString
tenant_idID of the tenant using the systemUInt8
collection_moduleThe module responsible for collecting the dataString
hostnameName of the host machineString
bu_idBusiness Unit IDUInt8
portPort number on which the OHS instance is runningString
instance_nameName of the specific instanceString
hostHostname or IP address of the OHS instanceString
@timestampTimestamp when the metric was collected (string format)String
source_idUnique ID for the source of the dataString
typeType of data or event collectedString
metricset_nameName of the metric set collectedString
metricset_moduleModule responsible for generating the metric setString
ohs_vhost_requests_activeCurrent status of the OHS instance (e.g., running, stopped)UInt64
ohs_vhost_requests_avgSystem load average over 15 minutesFloat64
ohs_vhost_typeTotal number of accesses (requests) handled by OHSString
ohs_vhost_nameTotal uptime of the OHS instance in millisecondsString
ohs_vhost_requests_completedTotal duration of all requests processed by OHSUInt64
ohs_vhost_requests_avg_diffNumber of idle worker threads availableInt64
ohs_vhost_requests_avg_rateNumber of worker threads in the idle cleanup stateFloat64
ohs_vhost_requests_completed_diffNumber of worker threads in the logging stateUInt64
ohs_vhost_requests_completed_rateNumber of available worker slotsFloat64
targetNumber of worker threads reading a requestString
uuidNumber of worker threads in the startup phaseString
periodNumber of worker threads closing a connectionFloat64
timestampNumber of worker threads sending a responseDateTime64
instance_nameName of the Oracle HTTP Server (OHS) instanceString
fileLog file from which the data is collectedString
o11ysource_nameName of the observability source (O11y source)String
hostHostname or IP address of the OHS instanceString
source_idUnique identifier for the data sourceString
typeType of event or log entryString
targetTarget system or service being monitoredString
ohs_access_user_nameUsername used for accessing the serverString
ohs_access_methodHTTP method used (e.g., GET, POST, PUT)String
messageLog message containing request detailsString
ohs_access_tatTotal access time (TAT) in millisecondsFloat64
ohs_access_response_codeHTTP response code (e.g., 200, 404, 500)UInt16
ohs_access_timeTimestamp when the access request was processedString
ohs_access_http_versionHTTP version used (e.g., HTTP/1.1, HTTP/2.0)String
ohs_access_session_idUnique session ID associated with the requestString
ohs_access_body_sent_bytesNumber of bytes sent in the response bodyUInt32
ohs_access_remote_ipIP address of the client making the requestString
ohs_access_urlRequested URL pathString
http_codeHTTP response status codeUInt16
@timestampTimestamp when the log entry was recorded (string format)String
ResponseResponse message or payload from the requestString
geo_country_nameGeographical country name of the client IPString
geo_timezoneTime zone associated with the client locationString
scaled_ueiScaled User Experience Index (UEI) metricFloat32
timestampHigh-precision timestamp of the collected dataDateTime64
instance_nameName of the Oracle HTTP Server (OHS) instanceString
fileLog file from which the error data is collectedString
o11ysource_nameName of the observability source (O11y source)String
hostHostname or IP address of the OHS instanceString
source_idUnique identifier for the data sourceString
typeType of event or log entryString
targetTarget system or service being monitoredString
ohs_error_codeError code associated with the log entryString
ohs_error_host_addrIP address of the host where the error occurredString
ohs_error_componentComponent of OHS that encountered the errorString
messageFull error message or log entryString
ohs_error_host_idUnique identifier of the host machineString
ohs_error_messageDescription of the errorString
ohs_error_loglevelSeverity level of the error (e.g., INFO, WARN, ERROR)String
ohs_error_timeTimestamp when the error occurred (high precision)DateTime64
ohs_error_tidThread ID (TID) where the error was loggedString
ohs_error_moduleOHS module responsible for handling the requestString
ohs_error_userUsername associated with the request that caused the errorString
ohs_error_virtual_hostVirtual host configuration where the error occurredString
ohs_error_pidProcess ID (PID) of the server process handling the requestString
timestampHigh-precision timestamp of the collected dataDateTime64
@timestampFormatted timestamp when the error was loggedString
ohs_error_client_ipClient IP address that made the request causing the errorString