Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 50 additions & 5 deletions content/agent/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@ The F5 NGINX Agent is a lightweight companion daemon designed to work with NGINX

- [OpenTelemetry](https://opentelemetry.io/) support comes with F5 NGINX Agent, and the ability to [export the metrics data]({{< relref "/agent/otel/configure-otel-metrics.md" >}}) for use in other applications.

---

## How it works

### Configuration management

Expand All @@ -36,11 +34,58 @@ The F5 NGINX Agent is a lightweight companion daemon designed to work with NGINX
- This embedded collector gathers vital performance and health metrics for both NGINX and the underlying instance it operates on.
- For example, it tracks key metrics such as active connections, requests per second, HTTP status codes, and response times. Additionally, it collects system-level data, including CPU usage, memory consumption, and disk I/O. These insights provide deep observability into NGINX's behavior, enabling teams to troubleshoot issues effectively, optimize performance, and maintain high availability.
- Collected metrics can be seamlessly exported to the NGINX One Console or integrated with third-party data aggregators.


### How Agent works

```mermaid
graph BT

{{< img src="agent-flow.png" caption="How Agent works" alt="How NGINX Agent works" width="99%">}}
%% Define colors for the subgraphs
style ManagementPlane fill:#d0eac4,stroke:#228B22,stroke-width:2px,color:#000000
style CommandControl fill:#cfe2f1,stroke:#1E90FF,stroke-width:2px,color:#000000
style OTelManagementPlane fill:#cfe2f1,stroke:#1E90FF,stroke-width:2px,color:#000000
style Compute fill:#cfe2f1,stroke:#1E90FF,stroke-width:2px,color:#000000
style NGINX fill:#b5e0b6,stroke:#008000,stroke-width:2px,color:#000000
style NGINXConfig fill:#b5e0b6,stroke:#008000,stroke-width:2px,color:#000000
style ErrorLogs fill:#b5e0b6,stroke:#008000,stroke-width:2px,color:#000000
style Agent fill:#b5e0b6,stroke:#008000,stroke-width:2px,color:#000000

---
subgraph ManagementPlane["NGINX One"]
CommandControl["Command Server"]
OTelManagementPlane["OTel Receiver"]
end

subgraph Compute["NGINX Instance"]
subgraph Agent["Agent Process"]
OTelDataPlane["OTel Collector"]
end

subgraph NGINX["NGINX Process"]
NGINXMetrics["Metrics"]
end
NGINXConfig["NGINX Configuration Files"]
ErrorLogs["NGINX Error Logs"]

Metrics["Host Metrics"] --> |Collects| OTelDataPlane
NGINXMetrics --> |Reads| OTelDataPlane["OTel Collector"]
Agent --> |Watch/Reload| NGINX
Agent --> |Reads| ErrorLogs
OTelDataPlane --> |Reads| AccessLogs["NGINX Access Logs"]
Agent <--> |Reads/Writes| NGINXConfig
end

Compute <--> |gRPC| ManagementPlane
```

The figure shows:

- An NGINX Instance running on bare metal, virtual machine or container
- The NGINX One Cloud Console includes:
- Command Server to manage NGINX configurations, push new/updated configuration files remotely, and perform integrity tests.
- OpenTelemetry (OTel) Receiver that receives observability data from connected Agent instances.
- An Agent process running on the NGINX Instance. The Agent is responsible for:
- Watching, applying, validating, automatically roll back to last good configuration if issues are detected.
- Embedding an OpenTelemetry Collector, collecting metrics from NGINX processes, host system performance data, then securely passing metric data to the NGINX One Cloud Console.
- Collection and monitoring of host metrics (CPU usage, Memory utilization, Disk I/O) by the Agent OTel collector.
- Collected data is made available on the NGINX One Cloud Console for monitoring, alerting, troubleshooting, and capacity planning purposes.

3 changes: 2 additions & 1 deletion content/agent/install-upgrade/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@ of methods:
## Before you begin

- You must use one of the [supported operating system and architectures]({{< ref "/agent/technical-specifications.md#supported-distributions" >}})
- You need to have `root` privileges
- The user running the NGINX Agent installation must have the same privileges as
the main NGINX process. We recommend **not** running NGINX or NGINX Agent as the root user.

## Install NGINX Agent using NGINX One Console<a name="connect-to-nginx-one-console"></a>

Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ module github.com/nginxinc/docs

go 1.19

require github.com/nginxinc/nginx-hugo-theme v0.42.24 // indirect
require github.com/nginxinc/nginx-hugo-theme v0.42.25 // indirect
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ github.com/nginxinc/nginx-hugo-theme v0.41.27 h1:M8ttO1ZkTGY06o0MYvnm3kc/sA6lOmI
github.com/nginxinc/nginx-hugo-theme v0.41.27/go.mod h1:DPNgSS5QYxkjH/BfH4uPDiTfODqWJ50NKZdorguom8M=
github.com/nginxinc/nginx-hugo-theme v0.42.24 h1:aQkkTob0EpK+1ID+31E3y+RIdThldC4HgA2LcJL4TXU=
github.com/nginxinc/nginx-hugo-theme v0.42.24/go.mod h1:DPNgSS5QYxkjH/BfH4uPDiTfODqWJ50NKZdorguom8M=
github.com/nginxinc/nginx-hugo-theme v0.42.25 h1:QkLTREuOohkq+hmBZCfWELAri4AOvhc6gmIJA1esUfo=
github.com/nginxinc/nginx-hugo-theme v0.42.25/go.mod h1:DPNgSS5QYxkjH/BfH4uPDiTfODqWJ50NKZdorguom8M=