Skip to main content

A command-line tool for managing and analyzing Nginx.

Project description

ngxctl - Real-time Metrics for Nginx Server

Project Overview

  1. Rebuilt based on the ngxtop project and adapted for actual usage scenarios.
  2. The core principle remains the same: parsing log contents and storing them in SQLite, displaying top statistics in real-time using GROUP BY. As such, it is not suitable for long-term operation.

Installation

# Install from PyPI
pip install ngxctl

# Install from Tencent Cloud source
pip install ngxctl --index-url https://mirrors.cloud.tencent.com/pypi/simple --trusted-host mirrors.cloud.tencent.com

Usage

Display Configured Log Files

# cmd
ngxctl files

# output example
| server_name         | file_name                                       | log_path                                  |
|---------------------+-------------------------------------------------+-------------------------------------------|
| www.test1.net...    | /etc/nginx/sites-enabled/www.test1.net.conf     | /var/log/nginx/www.test1.net-extended.log |

Display Variables Used in Access Logs

# cmd
ngxctl vars

# output
| Variables       |
|-----------------|
| http_referer    |
| status          |
| http_user_agent |
| body_bytes_sent |
| request         |
| time_local      |
| remote_addr     |
| remote_user     |
| request_id      |

Display Top Statistics

Basic Command

# cmd (output omitted)
running for 7 seconds, 0 records processed

ServerName Top Stat
| server_name   | count   | 2xx   | 3xx   | 4xx   | 5xx   | avg_bytes_sent   | sum_bytes_sent   | start_time   | end_time   | req/s   |
|---------------+---------+-------+-------+-------+-------+------------------+------------------+--------------+------------+---------|

| Detailed content is omitted here |

Supported Parameters

Usage: ngxctl top [OPTIONS]

  Analyze and display top Nginx log statistics.

  Examples:

  ngxctl top

  ngxctl top --conf /etc/nginx/nginx.conf

  ngxctl top --group-by remote_addr,http_user_agent

  ngxctl top -w 'status==404' --no-follow

Options:
  -g, --group-by TEXT     Group the results by the specified fields, e.g.,
                          server_name,remote_addr, etc.
  -o, --order-by TEXT     Order the results by a specified criteria, e.g.,
                          avg(bytes_sent) * count.
  --where TEXT            Apply a filter to the raw log data before stat,
                          e.g., status==404.
  --having TEXT           Apply a filter to stat result, e.g.,
                          remote_addr==1.2.3.4.
  -n, --limit INTEGER     Limit to top lines.
  --follow / --no-follow  Read the entire log file at once instead of
                          following new lines.
  -h, --help              Show this message and exit.

Running from source

python -m ngxctl.cli

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ngxctl-0.1.5.tar.gz (17.6 kB view details)

Uploaded Source

File details

Details for the file ngxctl-0.1.5.tar.gz.

File metadata

  • Download URL: ngxctl-0.1.5.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.19

File hashes

Hashes for ngxctl-0.1.5.tar.gz
Algorithm Hash digest
SHA256 8d39ebffb90e9698b7c4167c53a7711d21f496ca2a1c48e6fafb2b2e1d29eaca
MD5 c7b6bd155aad1421c86cc959856f394b
BLAKE2b-256 7bae8d587b67d3d0d4edd2295f21a9603bc028cb6aed7a67172542d0365e93ac

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page