在使用CLB的七層負載平衡時,如果您需要進行業務開發測試、故障處理或使用者行為資料分析,您可使用CLB訪問日誌功能。CLB訪問日誌功能結合阿里雲Log Service,可協助您大幅提升日誌資料分析、故障定位處理的效率。
功能簡介
什麼是CLB訪問日誌
CLB訪問日誌功能收集所有發送到CLB的請求詳細資料,包括請求時間、用戶端IP地址、延遲、請求路徑和伺服器響應等。作為公網訪問入口,CLB承載海量訪問請求。您可以通過訪問日誌分析使用者行為、瞭解地區分布、進行問題排查等。
在開啟CLB訪問日誌後,您可以將訪問日誌儲存在Log Service(SLS)的日誌庫(Logstore)中,採集分析訪問日誌。您可以隨時刪除訪問日誌的配置。
CLB訪問日誌功能無需額外付費,您僅需支付Log Service的費用。計費可參考Log Service計費概述。
只有七層CLB支援訪問日誌功能。
確保HTTP header的值不包含
||,否則可能導致日誌分割錯位。
CLB訪問日誌優勢
CLB訪問日誌有以下優勢:
簡單
解放開發、營運人員的時間,專註業務開發和技術探索。
海量
處理海量日誌資料,Log Service在效能和成本上優於自建方案。
即時
滿足DevOps、監控、警示等情境的即時性需求,結合阿里雲Log Service,秒級分析處理日誌。
靈活
按CLB執行個體層級開通或關閉日誌功能,後台自動建立與對接,無需手動維護。
使用限制
僅CLB的七層負載平衡(HTTP/HTTPS監聽)支援訪問日誌功能。
訪問日誌主要記錄七層請求資訊,故四層監聽(TCP/UDP)不支援開啟訪問日誌。
前提條件
已建立虛擬伺服器組。在伺服器組中已添加後端伺服器,並在後端伺服器中部署了應用服務。
您已經開通Log Service。
設定訪問日誌
在左側導覽列,選擇。
在頂部功能表列,選擇CLB執行個體所屬地區。
如果您是首次使用該功能,需要進行帳號授權。單擊立即授權,在彈出的雲資源訪問授權頁面單擊同意授權。
說明該操作只有在首次配置時需要執行。
如果您使用的是RAM使用者,需要阿里雲帳號進行授權。具體操作,請參見授權RAM使用者(子帳號)使用CLB訪問日誌。
在訪問日誌(7層)頁面,找到目標CLB執行個體,在操作列單擊設定。
在日誌設定面板,設定專案Project和日誌庫Logstore,然後單擊確定。
專案Project:專案(Project)是Log Service的資源嵌入式管理單元,用於資源隔離和控制。建議使用不同的Project管理不同的應用、產品或專案中的資料。
日誌庫Logstore:日誌庫(Logstore)是Log Service中日誌資料的採集、儲存和查詢單元。建議同個應用中不同類型的日誌建立獨立的Logstore。
選擇現有Logstore:該功能會預設開啟選中的Logstore的分析儀錶盤,如果該Logstore已配置索引,配置會被覆蓋。
說明確保Project的名稱全域唯一,且Project的地區和Server Load Balancer執行個體的地區相同。
配置負載平衡訪問日誌後,您可以在Log Service中查詢、檢索以下欄位的日誌資訊。
欄位
說明
body_bytes_sent
發送給用戶端的http body的位元組數。
client_ip
請求用戶端IP地址。
client_port
請求用戶端連接埠。
host
優先從請求參數中擷取host,如果擷取不到則從host header取值,如果還是擷取不到則以處理請求的後端伺服器IP地址作為host。
http_host
請求報文host header的內容。
http_referer
負載平衡收到的請求報文中HTTP的referer header的內容。
http_user_agent
負載平衡收到的請求報文中http_user_agent header的內容。
http_x_forwarded_for
負載平衡收到的請求報文中x-forwarded-for header的內容。
http_x_real_ip
負載平衡收到的請求報文中HTTP的x-real-ip的內容。
read_request_time
負載平衡讀取請求的時間,單位:毫秒。
request_length
請求報文的長度,包括startline、http header和http body。
request_method
請求報文的方法。
request_time
負載平衡收到第一個請求報文的時間到SLB返回應答之間的間隔時間,單位:秒。
request_uri
負載平衡收到的請求報文的URI。
scheme
請求的scheme,包括http、https。
server_protocol
負載平衡收到的HTTP協議的版本,例如HTTP/1.0或HTTP/1.1。
slb_vport
負載平衡的監聽連接埠。
slbid
Server Load Balancer執行個體ID。
ssl_cipher
建立SSL串連使用的密碼,例如ECDHE-RSA-AES128-GCM-SHA256等。
ssl_protocol
建立SSL串連使用的協議,例如TLSv1.2。
status
負載平衡應答報文的狀態。
tcpinfo_rtt
用戶端TCP連線時間,單位:微秒。
time
日誌記錄時間。
upstream_addr
後端伺服器的IP地址和連接埠。
upstream_response_time
從與後端建立串連開始到接受完資料然後關閉串連為止的時間,單位:秒。
upstream_status
負載平衡收到的後端伺服器的響應狀態代碼。
vip_addr
虛擬IP地址。
write_response_time
負載平衡寫的回應時間,單位:毫秒。
查詢訪問日誌
訪問日誌配置完成後,您可以通過Log Service控制台查詢日誌。
在左側導覽列,選擇。
在頂部功能表列,選擇CLB執行個體所屬地區。
在訪問日誌(7層)頁面,在目標執行個體操作列單擊查看日誌,跳轉到Log Service頁面。
Log Service配置完成後,如有用戶端訪問過CLB執行個體可查看到對應的日誌資訊。
輸入SQL語句查詢特定的訪問日誌。
例如,輸入如下SQL語句查詢Top20的用戶端,用於分析請求訪問來源,輔助商業決策。
* | select http_user_agent, count(*) as pv group by http_user_agent order by pv desc limit 20
分析訪問日誌
您可以通過Log Service的儀錶盤分析訪問日誌,儀錶盤提供更豐富的資料資訊。
在上述Log Service頁面,在左側導覽列選擇
,然後單擊儀錶盤列表。單擊CLB對應訪問日誌的名稱slb_layer7_access_center_en,查看分析報表。
關閉訪問日誌
您可以通過關閉訪問日誌,不再收集CLB的訪問日誌。
CLB執行個體關閉日誌記錄後,對應的日誌Project和Logstore不會被刪除,該執行個體的歷史日誌資訊也不會立即刪除,您仍可以在SLS中管理歷史日誌。
在左側導覽列,選擇。
在頂部功能表列,選擇CLB執行個體所屬地區。
在訪問日誌(7層)頁面,找到目標執行個體,然後在目標執行個體操作列單擊關閉日誌記錄。
在彈出的對話方塊中,單擊確定,關閉該執行個體的訪問日誌。
相關文檔
Log Service產品詳細介紹可參考什麼是Log Service。
使用CLB的七層負載平衡(HTTP/HTTPS監聽)期間,如遇業務故障或異常,懷疑是後端伺服器問題,可通過CLB使用訪問日誌快速定位異常後端伺服器。