Data collected by Discovery on an NGINX web server

Discovery identifies and classifies information about NGINX web servers. NGINX is an open source web server with a load balancer. Discovery identifies the web server and information related to the load balancer.

Requirements

For NGINIX servers:
  • Ensure that the NGINX software is installed and running on the server.
  • Grant the MID Server has access to the NGINX configuration file, which is /etc/nginx/nginx.conf by default.
  • Enable secure shell (SSH) commands to identify the following associated elements:
    • NGINX Version
    • NGINX Get Configuration
The following probes require execute privileges to run commands:
Table 1. Commands
Probe Commands
Nginx – Version nginx
Nginx – Get Configuration echo, sed, httpd, cut, grep, egrep (within the Bourne shell script)

Probes and Sensors

Discovery identifies NGINX server software using the following process:
  1. The Nginx Process Classifier detects a running process that matches the following criteria during the exploration of a UNIX server:
    • The name of the process starts with nginx.
    • The name of the process contains master.
  2. If there is a match:
    • A record is created in the Web Server [cmdb_ci_web_server] table.
    • A Runs on relationship is created in the CI Relationship [cmdb_rel_ci] table for the Linux Server [cmdb_ci_linux_server] table and the Web Server [cmdb_ci_web_server] table.
  3. The following two probes are triggered:
    • Nginx – Version: this probe contains a Bourne shell script. It determines the version of NGINX and populates the Web Server [cmdb_ci_web_server] table.
    • Nginx – Get Configuration: this probe contains a Bourne shell script and an argument that determines the path of the NGINX configuration file. The probe identifies configuration parameters based on keywords within the configuration file and returns them as a single payload result.
  4. The sensor on the ServiceNow instance processes the payload and populates the CMDB.

Data Collected

Discovery creates or updates CMDB records when it detects a running NGINX process. The following data is collected.
Table 2. Data Collected by Discovery for NGINX
Table Name Field and Label Name Probe
Name cmdb_ci_lb_appl [name] Nginx– Get Configuration
IP Address cmdb_ci_lb_appl [ip_address] Nginx– Get Configuration
Last Discovered cmdb_ci_lb_appl [last_discovered] Nginx– Get Configuration
Version cmdb_ci_lb_appl [version] Nginx– Version
Name cmdb_ci_lb_pool_member [name] Nginx– Get Configuration
Last Discovered cmdb_ci_lb_pool_member [last_discovered] Nginx– Get Configuration
IP Address cmdb_ci_lb_pool_member [ip_address] Nginx– Get Configuration
Load Balancer cmdb_ci_lb_pool_member [load_balancer] Nginx– Get Configuration
Fully Qualified Domain Name cmdb_ci_lb_pool_member [fqdn] Nginx– Get Configuration
Port cmdb_ci_lb_pool_member [port] Nginx– Get Configuration
Last Discovered cmdb_ci_lb_service [last_discovered] Nginx– Get Configuration
IP Address cmdb_ci_lb_service [ip_address] Nginx– Get Configuration
Name cmdb_ci_lb_service [name] Nginx– Get Configuration
Load Balancer cmdb_ci_lb_service [load_balancer] Nginx– Get Configuration
Input URL cmdb_ci_lb_service [input_url] NGINX – Get Configuration

Relationships

In the table [cmdb_rel_ci] the following relationships are populated:
  • 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 table are members of the cmdb_ci_pool_member table.
  • The records in the cmdb_ci_pool_member table are members of cmdb_ci_pool table.