Apache日志流量統計可通過以下方式實現:
基礎命令行統計
awk '{print $1}' access.log | sort | uniq -c | sort -nr
(提取IP并排序統計)。grep "2025:08:06" access.log | wc -l
(按日期篩選后計數)。awk '{print $7}' access.log | sort | uniq -c | sort -nr | head -10
(提取URL并排序)。工具化分析
apachetop
:實時顯示請求、響應等流量數據。mod_status
:啟用后通過http://服務器IP/server-status
查看實時訪問量等狀態。編程腳本分析
import re
from collections import Counter
import pandas as pd
log_pattern = re.compile(r'(?P<ip>\d+\.\d+\.\d+\.\d+) - - \[(?P<datetime>[^\]]+)\] "(?P<method>\w+) (?P<path>[^\s]+) (?P<protocol>[^"]+)" (?P<status>\d+)')
with open('access.log') as f:
logs = [match.groupdict() for line in f for match in [log_pattern.match(line)] if match]
# 轉換為DataFrame分析
df = pd.DataFrame(logs)
df['datetime'] = pd.to_datetime(df['datetime'], format='%d/%b/%Y:%H:%M:%S %z')
hourly_traffic = df.resample('H', on='datetime').size() # 按小時統計訪問量
print(hourly_traffic)
注意事項
以上方法可按需選擇,從簡單命令到復雜可視化,滿足不同場景的流量統計需求。