7 个不稳定版本
0.4.0 | 2022年8月13日 |
---|---|
0.3.1 | 2020年6月28日 |
0.2.0 | 2020年6月23日 |
0.1.2 | 2020年6月12日 |
#1508 在 解析器实现
每月下载量 24
40KB
499 行
topngx
此工具是 ngxtop 的重写,以使其更容易安装并希望运行更快。对于不熟悉 ngxtop 的用户,它是一个帮助您解析 NGINX 访问日志并从中打印各种统计信息的工具,无论格式如何。它目前的功能不如原始版本完整,但应该有足够的功能供使用。
安装
有多种安装方法。最简单的方法是从这里获取一个版本。否则,您可以使用具有有效 Rust 安装的crates.io进行安装
cargo install topngx
# If you do not have SQLite headers installed on your system, you can use the bundled feature.
cargo install topngx --features bundled-sqlite
在 Mac 和 Linux 上获取 SQLite 开发头文件很容易
# On Mac.
brew install sqlite
# On Debian based Linux.
sudo apt-get update && sudo apt-get install libsqlite3-dev
变更日志
用法
topngx 0.3.0
Garrett Squire <[email protected]>
top for NGINX
USAGE:
topngx [FLAGS] [OPTIONS] [SUBCOMMAND]
FLAGS:
-t, --follow Tail the specified log file. You cannot tail standard input
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-a, --access-log <access-log> The access log to parse
-f, --format <format> The specific log format with which to parse [default: combined]
-g, --group-by <group-by> Group by this variable [default: request_path]
-w, --having <having> Having clause [default: 1]
-i, --interval <interval> Refresh the statistics using this interval which is given in seconds [default: 2]
-l, --limit <limit> The number of records to limit for each query [default: 10]
-o, --order-by <order-by> Order of output for the default queries [default: count]
SUBCOMMANDS:
avg Print the average of the given fields
help Prints this message or the help of the given subcommand(s)
info List the available fields as well as the access log and format being used
print Print out the supplied fields with the given limit
query Supply a custom query
sum Compute the sum of the given fields
top Find the top values for the given fields
一些示例查询如下
# Run with the default queries and format (combined).
# Or use the --access-log and --no-follow flags if you do not want to read from standard input.
topngx < /path/to/access.log
# Output:
count avg_bytes_sent 2XX 3XX 4XX 5XX
2 346.5 2 0 0 0
request_path count avg_bytes_sent 2XX 3XX 4XX 5XX
GET / HTTP/1.1 1 612 1 0 0 0
GET /some_file1 HTTP/1.1 1 81 1 0 0 0
# See the fields that you can use for queries.
topngx info < access.log
# Use a custom log format.
topngx -f '$remote_addr - $remote_user [$time_local] "$request" $status $bytes_sent' info
# Output:
access log file: STDIN
access log format: $remote_addr - $remote_user [$time_local] "$request" $status $bytes_sent
available variables to query: remote_addr, remote_user, time_local, request_path, status_type, bytes_sent
# Run a custom query.
# The fields passed in can be viewed via the info sub command.
topngx query -q 'select * from log where bytes_sent > 100' -f request_path bytes_sent < access.log
限制
没有选项可以过滤数据,但将来可能添加此功能。原始版本允许自动检测 NGINX 配置文件、日志文件路径和日志格式样式。topngx 目前有命令行选项用于这些,可能在以后的版本中添加此功能。
如果您发现其他问题或可能缺失的功能,请随时提出问题。您还可以通过env_logger crate 使用日志记录。
# See the env_logger README for the various levels.
RUST_LOG=debug topngx < /path/to/access.log
许可证
MIT
ngxtop 许可证可在此处查看。
依赖关系
~41MB
~668K SLoC