Skip to main content
Version: NG-3.1

IBM HTTP Server

Introduction

IBM HTTP Server (IHS) is a robust and secure web server based on Apache HTTP Server, with enhancements and extensions from IBM. It is designed to handle high-volume, high-availability web transactions.

Getting Started

Compatibility

The IBM HTTP Server (IHS) O11ySource supports IHS versions 7.0, 8.0, 8.5, and 9.0.

Data Collection Method

vuSmartMaps collects health metrics and logs through OmniAgent’s health and log collection probes.

Prerequisites

Inputs for Configuring Data Source

  • IHS Server: The IP Address/FQDN of the IHS server. This field is the key to identify each server you add here.
nan
  • Period [in seconds]: How frequently data is gathered. The period should be between 60 seconds – 3000 seconds.
  • URL: The server URL to IHS /server-status endpoint. Eg: http://127.0.0.1, https://127.0.0.1, http://127.0.0.1:8080, https://127.0.0.1:8080.
  • Access Log Path: Enter the full path to the IHS access log file.
  • Error Log Path: Enter the full path to the IHS error log file.

Firewall Requirement

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

Source IPDestination IPDestination PortProtocolDirection
IP address of the IBM HTTP ServervuSmartMaps Collection/Ingress node IP443*TCPInbound

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

Configuring the Target

Configure Metrics Collection from IBM HTTP Server (IHS)

IHS metrics are collected using VuNet’s health collection probe by connecting to the server-status endpoint provided by mod_status.

Enable mod_status and ensure ExtendedStatus is enabled.

Update the configuration to allow access to /server-status from the vuSmartMaps designated IP address.

Example configuration (IHS 9+ / Apache 2.4+ syntax):

<IfModule mod_status.c>
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Require ip <DATA_COLLECTOR_IP>
</Location>
</IfModule>

Restart IHS to apply changes:

<IHS_HOME>/bin/apachectl -k graceful

Validate from the vuSmartMaps Collection/Ingress node:

curl -s http://<IHS_HOST>:<PORT>/server-status?auto

Configure Logs Collection from IBM HTTP Server (IHS)

IHS logs are collected using VuNet’s logs collection probe. Ensure access and error logs are enabled and readable by the probe.

Common log locations:

Typical IHS path: <IHS_HOME\>/logs/access_log, <IHS_HOME\>/logs/error_log

Configuration Steps

Metrics Collected

NameDescriptionData Type
@timestampThe original string timestamp from the source log.String
timestampThe timestamp for the data point with high precision (64-bit).DateTime64
targetThe target for the metrics, typically identifying the specific system or service being monitored.String
hostHostname of the server where the metrics were collected.String
tenant_idTenant identifier for multi-tenant environments.LowCardinality(String)
bu_idBusiness Unit identifier for organizational grouping.LowCardinality(String)
TypeType of service being monitored (e.g., Apache, Nginx, etc.).String
UptimeTime in seconds that the server or service has been running since the last restart.Float64
StatusCurrent status of the server or service (e.g., "Running", "Stopped").LowCardinality(String)
service_typeThe type of service provided (e.g., HTTP, HTTPS).String
source_idUnique identifier for the source from which the metrics are collected.String
service_addressThe address of the service (e.g., IP address or URL).String
vublock_nameBlock name or virtual unit block within a larger system.String
metricset_nameThe name of the specific metric set (group of related metrics).String
typeType of data point being recorded (e.g., gauge, counter).String
periodTime period for which the metrics are being collected (in seconds).Float64
topic_nameName of the topic related to the metric, such as a specific service or function.LowCardinality(String)
requests_per_secNumber of HTTP requests per second.Float64
hostnameThe hostname of the server where Apache is running.String
uptime_uptimeThe uptime of the current Apache process in seconds.Float64
uptime_server_uptimeTotal uptime of the Apache server since the last restart.Float64
cpu_loadThe current CPU load (the average amount of work the CPU has to do).Float64
cpu_userThe percentage of CPU time spent in user space.Float64
cpu_systemThe percentage of CPU time spent in kernel space.Float64
cpu_children_userCPU time spent by child processes in user mode.Float64
cpu_children_systemCPU time spent by child processes in kernel mode.Float64
cpu_system_diffDifference in system CPU usage between the last two metric collections.Float64
cpu_system_rateRate of system CPU usage.Float64
cpu_user_diffDifference in user CPU usage between the last two metric collections.Float64
cpu_user_rateRate of user CPU usage.Float64
scoreboard_waiting_for_connectionNumber of workers waiting for a connection.UInt64
scoreboard_reading_requestNumber of workers reading requests.UInt64
scoreboard_dns_lookupNumber of workers performing DNS lookups.UInt64
scoreboard_closing_connectionNumber of workers closing connections.UInt64
scoreboard_gracefully_finishingNumber of workers gracefully finishing connections.UInt64
scoreboard_idle_cleanupNumber of workers cleaning up idle connections.UInt64
scoreboard_keepaliveNumber of workers handling keep-alive connections.UInt64
scoreboard_totalTotal number of scoreboard slots used.UInt64
scoreboard_loggingNumber of workers writing log entries.UInt64
scoreboard_open_slotNumber of open slots in the scoreboard.UInt64
scoreboard_starting_upNumber of workers in the process of starting up.UInt64
scoreboard_sending_replyNumber of workers sending replies to clients.UInt64
load_15System load average over the last 15 minutes.Float64
load_1System load average over the last 1 minute.Float64
load_5System load average over the last 5 minutes.Float64
bytes_per_secThe number of bytes served per second.Float64
connections_totalTotal number of connections handled.Float64
connections_async_writingNumber of asynchronous writing connections.Float64
connections_async_keep_aliveNumber of asynchronous keep-alive connections.Float64
connections_async_closingNumber of asynchronous closing connections.Float64
workers_busyNumber of busy workers at the time of data collection.Float64
workers_idleNumber of idle workers at the time of data collection.Float64
total_accessesTotal number of accesses (requests) made to the server.Float64
bytes_per_requestAverage number of bytes per request.Float64
total_kbytesTotal number of kilobytes served.Float64
total_accesses_diffDifference in the number of total accesses since the last metric collection.UInt32
total_kbytes_diffDifference in total kilobytes served since the last metric collection.UInt64
total_kbytes_rateRate at which kilobytes are being served.Float64
total_cpuTotal CPU time used by the server.Float64
total_cpu_pctPercentage of total CPU utilization.Float64
busy_workers_pctPercentage of workers that are busy.Float64
idle_workers_pctPercentage of workers that are idle.Float64
timestampThe timestamp when the event was logged, accurate to the microsecond level.DateTime64
hostThe name or IP address of the host where the log was generated.String
targetThe target system, service, or process associated with the log entry.String
topic_nameThe name of the topic, possibly referring to a logging topic or category.String
vublock_nameVirtual unit block name, representing a logical or virtual part of the system (if applicable).String
doc_typeThe type of document or record being logged (e.g., error log, transaction log, etc.).String
typeGeneral log type (e.g., request, response, error).String
source_idUnique identifier for the source generating the log entry.String
messageThe log message itself, containing details of the event or transaction.String
log_offsetThe offset position within the log file where this entry is located.Float64
log_file_pathThe file path to the log file where this entry is storedString
TypeType of request being logged (similar to type, used in some contexts for HTTP or API request types).String
requestThe HTTP or API request details (URL, parameters, etc.).String
response_codeThe response code returned by the server (custom codes for application-level responses).UInt16
http_codeStandard HTTP response code (e.g., 200 for OK, 404 for not found).UInt16
request_timeTime taken to process the request, in milliseconds.UInt32
extra_infoAdditional information about the request or log entry.String
methodThe HTTP method used (GET, POST, PUT, DELETE, etc.).String
msMilliseconds taken for the entire request-response process (possibly a duplicate of request_time).String
client_ipThe IP address of the client that made the request.String
bytes_sentTotal number of bytes sent in the response.String
responseThe actual response body returned by the server.String
geo_timezoneTimezone of the client or user making the request (derived from geolocation).String
geo_city_nameCity name of the client or user making the request (based on IP geolocation).String
geo_country_nameCountry name of the client or user making the request (based on IP geolocation).String
message_idA unique identifier for the message or log entry.String
tidThread ID of the process that generated the log entry.String
pidProcess ID of the process that generated the log entry.String
input_typeInput type of ihs logsString