Nginx日誌是營運網站的重要訊息,Log Service支援通過Nginx模式快速採集Nginx日誌並進行多維度分析。本文介紹如何通過Log Service控制台建立Nginx配置模式的Logtail配置採集日誌。
方案概覽
在Nginx配置模式下,Logtail會根據log_format中的定義將日誌內容結構化。Nginx訪問日誌相關的主要指令為log_format和access_log,通常在設定檔/etc/nginx/nginx.conf中配置。log_format用來定義日誌格式;access_log用來指定記錄檔的存放路徑。
日誌格式和存放路徑
log_format和access_log的預設值如下所示。
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$request_time $request_length ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"'; access_log /var/log/nginx/access.log main;日誌欄位說明如下所示:
欄位名稱
說明
remote_addr
用戶端IP地址。
remote_user
用戶端使用者名稱。
time_local
伺服器時間,前後必須加上中括弧([])。
request
請求的URI和HTTP協議。
request_time
整個請求的總時間,單位為秒。
request_length
請求的長度,包括請求行、要求標頭和請求本文。
status
請求狀態。
body_bytes_sent
發送給用戶端的位元組數,不包括回應標頭的大小。
http_referer
URL跳轉來源。
http_user_agent
用戶端瀏覽器等資訊。
原始日誌
Nginx根據log_format的定義組建記錄檔:
192.168.1.1 - - [11/Dec/2024:11:21:03 +0800] "GET /nginx-logo.png HTTP/1.1" 0.000 514 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"被採集到Log ServiceLogStore中的日誌:

前提條件
已建立Logtail機器組並添加相應伺服器,建立機器組的步驟,請參見建立使用者自訂標識機器組和建立IP地址機器組。
伺服器具備訪問遠端伺服器80連接埠和443連接埠的能力,確保Logtail能夠將日誌資料發送給Log Service。
伺服器日誌的內容持續新增。Logtail只採集增量日誌,如果下發Logtail配置後記錄檔無更新,則Logtail不會採集該檔案中的日誌。更多資訊,請參見採集流程。
操作步驟
在Project列表地區,單擊目標Project。
在頁簽中,單擊目標Logstore。
展開LogStore選項卡,單擊Logtail配置,然後單擊添加Logtail配置。

在彈出的快速資料接入頁面中,選擇。

在機器組配置步驟中,選擇已建立的機器組。

在Logtail配置步驟中,配置以下選項。
配置名稱:輸入Logtail採集配置名稱,例如
nginx-logs。檔案路徑:輸入日誌的存放路徑,例如
/var/log/nginx/**/access*表示/var/log/nginx目錄(包含該目錄的遞迴子目錄)中以access開頭的檔案。處理配置:單擊NGINX模式解析,在彈出的處理外掛程式頁簽中,輸入標準NGINX設定檔日誌配置部分,通常以log_format開頭。Log Service將自動提取對應欄位。例如:
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$request_time $request_length ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"';
其他配置項保持預設即可。如需瞭解更多配置資訊,請參見採集主機文本日誌。
在查詢分析配置步驟中,單擊重新整理,可預覽採集到的資料。

單擊下一步,結束配置流程。您可在此單擊查詢日誌,系統將跳轉至LogStore查詢分析頁面。您需要等待1分鐘左右,待索引生效後,才能在原始日誌頁簽中,查看已採集到的日誌。更多資訊,請參見查詢與分析快速指引。
相關文檔
Log Service為Linux系統提供Logtail自動診斷工具,可以根據工具提示快速定位並解決問題。請參見Logtail自動診斷工具。
使用Logtail採集日誌後,如果預覽頁面為空白或查詢頁面無資料,請按照Logtail採集日誌失敗的排查思路進行排查。
在使用Logtail採集日誌時,可能遇到正則解析失敗、檔案路徑不正確、流量超過Shard服務能力等錯誤。查看Logtail採集錯誤的步驟,請參見如何查看Logtail採集錯誤資訊。採集資料常見的錯誤類型請參見Log Service採集資料常見的錯誤類型。
預設情況下,一個記錄檔只能匹配一個Logtail配置。如果同一份日誌需要被採集多份,請參見如何?檔案中的日誌被採集多份。
將企業內網伺服器日誌採集到Log Service,請參見採集企業內網伺服器日誌。
不同伺服器上的日誌的儲存路徑或檔案名稱相同,需要區分不同伺服器,請參見日誌主題。區分不同使用者或執行個體產生的日誌資料,請參見日誌主題。
分析網站訪問情況、診斷及調優網站和重要情境警示,請參見分析Nginx訪問日誌。