分析Debian系统上的Nginx访问日志可以通过多种工具和方法来完成。以下是一些常用的方法和步骤:
安装goaccess:首先需要安装goaccess工具。可以通过以下命令在Debian系统上进行安装:
sudo apt-get install goaccess
配置goaccess:在goaccess的安装目录下找到goaccess.conf文件,根据你的Nginx日志格式进行配置。例如:
time-format %h:%m:%s
date-format %d/%b/%y
log-format %h - %^ [%d:%t %^] "%r" %s %b "%r" "%u"
分析日志:使用goaccess命令分析日志文件,例如:
goaccess /path/to/nginx/access.log -a
这将生成一个详细的分析报告,包括访问量、请求方法、状态码等信息。
可以编写自定义脚本来分析Nginx访问日志。例如,以下脚本可以统计接口请求成功率,并将结果保存到文件中:
#!/bin/bash
LOG_FILE="/xxxx/nginx/logs/xxxx.access.log"
NOW=$(date +%s)
THIRTY_MINUTES_AGO=$((NOW - 1800))
THIRTY_MINUTES_AGO_DATE=$(date -d @$THIRTY_MINUTES_AGO +"%Y-%m-%dT%H:%M:%S")
awk -v date="$THIRTY_MINUTES_AGO_DATE" 'BEGIN {FS = "[{,}]"}{split($0, arr, "\"timestamp\":\"")if (length(arr) > 1) {split(arr[2], time_parts, "\",")log_time = time_parts[1]if (log_time >= date) {split($0, arr, "\"url\":\"")if (length(arr) > 1) {split(arr[2], url_parts, "\",")url = url_parts[1]split($0, arr, "\"request_method\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length(arr) > 1) {split($0, arr, "\"status\":\"")if (length