At NGINX Sprint 2022, we committed to modernizing the way we manage NGINX open source projects and engage with our community. As part of that promise, we announced the upcoming release of NGINX Agent, a daemon that manages individual NGINX deployments as companion software, providing observability and a configuration API. Today we’re proud to follow through on that promise by launching NGINX Agent under the Apache 2 license.
At F5 NGINX, our vision is to build an ecosystem that extends into every facet of application deployment and management. NGINX Agent plays a pivotal role in that vision by providing Development and Platform Ops teams with granular controls and added functionality for configuring, monitoring, and managing NGINX instances.
What Does NGINX Agent Do?
NGINX Agent is a lightweight daemon that can be deployed alongside your NGINX Open Source or NGINX Plus instance. Significantly, NGINX Agent enables a number of capabilities not provided by NGINX Open Source:
- Reporting and monitoring of NGINX instances
NGINX Agent provides broader visibility into NGINX Open Source and NGINX Plus instances with an extended set of metrics you can use to detect, investigate, and correct infrastructure issues. Along with operating system metrics, NGINX Agent automatically collects metrics from the NGINX access and error logs; for NGINX Plus instances, it also collects metrics from the RESTful NGINX Plus API. NGINX Agent also reports on key sets of events happening on the NGINX instance. The result is a richly detailed picture of the performance, health, and usage of your NGINX instance which can be exported in Prometheus format for visualization by third‑party tools such as Grafana.
- Remote NGINX configuration management
NGINX Agent provides HTTP (REST) and HTTP/2 (gRPC) interfaces for remotely applying NGINX configuration to an NGINX instance. You can also manage instance configuration remotely through an API. Automation and remote deployment of NGINX configuration greatly reduces operational overhead and saves time, especially when managing numerous instances.
- Management plane integration
As businesses scale, infrastructure deployment and management becomes more complex. We’re glad the NGINX community isn’t shy about sharing their scaling and delivery challenges, and the NGINX Agent roadmap aims to address them. NGINX Agent enables you to develop advanced mechanisms to control and manage NGINX in your environment – both with your own management solution which interfaces with NGINX instances and with NGINX Management Suite for its enterprise‑grade data plane management capabilities.
How Does NGINX Agent Work?
NGINX Agent runs alongside an NGINX instance, exposing both REST and gRPC interfaces for remote interaction with the instance from both the control and management planes, enabling you to build sophisticated monitoring and automation capabilities.
Why Are We Open Sourcing NGINX Agent?
We have several goals in open sourcing NGINX Agent.
Complement NGINX Open Source
We want to empower the community to use NGINX Open Source in more use cases and with far more flexibility. Open sourcing NGINX Agent helps fill in some current functional gaps in NGINX Open Source, and opens a completely new avenue for us to extend NGINX Open Source and bring features to the community more quickly. It can be installed alongside your NGINX Open Source instance to let you manage NGINX configuration using a REST or gRPC interface, or enable you to develop sophisticated visualizations from NGINX events and metrics.
We take pride in bringing industry‑leading open source software to our community and enabling you to build highly scalable, resilient infrastructures to power your business. One of the core pillars of this success is the trust the open source community places in NGINX software. Our design philosophy with NGINX Agent is to be completely open and transparent about how and what data it touches in your NGINX infrastructure. We think being fully transparent with the community and bringing in features which delight you is a key enabler to realizing our open source vision.
Make NGINX Developer‑Friendly
Staying true to another promise we made at Sprint – to optimize the developer experience – NGINX Agent accelerates the “time to value” of NGINX products by providing controls and functionality that we hope make NGINX more attractive to more adopters. NGINX Agent provides granular controls so developers can make smart decisions about managing, deploying, and configuring NGINX in their environment. Our goal is to meet developers where they are by enabling them to integrate with NGINX’s suite of products on the control and management planes or bring in their own.
Get Started with NGINX Agent
NGINX Agent started out as the agent used by NGINX Management Suite Instance Manager to find all the NGINX instances in your environment. And while it will continue to serve that function, by open sourcing it in version 2.17.0 we’ve launched it on an independent path towards usefulness to the broader NGINX open source community. Given that history, we expect there are many ways NGINX Agent needs to grow, so we are inviting you to visit the NGINX Agent repo on GitHub to get started and learn how to contribute, make suggestions, and report issues.