Get to Know the NGINX Controller Agent

Overview

The NGINX Controller Agent is a compact application written in Golang. NGINX Controller uses the Controller Agent to manage and monitor each NGINX Plus instance that the Agent is installed on. Once installed, the NGINX Controller Agent collects metrics and metadata and sends them securely to NGINX Controller for storage and visualization.

How NGINX Controller Agent Works

You need to install the NGINX Controller Agent on all of the hosts you’d like to monitor.

Once installed, the NGINX Controller Agent automatically starts to report metrics. You should see the real-time metrics data in the NGINX Controller user interface after about one minute.

There’s no need to manually add or configure anything in the NGINX Controller user interface after installing the Agent. When the Agent is started, the metrics and the metadata are automatically reported to NGINX Controller and are visualized in the user interface. You can, however, configure the NGINX Controller Agent to customize how it collects and reports metrics.

All communications between the NGINX Controller Agent and the backend are done securely over SSL/TLS. All traffic is always initiated by the NGINX Controller Agent. The backend system doesn’t set up any connections back to the NGINX Controller Agent.

Detecting and Monitoring NGINX Instances

The NGINX Controller Agent attempts to detect and monitor all unique NGINX process instances running on a host and collects a separate set of metrics and metadata for each. The Agent uses the following qualifications to identify unique NGINX instances:

  • A unique control process and its workers, started with an absolute path to a distinct NGINX binary.
  • A control process running with a default config path, or with a custom path set in the command-line parameters.
Caution:
You should not make manual changes to the nginx.conf file on NGINX Plus instances that are managed by NGINX Controller. Manually updating the nginx.conf file on managed instances may adversely affect system performance. In most cases, NGINX Controller will revert or overwrite manual updates made to nginx.conf.

Supported Systems

NGINX Controller, the NGINX Controller Agent, and NGINX Controller App Security support the following distributions and architectures:

Distribution Version Architecture(s) NGINX Controller
(Control Plane)
Controller Agent
(Data Plane)
Notes
Amazon Linux 2 x86_64 Not supported v3.0+
Amazon Linux 2017.09+ x86_64 Not supported v3.0+
CentOS 6.5+ x86_64 Not supported v3.0+ • CentOS 6.5 and later versions in the CentOS 6 family are partially supported.
• This distribution does not support AVRD.
CentOS 7.4+ x86_64 v3.0+ v3.0+
(App Security supported)
• CentOS 7.4 and later versions in the CentOS 7 family are supported.
• NGINX Controller App Security requires NGINX Controller 3.12 or later.
Debian 8 x86_64 Not supported v3.0+ • This distribution does not support AVRD.
Debian 9 x86_64 v3.0+ v3.0+
(App Security supported)
• NGINX Controller App Security requires NGINX Controller 3.12 or later.
Red Hat Enterprise Linux 6.5+ x86_64 Not supported v3.0+ • RHEL 6.5 and later versions in the RHEL 6 family are partially supported.
Red Hat Enterprise Linux 7.4+ x86_64 v3.5+ v3.5+
(App Security supported)
• RHEL 7.4 and later versions in the RHEL 7 family are supported. RHEL 8 is not supported at this time.
• NGINX Controller App Security requires NGINX Controller 3.12 or later.
• SELinux may interfere with NGINX Controller installation and operation. If you do enable SELinux, it must use permissive mode. Use of enforcing mode is not supported.
Ubuntu 16.04 LTS x86_64 v3.0+ v3.0+
Ubuntu 18.04 LTS x86_64 v3.0+ v3.0+
(App Security supported)
NGINX Controller App Security requires NGINX Controller 3.13 or later.
Ubuntu 20.04 LTS x86_64 Not supported v3.12+

Analytics, Visibility, and Reporting Daemon (AVRD)

NGINX Controller v3.1 and later use an Analytics, Visibility, and Reporting daemon (AVRD) to aggregate and report app-centric metrics, which you can use to track and check the health of your apps. To learn more about these metrics, see the NGINX Metrics Catalog topic.

See Also:
See the NGINX Controller Technical Specifications for the complete list of system requirements for NGINX Controller and the NGINX Controller Agent.

Supported Python Versions

NGINX Controller and the NGINX Controller Agent versions 3.6 and earlier require Python 2.6 or 2.7. Python is not needed for NGINX Controller or the NGINX Controller Agent versions 3.7 and later.

What’s Next


This documentation applies to the following versions of NGINX Controller Documentation: 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, 3.15 and 3.16.