Nginx Monitoring Tools

NGINX monitoring from stub_status to access logs

Atatus reads Nginx stub_status for connections and requests, and parses access and error logs into fields you can search. One Infrastructure agent does both, with no code changes.

8stub_status metrics
2Log types: access and error
1Agent for metrics and logs
01 / Connections

Connections and requests, live.

Every number comes straight from stub_status.

nginx · web-01 · stub_statuslive
Requests / s137
2501250
Active connections259
  • reading6
  • writing41
  • waiting212
accepts1,284,310
handled1,284,302
dropped8
requests4,918,744

Rates from nginx.stubstatus.requests and .accepts · sample data

02 / Logs

Access and error logs. Same agent.

Requests per minute, split by status class. Click the spike to read the lines behind it.

access.log · requests per minute by status class13:34 to 14:03
source:nginx AND statusCode:>=50013:52:00 → 13:53:00
  • 7,887requests
  • 6,6992xx
  • 6323xx
  • 1444xx
  • 4125xx
access.logsource:nginx
  • 502POST /api/checkout10.2.4.181.240s
  • 200GET /api/cart10.2.7.410.096s
  • 504POST /api/checkout10.2.9.1260.001s
  • 502POST /api/checkout10.2.4.181.238s
  • 200GET /api/products/21910.2.1.770.048s
error.logsource:nginx
  • errorupstream timed out (110: Connection timed out) while reading response header from upstream, request: "POST /api/checkout HTTP/1.1"
  • errorconnect() failed (111: Connection refused) while connecting to upstream, upstream: "http://10.0.3.12:8080/api/checkout"
  • warnan upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/1/00/0000000001

Click a minute, or use the arrow keys · sample data

Search, patterns and pipelines for these logs: Log management

03 / Setup

Already in the agent. Switch it on.

Tick what you have done. Each signal lights up once its files and a restart are in place.

  • Metricsneeds a restartwaiting
  • error.logneeds logs_enabled: truewaiting
  • access.logneeds logs_enabled: truewaiting
# /etc/atatus-infra-agent/atatus.yml
license_key: "lic_infra_****"
logs_enabled: false
# /etc/atatus-infra-agent/conf.d/nginx.d/nginx.yml
metrics:
  - hosts: ["http://127.0.0.1"]
    #status_path: "nginx_status"

Metrics setup · Logs setup

FAQ

Questions about Nginx monitoring

Pricing, deployment, data and the agent. If something is missing, a person will answer it on a demo call.

Talk to an engineer
  • NGINX monitoring tracks the health of NGINX web servers, reverse proxies and load balancers: active, reading, writing and waiting connections, accepted, handled and dropped connections, total requests, and the access and error logs that show status codes, paths and upstream errors.

  • The NGINX plugin ships with the Atatus Infrastructure agent. Copy nginx.yml.template to nginx.yml, point it at your stub_status page (the default path is nginx_status) and restart the agent. For logs, set logs_enabled: true in atatus.yml and add the error and access log types. No code changes.

  • Eight metrics from stub_status: accepted, handled and dropped client connections, total client requests, and active, reading, writing and waiting connections. They arrive as nginx.stubstatus.accepts, .handled, .dropped, .requests, .active, .reading, .writing and .waiting.

  • Yes. Access log lines become fields you can filter on, such as clientIp, urlMethod, urlPath, statusCode, browser, os and device, and both logs carry source:nginx. If your logs are not in the default place, set paths, source and service for each log type in nginx.yml.

Get started

Nginx metrics and logs, one agent.

Track connections and requests from stub_status, with access and error logs parsed by the same agent.

  • SaaS
  • On-premises
  • Hybrid
  • BYOC
  • No per-user pricing

Compare Atatus with GoAccess · Datadog