Apache web server discovery

Discovery identifies and classifies information about Apache web servers on both Windows and Linux computers.

Credentials

Credential type
Applicative credentials
Windows credentials or SSH credentials for Linux machines.

If you are using Service Mapping, see Service Mapping commands requiring a privileged user for a list of the commands that require elevated rights to discover and map Unix-based hosts in your organization.

Classifier, patterns, and probes

Classifier Trigger probes Patterns
Apache Server
  • Horizontal discovery probe: launches patterns
  • Apache - Version*
  • Apache - Get Configuration*
  • Apache - Get JK ModuleApache - Get Proxy Module*
  • Apache On Windows Pattern
  • Apache On Unix Pattern
*For new instances, these probes are inactive on the classifier. Discovery uses patterns for discovery.

To use patterns, verify that the correct pattern is specified in the horizontal pattern probe on the classifier. See Add the Horizontal Pattern probe to a classifier for instructions.

Data collected

Discovery collects the following data on the Apache [cmdb_ci_apache_web_server] table for both Unix and Windows:
Label Field name
Name name
Version version
Description description
TCP port(s) tcp_port

Apache mod_jk and mod_proxy discovery

Discovery uses SSH to find Apache connectors mod_jk and mod_proxy.

Discovery uses the Unix - Active Processes probe to identify an Apache web server process by matching one of the following criteria: the name of the process is:
  • httpd, or
  • apache, or
  • httpd2, or
  • httpd2-prefork

If there is a match on one of these criteria, a record is created in the Web Server [cmdb_ci_web_server] table if one does not already exist for that running process.

The following probes are triggered after classification:
Table 1. Apache web server probes
Probe Description Commands
Apache – Version The sensor of this probe populates the Apache version information in the Web Server record. httpd
Apache – Get Configuration This probe contains a Bourne shell script and an argument that determines the path of the Apache configuration file. The sensor of this probe populates some additional information in the Web Server record. echo, sed, httpd, cut, grep, egrep (within the Borne shell script)
The sensor processing of the Apache – Get Configuration probe identifies whether either the mod_jk or mod_proxy modules are present and triggers the appropriate probe.
Table 2. Apache module probes
Probe Description Commands
Apache – Get JK Module If the mod_jk module is running as a load balancer on the server, the sensor of this probe populates the information in the Load Balancer Service [cmdb_ci_lb_service], Load Balancer Pool [cmdb_ci_lb_pool] and Load Balancer Pool Member [cmdb_ci_lb_pool_member] tables. echo, sed, httpd, cut, grep, egrep (within the Borne shell script)
Apache – Get Proxy Module If the mod_proxy module is running as a load balancer on the server, the sensor of this probe populates the information in the Load Balancer Service [cmdb_ci_lb_service], Load Balancer Pool [cmdb_ci_lb_pool] and Load Balancer Pool Member [cmdb_ci_lb_pool_member] tables. grep, egrep (within the Borne shell script)
In addition to data population, the following relationships are created in the CI Relationship [cmdb_rel_ci] table:
  • The records in the cmdb_ci_lb_appl table run on the cmdb_ci_web_server table records.
  • The records in the cmdb_ci_lb_service table use the cmdb_ci_lb_pool table records.
  • The records in the cmdb_ci_pool table are used by the cmdb_ci_service table record.
  • The records in the cmdb_ci_pool table are members of the cmdb_ci_pool_member table.
  • The records in the cmdb_ci_pool_member table are members of the cmdb_ci_pool table.

Legacy: Add sudo access for the Unix - Active Processes probe

For an Apache web server the Unix - Active Processes probe requires sudo privileges.

Before you begin

Role required: admin

About this task

You can configure the Unix - Active Processes probe to elevate privileges.

Procedure

  1. Navigate to Discovery > Probes.
  2. In the Search field, search for Unix - Active Processes.
  3. Click field, search for Unix - Active Processes probe.
  4. In the Probe Parameters related list, clickNew
  5. Click New
  6. Use the following information to fill out the form:
    Probe Commands
    Name must_sudo
    Value true
  7. Click Submit

Data collected by Mod_jk module

The Apache mod_jk module forwards requests from the Apache web server to a Servlet container, such as Tomcat.

Additional mod_jk directives can also manage load balancing. Discovery populates the CMDB when it detects an Apache Server. When the Apache Web Server process is detected, if the mod_jk module is running on the web server as a load balancer, the related information populates to the CMDB.

  • The MID Server user account to explore the target server must have access to the httpd.conf configuration file in the /etc/httpd/conf/ folder.
  • Discovery uses secure shell (SSH) commands to identify the following associated elements:
    • Apache Get Configuration
    • Apache Version
    • Apache Get JK Module
  • The following probes require execute privileges to run commands:
    Table 3. Probes that require execute privileges
    Probe Command
    Apache – Get Configuration echo, sed, httpd, cut, grep, egrep (within the Borne shell script)
    Apache – Version httpd
    Apache – Get JK Module echo, sed, httpd, cut, grep, egrep (within the Borne shell script)

Probes and sensors

Discovery uses the Unix - Active Processes probe to identify an Apache server that contains the mod_jk module:

  1. The Unix - Active Processes probe detects a running process that matches one of the following criteria:
    • The name of the process is httpd.
    • The name of the process is apache.
  2. If there is a match on one of these criteria, a record is created in the Web Server table [cmdb_ci_web_server] if one does not already exist for that running process. The following probes are also triggered:
    • Apache – Version: the sensor of this probe populates the Apache version information in the Web Server record.
    • Apache – Get Configuration: this probe contains a Bourne shell script and an argument that determines the path of the Apache configuration file. The sensor of this probe populates some additional information in the Web Server record.
  3. The sensor processing of Apache – Get configuration probe results triggers the following probes if the mod_jk module is running on the web server:
    • Apache – JK Module: if the mod_jk module is running as a load balancer on the server, the sensor of this probe populates the information in the Load Balancer Service [cmdb_ci_lb_service], Load Balancer Pool [cmdb_ci_lb_pool] and Load Balancer Pool Member [cmdb_ci_lb_pool_member] tables.

Data Collected

For the mod_jk module with no load balancer, the following data is collected by default:
Table 4. Default Data Collected by Discovery
Table Name Field and Label Name Probe
cmdb_ci_web_server Name [name] Apache – Get Configuration
cmdb_ci_web_server Version [version] Apache – Version
cmdb_ci_web_server Description [short_description] Apache – Version
If the mod_jk module is enabled for load balancing, Discovery connects the following data:
Table 5. Data Collected by Discovery When the mod_jk Module is Identified as a Load Balancer
Table Name Field and Label Name Probe
cmdb_ci_lb_appl Name [name] Apache – Apache - Get JK Module
cmdb_ci_lb_appl IP Address [ip_address] Apache – Apache - Get JK Module
cmdb_ci_lb_appl Last Discovered [last_discovered] Apache – Apache - Get JK Module
cmdb_ci_lb_pool_member Name [name] Apache – Apache - Get JK Module
cmdb_ci_lb_pool_member Last Discovered [last_discovered] Apache – Apache - Get JK Module
cmdb_ci_lb_pool_member IP Address [ip_address] Apache – Apache - Get JK Module
cmdb_ci_lb_pool_member Load Balancer [load_balancer] Apache – Apache - Get JK Module
cmdb_ci_lb_pool_member Port [port] Apache – Apache - Get JK Module
cmdb_ci_lb_service Input URL [Input_url] Apache – Apache - Get JK Module
cmdb_ci_lb_service Last Discovered [last_discovered] Apache – Apache - Get JK Module
cmdb_ci_lb_service IP Address [ip_address] Apache – Apache - Get JK Module
cmdb_ci_lb_service Name [name] Apache – Apache - Get JK Module
cmdb_ci_lb_service Load Balancer [load_balancer] Apache – Apache - Get JK Module
cmdb_ci_lb_service Port [port] Apache – Apache - Get JK Module
cmdb_ci_lb_pool Last Discovered [last_discovered] Apache – Apache - Get JK Module
cmdb_ci_lb_pool Load balancing Method [load_balancing_method] Apache – Apache - Get JK Module
cmdb_ci_lb_pool Load Balancer [load_balancer] Apache – Apache - Get JK Module
cmdb_ci_lb_pool Name [name] Apache – Apache - Get JK Module

Relationships

In addition to data population, the following relationships are created in the CI Relationship [cmdb_rel_ci] table:
  • The records in the cmdb_ci_lb_appl table run on the cmdb_ci_web_server table records.
  • The records in the cmdb_ci_lb_service table use the cmdb_ci_lb_pool table records.
  • The records in the cmdb_ci_pool table are used by the cmdb_ci_service table record.
  • The records in the cmdb_ci_pool table are members of the cmdb_ci_pool_member table.
  • The records in the cmdb_ci_pool_member table are members of the cmdb_ci_pool table.

Data collected by Mod_proxy module

The Apache mod_proxy module implements a proxy, gateway, or cache for the Apache web server.

An additional mod_proxy_balancer can also manage load balancing. Discovery populates the CMDB when it detects an Apache server. When the Apache Web Server process is detected, if the mod_proxy module is running on the web server as a load balancer the related information populates to the CMDB.
Consider the following requirements for discovering an Apache server that contains the mod_proxy module:
  • The MID Server user account to explore the target server must have access to the httpd.conf configuration file in the /etc/httpd/conf/ folder.
  • Discovery uses secure shell (SSH) commands to identify the following associated elements:
    • Apache Get Configuration
    • Apache Version
    • Apache Get Proxy Module
  • The following probes require execute privileges to run commands:
    Table 6. Data collected from the mod_jk module
    Probe Commands
    Apache – Get Configuration echo, sed, httpd, cut, grep, egrep (within the Borne shell script)
    Apache – Get Proxy Module grep, egrep (within the Borne shell script)
    Apache – Version httpd

Probes and sensors

Discovery uses the Unix - Active Processes probe to identify an Apache server that contains the mod_proxy module. The probes and sensors operate in the following manner:
  1. The Unix - Active Processes probe detects a running process that matches one of the following criteria:
    • The name of the process is httpd.
    • The name of the process is apache2.
  2. If there is a match on one of these criteria, a record is created in the Web Server table [cmdb_ci_web_server] if one does not already exist for that running process. The following probes are also triggered:
    • Apache – Version: the sensor of this probe populates the Apache version information in the Web server [cmdb_ci_web_server] record.
    • Apache – Get Configuration: this probe contains a Bourne shell script and an argument that determines the path of the Apache configuration file. The sensor of this probe populates some additional information in the Web server [cmdb_ci_web_server] record.
  3. The sensor processing of the Apache – Get configuration probe results triggers the following probes if the mod_proxy module is running on the web server:
    • Apache - Get Proxy Module: if the mod_proxy module is running as a load balancer on the server, the sensor of this probe populates the information in the Load Balancer Service [cmdb_ci_lb_service], Load Balancer Pool [cmdb_ci_lb_pool] and Load Balancer Pool Member [cmdb_ci_lb_pool_member] tables.

Data Collected

For the mod_proxy module with no load balancer, the following data is collected by default:
Table 7. Data collected by Discovery by default
Table Name Field and Label Name Probe
cmdb_ci_web_server Name [name] Apache – Get Configuration
cmdb_ci_web_server Version [version] Apache – Version
cmdb_ci_web_server Description [short_description] Apache – Version
If the mod_proxy module is enabled for load balancing, Discovery connects the following data:
Table 8. Data collected by Discovery if the mod_proxy module is identified as a load balancer
Table Name Field and Label Name Probe
cmdb_ci_lb_appl IP Address [ip_address] Apache - Get Proxy Module
cmdb_ci_lb_appl Last Discovered [last_discovered] Apache - Get Proxy Module
cmdb_ci_lb_pool_member Name [name] Apache - Get Proxy Module
cmdb_ci_lb_pool_member Last Discovered [last_discovered] Apache - Get Proxy Module
cmdb_ci_lb_pool_member IP Address [ip_address] Apache - Get Proxy Module
cmdb_ci_lb_pool_member Load Balancer [load_balancer[ Apache - Get Proxy Module
cmdb_ci_lb_pool_member Port [port] Apache - Get Proxy Module
cmdb_ci_lb_service Input URL [Input_url] Apache - Get Proxy Module
cmdb_ci_lb_service Last Discovered [last_discovered] Apache - Get Proxy Module
cmdb_ci_lb_service IP Address [ip_address] Apache - Get Proxy Module
cmdb_ci_lb_service Name [name] Apache - Get Proxy Module
cmdb_ci_lb_service Load Balancer [load_balancer] Apache - Get Proxy Module
cmdb_ci_lb_service Port [port] Apache - Get Proxy Module
cmdb_ci_lb_pool Last Discovered [last_discovered] Apache - Get Proxy Module
cmdb_ci_lb_pool Load balancing Method [load_balancing_method] Apache - Get Proxy Module
cmdb_ci_lb_pool Load Balancer [load_balancer] Apache - Get Proxy Module
cmdb_ci_lb_pool Name [name] Apache - Get Proxy Module

Relationships

In addition to data population, the following relationships are created in the CI Relationship [cmdb_rel_ci] table:
  • The records in the cmdb_ci_lb_appl table run on the cmdb_ci_web_server table records.
  • The records in the cmdb_ci_lb_service table use the cmdb_ci_lb_pool table records.
  • The records in the cmdb_ci_pool table are used by the cmdb_ci_service table records.
  • The records in the cmdb_ci_pool are members of the cmdb_ci_pool_member table records.
  • The records in the cmdb_ci_pool_member is a member of the cmdb_ci_pool table records.