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 vuHealthAgent 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: The IP Address/FQDN of the OHS server. This field is the key to identify each server you add here.
- Period [in seconds]: How frequently data is gathered. period should be between 60 seconds - 3000 seconds.
Add Instances
- 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
- Sever 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
Logs Collection
Add Logs
- Access Log Path: Enter the OHS access logfile's entire path.
- OHS Error Path: Enter the OHS error logfile's entire path.
Firewall Requirement
To collect data from this O11ySource, ensure the following ports are opened:
Source IP | Destination IP | Destination Port | Protocol | Direction |
---|---|---|---|---|
IP address of the OHS server | Data Collector End Point | 9092* | TCP | Inbound |
*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:vuHealthAgent Fresh Install Dropdown Option - Downloads the full vuHealthAgent package with required configurations for a fresh installationvuHealthbAgent Update Dropdown Option - Downloads the agent configuration package to update an existing vuHealthAgent 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
Name | Description | Data Type |
---|---|---|
o11ysource_name | The name of the observability source collecting the data. | String |
doc_type | The type or category of the document or log entry. | String |
ohs_instance_id | The unique identifier for the Oracle HTTP Server (OHS) instance. | String |
tags | Tags associated with the log entry or metric, often used for categorization. | String |
tenant_id | Identifier for the tenant to which this data belongs. | UInt8 |
collection_module | The module responsible for collecting the data. | String |
hostname | The hostname of the system generating the data. | String |
bu_id | Identifier for the business unit associated with the data. | UInt8 |
port | The port on which the Oracle HTTP Server is running. | String |
instance_name | The name of the specific Oracle HTTP Server instance. | String |
host | The hostname or IP address of the host system. | String |
@timestamp | The timestamp when the event or metric was recorded, typically in ISO 8601 format. | String |
source_id | A unique identifier for the data source. | String |
type | The type or category of data being recorded (e.g., metric, log). | String |
metricset_name | The name of the metric set being collected. | String |
metricset_module | The module responsible for processing the metric set. | String |
ohs_status | The current status of the Oracle HTTP Server instance (e.g., running, stopped). | String |
ohs_wlsWait_avg | The average wait time for WebLogic Server requests. | Float64 |
ohs_wlsWait_active | The number of active WebLogic Server wait requests. | UInt64 |
ohs_totalHandled_value | The total number of requests handled by the Oracle HTTP Server. | UInt64 |
ohs_connection_avg | The average number of connections handled. | UInt64 |
ohs_busyThreads_value | The number of threads currently busy handling requests. | UInt64 |
ohs_handle_active | The number of currently active request handlers. | UInt64 |
ohs_totalErrors_value | The total number of errors encountered by the server. | UInt64 |
ohs_totalDeclines_value | The total number of requests declined by the server. | UInt64 |
ohs_upTime_value | The total uptime of the Oracle HTTP Server, typically in seconds. | UInt64 |
ohs_request_avg | The average number of requests processed. | UInt64 |
ohs_numProcesses_value | The number of processes running in the Oracle HTTP Server instance. | UInt64 |
ohs_instance_name_value | The name of the Oracle HTTP Server instance as reported. | String |
ohs_handle_avg | The average number of request handlers. | UInt64 |
ohs_totalRetries_value | The total number of request retries attempted by the server. | UInt64 |
ohs_numThreads_value | The total number of threads in use by the server. | UInt64 |
ohs_request_active | The number of active requests being processed. | UInt64 |
ohs_busyProcesses_value | The number of processes currently busy handling requests. | UInt64 |
ohs_wlsWait_completed | The total number of completed WebLogic Server wait requests. | UInt64 |
ohs_connection_active | The number of active connections. | UInt64 |
ohs_totalSuccess_value | The total number of successfully processed requests. | UInt64 |
target | The target resource or application associated with the metrics. | String |
period | The period of data collection or metric aggregation, usually in seconds. | Float64 |
timestamp | The precise timestamp of the metric or event, including milliseconds. | DateTime64 |
o11ysource_name | The name of the observability source collecting the data. | String |
doc_type | The type or category of the document or log entry. | String |
ohs_instance_id | The unique identifier for the Oracle HTTP Server (OHS) instance. | String |
tags | Tags associated with the log entry or metric, often used for categorization. | String |
tenant_id | Identifier for the tenant to which this data belongs. | UInt8 |
collection_module | The module responsible for collecting the data. | String |
hostname | The hostname of the system generating the data. | String |
bu_id | Identifier for the business unit associated with the data. | UInt8 |
port | The port on which the Oracle HTTP Server is running. | String |
instance_name | The name of the specific Oracle HTTP Server instance. | String |
host | The hostname or IP address of the host system. | String |
@timestamp | The timestamp when the event or metric was recorded, typically in ISO 8601 format. | String |
source_id | A unique identifier for the data source. | String |
type | The type or category of data being recorded (e.g., metric, log). | String |
metricset_name | The name of the metric set being collected. | String |
metricset_module | The module responsible for processing the metric set. | String |
ohs_status | The current status of the Oracle HTTP Server instance (e.g., running, stopped). | String |
ohs_load15 | Server load average over the last 15 minutes. | Float64 |
ohs_total_accesses | Total number of requests processed by the server. | UInt64 |
ohs_uptime_ms | The total uptime of the server in milliseconds. | UInt64 |
ohs_total_duration | The total duration (in milliseconds) of all requests processed. | UInt64 |
ohs_idle_workers | The number of idle worker threads. | UInt64 |
ohs_scoreboard_idle_cleanup_of_worker | Number of worker threads in the "idle cleanup" state. | UInt64 |
ohs_scoreboard_logging | Number of worker threads actively logging. | UInt64 |
ohs_scoreboard_open_slots | Number of available worker slots. | UInt64 |
ohs_scoreboard_reading_request | Number of worker threads currently reading client requests. | UInt64 |
ohs_scoreboard_starting_up | Number of worker threads starting up. | UInt64 |
ohs_scoreboard_closing_connection | Number of worker threads closing connections. | UInt64 |
ohs_scoreboard_sending_reply | Number of worker threads sending responses to clients. | UInt64 |
ohs_scoreboard_dns_lookup | Number of worker threads performing DNS lookups. | UInt64 |
ohs_scoreboard_gracefully_finishing | Number of worker threads gracefully finishing requests. | UInt64 |
ohs_scoreboard_waiting_for_connection | Number of worker threads waiting for new connections. | UInt64 |
ohs_scoreboard_keepalive | Number of worker threads in a keep-alive state. | UInt64 |
ohs_requests_per_second | The average number of requests handled per second. | Float64 |
ohs_duration_per_request | The average duration (in milliseconds) of requests. | Float64 |
ohs_bytes_per_second | The average number of bytes sent per second. | Float64 |
ohs_restart_time | The timestamp of the last server restart. | String |
ohs_total_bytes | The total number of bytes sent by the server. | Float64 |
ohs_load1 | Server load average over the last 1 minute. | Float64 |
ohs_load5 | Server load average over the last 5 minutes. | Float64 |
ohs_cpu_load_pct | The CPU load percentage utilized by the server. | Float64 |
ohs_cpu_children_user | CPU usage by child processes in user mode. | Float64 |
ohs_cpu_children_system | CPU usage by child processes in system mode. | Float64 |
ohs_cpu_user | CPU usage by the server in user mode. | Float64 |
ohs_cpu_system | CPU usage by the server in system mode. | Float64 |
ohs_bytes_per_request | The average number of bytes sent per request. | Float64 |
ohs_busy_workers | The number of worker threads actively processing requests. | UInt64 |
ohs_total_bytes_diff | The difference in total bytes sent since the last measurement. | UInt64 |
ohs_total_bytes_rate | The rate of bytes sent per second. | Float64 |
ohs_total_accesses_diff | The difference in total accesses since the last measurement. | UInt64 |
ohs_total_accesses_rate | The rate of accesses per second. | Float64 |
target | The target resource or application associated with the metrics. | String |
period | The period of data collection or metric aggregation, usually in seconds. | Float64 |
timestamp | The precise timestamp of the metric or event, including milliseconds. | DateTime64 |
o11ysource_name | The name of the observability source collecting the data. | String |
doc_type | The type or category of the document or log entry. | String |
ohs_instance_id | The unique identifier for the Oracle HTTP Server (OHS) instance. | String |
tags | Tags associated with the log entry or metric, often used for categorization. | String |
tenant_id | Identifier for the tenant to which this data belongs. | UInt8 |
collection_module | The module responsible for collecting the data. | String |
hostname | The hostname of the system generating the data. | String |
bu_id | Identifier for the business unit associated with the data. | UInt8 |
port | The port on which the Oracle HTTP Server is running. | String |
instance_name | The name of the specific Oracle HTTP Server instance. | String |
host | The hostname or IP address of the host system. | String |
@timestamp | The timestamp when the event or metric was recorded, typically in ISO 8601 format. | String |
source_id | A unique identifier for the data source. | String |
type | The type or category of data being recorded (e.g., metric, log). | String |
metricset_name | The name of the metric set being collected. | String |
metricset_module | The module responsible for processing the metric set. | String |
ohs_vhost_requests_active | The number of active requests currently being processed by the virtual host. | UInt64 |
ohs_vhost_requests_avg | The average number of requests handled by the virtual host. | Float64 |
ohs_vhost_type | The type of virtual host (e.g., HTTP, HTTPS). | String |
ohs_vhost_name | The name of the virtual host. | String |
ohs_vhost_requests_completed | The total number of requests completed by the virtual host. | UInt64 |
ohs_vhost_requests_avg_diff | The difference in the average number of requests handled by the virtual host since the last measurement. | Int64 |
ohs_vhost_requests_avg_rate | The rate of change in the average number of requests handled by the virtual host. | Float64 |
ohs_vhost_requests_completed_diff | The difference in the total number of requests completed by the virtual host since the last measurement. | UInt64 |
ohs_vhost_requests_completed_rate | The rate at which requests are being completed by the virtual host. | Float64 |
target | The target resource or application associated with the metrics. | String |
uuid | A unique identifier for the specific data record. | String |
period | The period of data collection or metric aggregation, usually in seconds. | Float64 |
timestamp | The precise timestamp of the metric or event, including milliseconds. | DateTime64 |
instance_name | Name of the specific instance where the event or metric is generated. | String |
file | Name of the file associated with the data or log entry. | String |
o11ysource_name | The name of the observability source collecting the data. | String |
host | The hostname or IP address of the system generating the data. | String |
source_id | A unique identifier for the data source. | String |
type | The type or category of data being recorded (e.g., log, metric). | String |
target | The target resource or application associated with the data. | String |
ohs_access_user_name | The username associated with the access request. | String |
ohs_access_method | The HTTP method used for the request (e.g., GET, POST). | String |
message | The message content of the log entry. | String |
ohs_access_tat | Total access time (TAT) in seconds for the request. | Float64 |
ohs_access_response_code | HTTP response code returned for the request (e.g., 200, 404). | UInt16 |
ohs_access_time | The timestamp of the access request in a human-readable format. | String |
ohs_access_http_version | The HTTP protocol version used for the request (e.g., HTTP/1.1). | String |
ohs_access_session_id | The session ID associated with the request. | String |
ohs_access_body_sent_bytes | The size of the response body sent, in bytes. | UInt32 |
ohs_access_remote_ip | The IP address of the client making the request. | String |
ohs_access_url | The URL accessed by the client. | String |
http_code | The HTTP response code returned for the request (duplicate of ohs_access_response_code). | UInt16 |
@timestamp | The timestamp when the event or metric was recorded, typically in ISO 8601 format. | String |
Response | The response content or status associated with the request. | String |
geo_country_name | The country name determined from the client’s IP address. | String |
geo_timezone | The timezone associated with the client’s geographical location. | String |
scaled_uei | Scaled value of the Unique Event Identifier (UEI), used for event correlation or categorization. | Float32 |
timestamp | The precise timestamp of the event or metric, including milliseconds. | DateTime64 |
instance_name | Name of the specific instance where the error was generated. | String |
file | Name of the file associated with the error log entry. | String |
o11ysource_name | Name of the observability source collecting the error data. | String |
host | The hostname or IP address of the system generating the error log. | String |
source_id | Unique identifier for the source of the data. | String |
type | The type or category of log being recorded (e.g., error, warning). | String |
target | Target resource or application associated with the error. | String |
ohs_error_code | Error code identifying the specific error encountered. | String |
ohs_error_host_addr | The host address where the error originated. | String |
ohs_error_component | The component or module of the system where the error occurred. | String |
message | Detailed message or description of the error. | String |
ohs_error_host_id | Host ID of the system where the error was generated. | String |
ohs_error_message | Error message providing detailed information about the issue. | String |
ohs_error_loglevel | The log level of the error (e.g., INFO, WARN, ERROR). | String |
ohs_error_time | The timestamp of when the error occurred, with millisecond precision. | DateTime64 |
ohs_error_tid | Thread ID associated with the error. | String |
ohs_error_module | The specific module in the application where the error occurred. | String |
ohs_error_user | Username associated with the session or request when the error occurred. | String |
ohs_error_virtual_host | The virtual host configuration under which the error occurred. | String |
ohs_error_pid | Process ID of the application or process encountering the error. | String |
timestamp | Precise timestamp of the error log, including milliseconds. | DateTime64 |
@timestamp | Human-readable ISO 8601 formatted timestamp when the error was recorded. | String |
ohs_error_client_ip | IP address of the client involved in the request that triggered the error. | String |