一、Access_log是什麼
在Apache官方文檔中,access log也叫做訪問(access)日誌、HTTP服務器請求日誌,是apache服務器在處理請求時留下的一種記錄,用來記錄訪問了網站的客戶端IP地址、訪問時間、請求的URL、HTTP方法和服務器響應狀態等信息。
簡單來說,由於服務器端不能記錄所有的情況,所以需要記錄重要的日誌信息來監控客戶端行為以及運行狀態。
二、Access_log日誌打印格式
默認情況下,Apache Web服務器訪問日誌格式是由「LogFormat」、「CustomLog」指令組合定義的。
Apache默認日誌格式:Combined Log Format,定義為:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined CustomLog logs/access_log combined
其中,「%h」 是客戶端IP地址,「%l」 是客戶端身份驗證後關聯的傳輸級別安全信息(常用於SSL/TLS傳輸過程),「%u」 是身份認證用戶,「%t」 是服務器記下時間的時間戳,「%r」 是請求行,包括請求方法、資源定位符和HTTP協議版本, 「%>s」 是服務器響應狀態代碼,「%b」 是HTTP響應中發送的位元組數,「%{Referer}i”是http訪問來源,” %{User-Agent}i”是http用戶代理標識信息。
三、Access_log分析工具
接下來,我們需要考慮的是如何分析access_log。讓我們一起來看看幾個強大的分析工具。
1. awstats
awstats是一個基於Perl的開源工具,可以分析訪問日誌文件,並將其轉換為易於理解的圖表和表格。它可以分析訪問在Web服務器上找到的HTML文件、多媒體文件和其他Web頁面的信息,以及瀏覽次數、每個頁面的訪問頻率等數據。
LogFormat="%host %other %logname %time1 %methodurl %code %bytesd \ %refererquot %uaquot" LoadPlugin="decodeutfkeys" LogSeparator=" " HostAliases="localhost 127.0.0.1"
2. GoAccess
GoAccess是一個快速、實時的日誌文件分析器和交互式查看器,可以在終端中工作。它使用Web日誌文件作為輸入,然後在終端界面或HTML文件中顯示增量式的日誌數據,供管理員分析和監視服務器活動。
sudo apt-get update && sudo apt-get install goaccess sudo goaccess -f /var/log/nginx/access.log -a -o /usr/share/nginx/html/report.html
3. ELK stack
ELK是Elasticsearch、Logstash和Kibana的縮寫。這是一種強大的基於開源的日誌分析平台,可以將來自各種數據來源的流式數據轉換為可訪問、可搜索、可視化的數據。
input { file { path => ["/my/nifty/auth/access.log"] tags => ['apache-access'] } } filter { if "apache-access" in [tags] { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss ZZ" ] locale => en } } } output { file { path => "/tmp/logstash-apache-access.log" } elasticsearch { index => "apache-access-%{+YYYY.MM.dd}" } }
四、AccessLogin
AccessLogin是一個免費的開源工具,可用於分析Nginx和Apache Web服務器訪問日誌文件。它提供了一個易於使用的Web界面,可以查看統計信息、了解關鍵性能指標、監視客戶端使用情況和快速檢測常見的網絡瓶頸。
下面是accesslogin的安裝和使用方法:
sudo apt-get update sudo apt-get install git sudo apt-get install python sudo apt-get install python-pip pip install psutil git clone https://github.com/dmpayton/accesslog.git cd accesslog && python accesslog.py --help
五、AccessLog Report Success
除了使用上述工具對access log進行分析,我們還可以根據其中的數據生成一些統計報告,以更好地了解客戶端的使用情況。
讓我們生成一個成功的請求報告。首先,我們需要在access log中提取成功的請求和時間戳。下面是腳本的示例:
awk '$9 ~ /200/ { print $7,$9 }' access.log > access.success.log
現在我們可以使用GNUplot 創建一個報告,顯示請求的成功率和時間戳。下面是腳本的示例:
echo ' set autoscale set terminal png size 600,400 set output "access.png" set xdata time set timefmt "%d:%b:%Y:%T" set xrange ["30/Apr/2018:00:00:00" : "15/May/2018:00:00:00"] set format x "%d/%m %H:%M" set xlabel "Date/Time" set ylabel "HTTP Responses" set title "Successful HTTP Requests" plot "access.success.log" using 1:(1) smooth freq with boxes \ title "Success" ' | gnuplot
六、蘋果手機AccessLog怎麼查看
如果你是蘋果手機用戶,想要查看AccessLog,則需要執行以下步驟:
第1步:開啟設備管理器
在iPhone/iPad或iPod Touch上的「設置」>「開發人員」中將「Device Management」設置為「On」狀態,如下所示:
Settings > Developer > Device Management
第2步:查看日誌
啟動應用程序和操作,將生成相應的日誌。在開發機上使用Xcode,打開「Window」>「Devices and Simulators」,將設備連接到Mac上,在左側下拉菜單中選擇要檢查的設備。在「Device Information」>「View Device Logs」中顯示各種日誌。
七、Access日誌記錄選取
最後,我們需要考慮的是在記錄Access日誌時該選取哪些內容。記錄Access日誌信息可能會影響服務器性能並佔用存儲空間,因此我們應該選擇一些重要的數據來記錄,例如IP地址、時間戳、請求URL和響應狀態等。
下面是一個記錄自定義的Access日誌示例:
LogFormat "%v:%p %h %l %u %{%Y-%m-%d %H:%M:%S}t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" "%{X-Forwarded-For}i"" vhost_combined CustomLog "/var/log/apache2/vhost.log" vhost_combined
結語
Access_log日誌分析工具的使用可以讓我們更好地了解客戶端的使用情況,從而提高我們的網站性能以及安全性。 希望本文對大家有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/154926.html