NGINX web server discovery
Summarize
Summary of NGINX web server discovery
NGINX web server discovery in ServiceNow identifies NGINX web server software and related load balancer information on Linux and Windows servers. It detects running NGINX processes and collects configuration and version details to populate the Configuration Management Database (CMDB). This enables accurate tracking and management of NGINX servers and their components within your IT infrastructure.
Show less
Key Features
- Process Detection: The NGINX Process Classifier detects processes with names starting with "nginx" and containing "master" during server exploration.
- Automatic CMDB Record Creation: Upon detection, records are created in the
cmdbcinginxwebserver(orcmdbciwebserver) table, with relationships to the hosting Linux server established incmdbrelci. - Probes Triggered:
- NGINX – Version Probe: Runs a Bourne shell script to determine the NGINX version and updates the CMDB record accordingly.
- NGINX – Get Configuration Probe: Uses a shell script with configurable path (default
/etc/nginx/nginx.conf) to extract configuration parameters. This data is parsed by a sensor and used to populate multiple CMDB tables related to load balancer applications, pool members, and services.
- Requirements: NGINX must be installed and running; the MID Server requires SSH access and execute privileges to the NGINX configuration file and commands used in the probes.
- Command Execution: Probes execute commands such as
nginx,echo,sed,httpd,cut,grep, andegrepwithin scripts to gather data. - Top-Down Discovery Compatibility: Supports integration with Service Mapping for top-down discovery of NGINX web servers on both Linux and Windows platforms.
Data Collected and CMDB Population
Discovery collects detailed information for various load balancer and web server CI tables, including:
- Load Balancer Application (cmdbcilbappl): Name, IP address, version, and last discovered timestamp.
- Load Balancer Pool Member (cmdbcilbpoolmember): Name, IP address, FQDN, port, load balancer association, and last discovered timestamp.
- Load Balancer Service (cmdbcilbservice): Name, IP address, input URL, load balancer association, and last discovered timestamp.
The discovery process also establishes key relationships in the cmdbrelci table, such as:
- Applications running on web servers.
- Services using load balancer pools.
- Pool membership of pool members.
Practical Benefits for ServiceNow Customers
This discovery capability ensures accurate, automated identification and documentation of NGINX web servers and their load balancing configurations. It helps maintain an up-to-date CMDB, supports impact analysis, and improves operational visibility for IT teams managing NGINX environments. By meeting the prerequisites and configuring the MID Server accordingly, customers can leverage this feature to enhance their service mapping and infrastructure management workflows.
NGINX is an open source web server with a load balancer. Discovery identifies the web server and information related to the load balancer.
- The NGINX Process Classifier detects a running process that matches the following criteria during the exploration of a Linux server:
- Name starts with nginx
- Name contains master
- If there is a match:
- A record is created in the NGINX Web Server [cmdb_ci_nginx_web_server] table.
- A Runs on relationship is created in the CI Relationship [cmdb_rel_ci] table for a Linux server (Linux Server [cmdb_ci_linux_server]) and for an NGINX web server (NGINX Web Server [cmdb_ci_nginx_web_server]).The following two probes are triggered:The sensor on the ServiceNow instance parses the payload result and populates the CMDB.
- NGINX – Version: This probe contains a Bourne shell script. It determines the version of NGINX and populates the NGINX Web Server [cmdb_ci_nginx_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.
- NGINX is installed and running on the server.
- The MID Server has access to the NGINX configuration file, which is /
etc/nginx/nginx.confby default.
Requirements
- 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
| Probe | Commands |
|---|---|
| Nginx – Version | nginx |
| Nginx – Get Configuration | echo, sed, httpd, cut, grep, egrep (within the Bourne shell script) |
Probes and Sensors
- 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.
- 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.
- 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.
- The sensor on the ServiceNow instance processes the payload and populates the CMDB.
Data Collected
| 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
- 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.