通過本快速入門,可在30分鐘內從零開始,使用Log Service(SLS)的LoongCollector資料擷取器採集一台ECS伺服器上的Nginx日誌。內容包括配置日誌採集、通過SQL查詢分析資料、查看可視化儀錶盤、設定警示,以及在體驗結束後清理資源以避免產生費用。
前置準備
開通服務與準備帳號
-
開通Log Service:首次使用時,請登入Log Service控制台,根據頁面提示開通服務。
-
準備帳號:
準備ECS執行個體
確保ECS執行個體的安全性群組配置滿足出口方向開放80(HTTP)連接埠和443(HTTPS)連接埠。
產生類比日誌
-
建立指令碼檔案
generate_nginx_logs.sh並粘貼以下內容。該指令碼向/var/log/nginx/access.log檔案中每5秒寫入一條標準的Nginx訪問日誌。 -
授予執行許可權:
chmod +x generate_nginx_logs.sh。 -
在後台運行指令碼:
nohup ./generate_nginx_logs.sh &。
建立Project和LogStore
Project是Log Service的資源嵌入式管理單元,用於隔離不同專案的資料;LogStore是日誌資料的儲存單元。
安裝LoongCollector
-
在建立LogStore成功的彈窗中,單擊確定,開啟快速數據接入面板。
-
單擊Nginx - 文本日誌卡片的立即接入。
-
機器組配置:
-
使用情境:主機情境
-
安裝環境:ECS
-
-
單擊建立機器組,在彈出面板中,選擇目標ECS執行個體。
-
單擊安裝並建立為機器組,安裝成功後,配置機器組名稱(例如
my-nginx-server),單擊確定。說明如果安裝失敗或一直處於等待中,請檢查ECS地區是否與Project相同。
-
單擊下一步,檢測機器組心跳狀態。
首次建立機器組,如果心跳為FAIL,單擊自動重試,等待兩分鐘左右心跳會變為OK。
建立採集配置
-
心跳狀態為OK後,單擊下一步,進入logtail配置頁面:
-
:填寫配置名稱,如:
nginx-access-log-config。 -
:日誌採集的路徑,第一個輸入框填寫檔案夾路徑:
/var/log/nginx,第二個輸入框填寫檔案名稱access.log。 -
處理配置:
-
日誌範例:單擊添加日誌範例,粘貼一行樣本日誌:
192.168.*.* - - [15/Apr/2025:16:40:00 +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.*.* Safari/537.36" -
處理模式:單擊NGINX模式解析外掛程式,在NGINX日志配置中配置log_format,複製並粘貼如下內容,單擊確認。
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $request_time $request_length';生產環境中,此處的
log_format必須與Nginx設定檔(通常位於 /etc/nginx/nginx.conf檔案中)中的定義保持一致。日誌解析樣本:
原始日誌
結構化解析日誌
192.168.*.* - - [15/Apr/2025:16:40:00 +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.*.* Safari/537.36"body_bytes_sent: 368 http_referer: - http_user_agent : Mozi11a/5.0 (Nindows NT 10.0; Win64; x64) AppleMebKit/537.36 (KHTML, like Gecko) Chrome/131.0.x.x Safari/537.36 remote_addr:192.168.*.* remote_user: - request_length: 514 request_method: GET request_time: 0.000 request_uri: /nginx-logo.png status: 200 time_local: 15/Apr/2025:16:40:00
-
-
-
單擊下一步,進入查詢分析配置頁面,採集配置生效需要1分鐘左右,單擊自動刷新,出現預覽資料,說明採集配置已生效。
查詢與分析日誌
單擊下一步,進入結束頁面。單擊查詢日誌,系統將自動跳轉到目標LogStore的查詢分析頁面,編寫SQL分析語句,從結構化日誌中提取關鍵業務與營運指標。指定時間範圍為最近15分鐘:
如果出現錯誤彈窗,原因是索引還未配置完成,關閉後等待1分鐘,即可查看access.log檔案中的日誌內容。
-
樣本1:網站總訪問量(PV)
統計指定時間範圍內的日誌總條數。
* | SELECT count(*) AS pv -
樣本2:按分鐘統計請求量與錯誤率
計算每分鐘的總請求數、錯誤請求數(HTTP狀態代碼≥400)以及錯誤率。
* | SELECT date_trunc('minute', __time__) as time, count(1) as total_requests, count_if(status >= 400) as error_requests, round(count_if(status >= 400) * 100.0 / count(1), 2) as error_rate GROUP BY time ORDER BY time DESC LIMIT 100 -
樣本3:統計不同要求方法(GET, POST等)的PV
按分鐘和要求方法(GET/POST等)對訪問量進行分組統計。
* | SELECT date_format(minute, '%m-%d %H:%i') AS time, request_method, pv FROM ( SELECT date_trunc('minute', __time__) AS minute, request_method, count(*) AS pv FROM log GROUP BY minute, request_method ) ORDER BY minute ASC LIMIT 10000
可視化資料儀錶盤
配置Nginx解析外掛程式後,Log Service會自動建立一個名為nginx-access-log_Nginx訪問日誌的預設儀錶盤。
-
在左側導覽列中,單擊
。 -
找到並單擊該儀錶盤名稱,查看包含PV、UV、錯誤率、要求方法分布等多個核心指標的可視化圖表。
-
所有圖表均可根據業務需求自訂修改。

配置監控警示
配置一條警示規則,當服務出現異常(例如錯誤數激增)時,自動發送通知。
-
在左側導覽列中,單擊
警示。 -
建立行動策略:
-
在頁簽下,單擊創建。
-
配置標識符和名稱(例如
send-notification-to-admin)。 -
在第一行動列表中,單擊
行動組。 -
選擇渠道(例如簡訊),並配置接收人,選擇內容範本。
-
單擊確認 。
-
-
建立警示規則:
-
切換到警示規則頁簽,單擊新建告警。
-
規則名稱:輸入描述性名稱,例如
伺服器5xx錯誤數過多。 -
查詢統計:單擊添加,配置查詢條件。
-
日誌庫:選擇已建立的
nginx-access-log。 -
査詢區間:15分鐘(相對)。
-
:輸入
status >= 500 | SELECT *。 -
單擊預覽,確認可以查詢到資料,單擊確定。
-
-
觸發條件:配置為當:有特定條資料>100條時,觸發嚴重警示。
該配置表示15分鐘內出現超過100個5xx錯誤時觸發警示。
-
:選擇SLS通知並開啟。
-
行動策略:選擇上一步建立的行動策略。
-
重複等待:設定為15分鐘,避免過多的週期性通知。
-
-
單擊確定,儲存警示規則。
-
-
驗證:警示條件滿足時,配置的通知渠道將收到警示資訊。可在 警示歷史 頁面查看所有已觸發的警示記錄。
資源清理
為避免產生不必要的費用,完成操作後,務必按照以下步驟清理所有已建立的資源。
-
停止日誌產生指令碼
登入ECS執行個體,執行以下命令停止後台啟動並執行日誌產生指令碼。
kill $(ps aux | grep '[g]enerate_nginx_logs.sh' | awk '{print $2}') -
卸載LoongCollector(可選)
-
範例程式碼中
${region_id}可使用cn-hangzhou替換,若想加快執行速度,請將${region_id}替換為ECS所屬地區。wget https://aliyun-observability-release-${region_id}.oss-${region_id}.aliyuncs.com/loongcollector/linux64/latest/loongcollector.sh -O loongcollector.sh; -
執行卸載命令。
chmod +x loongcollector.sh; sudo ./loongcollector.sh uninstall;
-
-
刪除Project。
-
在Log Service控制台Project列表頁面,找到已建立的Project(例如
nginx-quickstart-xxx)。 -
在右側操作列單擊移除。
-
在刪除面板中,輸入Project名稱,選擇刪除原因。
-
單擊確定,刪除Project將同時刪除其下的LogStore、採集配置、儀錶盤、警示規則等所有關聯資源。
警告刪除Project後,其管理的所有日誌資料及配置資訊都會被釋放且不可恢複。刪除前請謹慎確認,避免資料丟失。
-
後續步驟
通過本教程,您已成功完成日誌採集、查詢分析、可視化儀錶盤和警示配置的全流程操作。建議您繼續閱讀以下文檔,深入理解核心概念,並結合業務需求合理規劃日誌資源體系:
-
熟悉資料擷取方式,根據實際業務情境選擇合適的採集方式。
-
瞭解儲存資源層級關係說明並規劃資源周期,合理分配Shard數量。
常見問題
採集日誌後,顯示時間與原始日誌時間不一致怎麼辦?
預設情況下,Log Service的時間欄位(__time__)使用的是日誌到達伺服器的時間。若要使用日誌原文中的時間,需要在採集配置中添加時間解析外掛程式。
僅建立Project和LogStore,會產生費用嗎?
當您在建立LogStore時,Log Service預設預留Shard資源,因此可能產生活躍Shard租用費用。更多資訊,請參見為什麼會產生活躍Shard租用費用?
日誌採集失敗,如何排查?
使用Logtail採集日誌失敗,可能是因為Logtail心跳異常、採集錯誤、Logtail採集配置錯誤等原因。如何排查,請參見Logtail採集日誌失敗的排查思路。
為什麼可以查詢到日誌,但無法進行分析?
分析日誌需要為相關欄位配置欄位索引並開啟統計功能,請檢查LogStore的索引配置。
如何停止Log Service計費?
Log Service開通後無法關閉,如果不再使用Log Service,可以刪除帳號下的所有Project即可停止計費。