Nginx日志是運維網站的重要信息,日志服務支持通過Nginx模式快速采集Nginx日志并進行多維度分析。本文介紹如何通過日志服務控制臺創建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"
被采集到日志服務Logstore中的日志:
前提條件
已創建Logtail機器組并添加相應服務器,創建機器組的步驟,請參見創建用戶自定義標識機器組和創建IP地址機器組。
服務器具備訪問遠端服務器80端口和443端口的能力,確保Logtail能夠將日志數據發送給日志服務。
服務器日志的內容持續新增。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_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$request_time $request_length ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"';
其他配置項保持默認即可。如需了解更多配置信息,請參見采集主機文本日志。
在查詢分析配置步驟中,單擊刷新,可預覽采集到的數據。
單擊下一步,結束配置流程。您可在此單擊查詢日志,系統將跳轉至Logstore查詢分析頁面。您需要等待1分鐘左右,待索引生效后,才能在原始日志頁簽中,查看已采集到的日志。更多信息,請參見查詢與分析快速指引。
相關文檔
日志服務為Linux系統提供Logtail自動診斷工具,可以根據工具提示快速定位并解決問題。請參見如何使用Logtail自動診斷工具。
使用Logtail采集日志后,如果預覽頁面為空或查詢頁面無數據,請按照Logtail采集日志失敗的排查思路進行排查。
在使用Logtail采集日志時,可能遇到正則解析失敗、文件路徑不正確、流量超過Shard服務能力等錯誤。查看Logtail采集錯誤的步驟,請參見如何查看Logtail采集錯誤信息。采集數據常見的錯誤類型請參見日志服務采集數據常見的錯誤類型。
默認情況下,一個日志文件只能匹配一個Logtail配置。如果同一份日志需要被采集多份,請參見如何實現文件中的日志被采集多份。
將企業內網服務器日志采集到日志服務,請參見采集企業內網服務器日志。
不同服務器上的日志的保存路徑或文件名相同,需要區分不同服務器,請參見機器組Topic。區分不同用戶或實例產生的日志數據,請參見文件路徑提取。
分析網站訪問情況、診斷及調優網站和重要場景告警,請參見分析Nginx訪問日志。