Log Service支援將日誌或查詢分析結果下載到本地,本文介紹下載方式及操作步驟。
下載方式說明
Log Service提供控制台、Cloud Shell、Log ServiceCLI或SDK下載方式下載日誌或查詢分析結果。
Log ServiceCLI或SDK下載方式無數量限制,但可能由於網路等不確定因素,出現下載中斷問題。
僅控制台方式支援壓縮下載。
SQL 查詢語句最大長度為 32 KB。超過限制時需分批拆分查詢。
若當前LogStore的計費模式為按寫入資料量計費時,下載查詢和分析結果(SQL結果)時不產生費用。具體內容,可參見按寫入資料量計費。
若當前LogStore的計費模式為按使用功能計費時,下載查詢和分析結果(SQL結果)時,會使用SQL獨享版,因此會產生SQL獨享版相關的費用。費用說明,請參見按使用功能計費模式計費項目。
比較項 | 通過控制台直接下載(推薦) | 通過OpenAPI下載 | 通過命令列工具(CLI)下載 | 通過Cloud Shell下載 | 通過SDK下載 |
資料量限制 |
|
|
|
|
|
依賴部署 | 無 | 無 | 手動安裝Log ServiceCLI。 | 自動部署,首次運行時需要等待初始化。 | 手動安裝Log Service SDK,並需要自訂代碼。 |
授權 | 手動設定 | 自動設定 | 手動設定 | ||
SQL獨享版 | 下載SQL分析結果時,使用SQL獨享版 | 下載SQL分析結果時,使用SQL獨享版 | 不使用 | 不使用 | 按實際需求,設定參數配置。 |
外網讀取流量 | 無 | 無 | 部署在與Project相同地區的ECS上且使用Log Service私網網域名稱時,不會產生外網讀取流量費用。 | 當Project在華東2(上海)地區時,不會產生外網讀取流量費用。 | 部署在與Project相同地區的ECS上且使用Log Service私網網域名稱時,不會產生外網讀取流量費用。 |
NAS整合 | 無 | 無 | 必要時,手動設定 | 自動設定 | 必要時,手動設定 |
您也可以將日誌投遞到OSS,通過OSS進行下載。關於投遞的具體操作,請參見建立OSS投遞任務(新版)。
操作步驟
通過控制台直接下載
Log Service支援通過控制台直接將日誌或查詢分析結果下載到本地,兩者的下載操作類似,本文以下載日誌為例進行說明。如果您要下載查詢分析結果,可在執行查詢分析操作後,在統計圖表頁簽中,單擊下載日誌。
超過單次下載的最大數量時,僅下載最大支援的數量。如果您需要下載全量日誌,可縮小查詢的時間範圍,分多次下載。
單個阿里雲帳號最多支援3個並發下載操作(總下載次數無限制)。超出3個並發下載操作或多個RAM使用者同時操作時,可能報錯,此時您可等待其他動作完成後,再重試。
支援儲存最近1天內的匯出記錄,超過1天的匯出記錄被自動清除。
在遇到網路錯誤或者查詢不精確時,系統會自動重試下載任務。如果重試3次後,仍無法完成下載,則下載任務為失敗狀態。
線上下載(另存新檔)與離線下載(任務管理)的區別:
另存新檔:直接下載當前頁面查詢到的精確結果,適用於小資料量情境。若匯出資料量過大(如幾十萬條),可能導致瀏覽器頁面無響應或崩潰。此時建議改用任務管理中的離線下載功能,或縮小查詢時間範圍減少單次下載量。
任務管理(離線下載):適用於巨量資料量情境,後台非同步處理,效能更優。下載任務建立後可關閉頁面,任務完成後在任務管理中下載檔案。
離線下載任務的實際下載條數可能與前端查詢顯示的條數存在細微差異,此屬正常現象。
若頁面重新整理導致複製失效或線上下載失敗,請優先使用日誌下載功能而非手動複製粘貼。
離線下載耗時不固定,受網路狀況、資料壓縮率、系統負載以及是否需要讀取低頻儲存或Archive Storage資料等因素影響,Log Service不提供固定耗時 SLA 或估算公式。若下載慢或任務長時間無進展,建議按天或按周縮小查詢時間範圍,分批建立下載任務,以提升下載速度和穩定性。若查詢範圍命中階層式存放區中的低頻儲存或Archive Storage資料,讀取耗時會明顯增加,建議進一步縮小時間範圍或收斂查詢條件,減少冷備資料讀取量。
線上下載失敗但離線下載成功的排查建議:
檢查網路是否穩定,查詢條件是否過於複雜。
優先嘗試使用離線下載(任務管理)或 CLI/SDK 方式,這些方式更穩定,適用於巨量資料量情境。
若必須使用線上下載且持續失敗,建議縮小時間範圍,分多次下載。
如果下載日誌按鈕顯示為灰色不可用,請按以下步驟排查:
確認當前處於原始日誌頁簽。統計圖表等其他視圖不支援下載操作。
確認查詢有返回結果。若查詢結果為空白,下載按鈕將置灰不可用。請調整查詢語句或時間範圍後重新查詢。
確認 RAM 使用者已授予下載相關許可權。需要
log:CreateDownloadJob、log:ListDownloadJobs等許可權,詳見本文檔"下載許可權配置"部分。確認當前帳號的並發下載任務數未達到上限。單個阿里雲帳號最多支援 3 個並發下載任務,超出限制時需等待已有任務完成後重試。
若查詢返回條數過少(如僅 20 條),可能是過濾條件過於嚴格。建議放寬時間範圍或調整查詢語句。
在Project列表地區,單擊目標Project。
在頁簽中,單擊目標LogStore。
輸入查詢語句,然後選擇時間範圍。
在原始日誌頁簽中,選擇。
在日誌下載對話方塊中,完成如下配置,然後單擊確定。
參數
說明
任務名
下載任務的名稱。
日誌數量
選擇要下載的日誌數量。
資料格式
支援CSV格式和JSON格式。
採用CSV格式時,檔案中的列名將根據前100條日誌的欄位產生。如果後續日誌存在新的欄位,則所有新的欄位將以JSON格式存放在CSV檔案的最後一列(列名為空白)。
採用JSON格式時,單條日誌的內容會轉換為JSON格式,然後以單行形式寫入檔案。
quote字元
選擇Quote字元,用於包裹日誌中的特殊字元,避免被轉義。
是否允許下載不精確的結果
如果選擇否,則當出現查詢結果不精確時,會導致下載失敗。
壓縮方式
支援gzip、lz4、zstd等壓縮方式,也支援不壓縮。
當下載的日誌數量較多時,強烈建議採用壓縮方式,可顯著降低下載量,減少檔案的下載時間。
在下載任務對話方塊中,等待任務狀態為任務成功後,單擊下載,將日誌下載到本地。
您也可以在原始日誌頁簽中,選擇,開啟下載任務對話方塊,查看下載記錄。
通過OpenAPI下載
超過單次下載的最大數量時,僅下載最大支援的數量。如果您需要下載全量日誌,可縮小查詢的時間範圍,分多次下載。
單個阿里雲帳號最多支援3個並發下載操作(總下載次數無限制)。超出3個並發下載操作或多個RAM使用者同時操作時,可能報錯,此時您可等待其他動作完成後,再重試。
支援儲存最近1天內的匯出記錄,超過1天的匯出記錄被自動清除。
在遇到網路錯誤或者查詢不精確時,系統會自動重試下載任務。如果重試3次後,仍無法完成下載,則下載任務為失敗狀態。
OpenAPI 批量下載注意事項:
索引配置要求:調用 GetLogs API 或執行 SQL 查詢時,需確保查詢欄位已在 LogStore 的索引屬性中配置。如果查詢欄位未配置索引,將報
ParameterInvalid錯誤。索引配置方法請參見建立索引。下載指定欄位:若只需下載特定欄位(如 message),應在 SQL 中使用 SELECT 語句過濾,例如
* | SELECT message,然後執行下載操作,以減少不必要的資料量。
通過Cloud Shell下載
目前 Cloud Shell 位於上海地區,如果當前 LogStore 不在上海地區,下載日誌會產生一定的外網讀取流量費用。價格詳情請參見產品定價。
海量日誌匯出:當需要匯出大量日誌(如億級資料量)時,推薦使用 Cloud Shell 或 CLI/SDK 方式下載,避免通過控制台分批次下載的繁瑣操作。Cloud Shell 無需手動安裝依賴,適合快速執行大規模匯出任務。
操作步驟,參見使用Cloud Shell下載日誌資料。
通過命令列工具下載
當您需要下載更大數量的日誌時,可以通過命令列工具進行下載。
安裝命令列工具。具體操作,請參見安裝CLI。
擷取當前帳號的AccessKey。具體操作,請參見存取金鑰。
擷取下載日誌的命令。具體步驟,請參見get_log_all。
例如:在命令列工具中執行下載命令,執行成功後自動下載到運行命令列的目前的目錄下的
downloaded_data.txt。aliyunlog log get_log_all --project="aliyun-test-project" --logstore="aliyun-test-logstore" --from_time="2024-07-01 15:33:00+8:00" --to_time="2024-07-09 15:23:00+8:00" --query="status:200|select request_method as method,COUNT(*) as pv group by method order by pv" --region-endpoint="cn-hangzhou.log.aliyuncs.com" --format-output=json --access-id="LT***CyGg" --access-key="8P***zi" >> ./downloaded_data.txt
Log Service CLI 的日誌下載命令暫不支援同時使用 --compress(壓縮)和 --query(過濾)參數。若需要在巨量資料量下載情境中同時按條件過濾並壓縮下載,建議改用 OpenAPI 的 CreateDownloadJob - 建立日誌下載任務 介面建立下載任務。
更多資訊,請參見使用Log ServiceCLI。
通過SDK下載
當您需要下載更大數量的日誌時,可通過SDK下載。
SDK下載日誌介面就是查詢日誌的介面。
Python SDK樣本如下:
import os
import time
from aliyun.log import LogClient
from aliyun.log import GetLogsRequest
# Log Service的服務存取點。
endpoint = 'cn-qingdao.log.aliyuncs.com'
# 本樣本從環境變數中擷取AccessKey ID和AccessKey Secret。
accessKeyId = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID', '')
accessKey = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET', '')
# Project名稱。
project = 'Project名稱'
# Logstore名稱。
logstore = 'Logstore名稱'
client = LogClient(endpoint, accessKeyId, accessKey)
request = GetLogsRequest("project1", "logstore1", fromTime=int(time()-3600), toTime=int(time()), topic='', query="*", line=100, offset=0, reverse=False)
# 或者
# request = GetLogsRequest("project1", "logstore1", fromTime="2018-1-1 10:10:10", toTime="2018-1-1 10:20:10", topic='', query="*", line=100, offset=0, reverse=False)
res = client.get_logs(request)
res.log_print()更多資訊,請參見SDK參考概述。
常見問題
通過控制台直接下載如何只下載指定欄位?
如需通過控制台只下載指定欄位,需先確保目標欄位已在 LogStore 索引中建立欄位索引並開啟統計功能。欄位索引只對索引建立或更新後寫入的日誌生效,歷史日誌需重建索引後才能按欄位統計和查詢。
在查詢分析頁面執行 SQL 陳述式篩選需要下載的欄位,格式為 查詢條件 | SELECT "欄位1", 欄位2。例如:
__tag__:__container_name__: tms-prod-bp-server | SELECT "__tag__:__pod_name__", __time__, content執行查詢後,在統計圖表頁簽中,單擊下載日誌下載查詢分析結果。若需要匯出包含特定關鍵字的結果並提高返回行數上限,可在 SQL 陳述式中使用 limit,例如:
關鍵字 | select content limit 999999下載指定欄位也可通過 OpenAPI 實現,本文“通過OpenAPI下載”章節已說明索引配置要求和 SELECT 語句用法。下載 SQL 分析結果會使用 SQL獨享版;若當前 LogStore 的計費模式為按寫入資料量計費,下載查詢和分析結果不產生費用,具體計費口徑以本文“下載方式說明”為準。
控制台日誌列表打不開、載入逾時或線上下載失敗怎麼辦?
如果控制台日誌列表打不開、載入逾時,或線上下載失敗,建議先清除瀏覽器緩衝,使用無痕模式重新訪問,或更換 Chrome、Edge 瀏覽器。請同時確認網路連接穩定,並盡量從與 LogStore 所在地區一致的網路環境訪問。
如果問題仍然存在,請檢查當前帳號下的並發下載任務是否已達到上限;並發上限和線上下載失敗排查建議已在“通過控制台直接下載”的“重要”提示塊中說明。若前端持續異常,可改用命令列工具(CLI)、Cloud Shell 或 SDK 下載,以繞過瀏覽器和控制台頁面依賴。
控制台日誌匯出記錄保留多久?如何查看歷史下載操作?
控制台下載任務列表僅儲存最近 1 天內的匯出記錄,超過 1 天的匯出記錄會自動清除。如需查看更早的歷史下載操作,例如建立下載任務的 API 呼叫記錄,可使用Action Trail(ActionTrail)查詢管控類 API 操作記錄。
如何高效統計平均單條日誌大小?
可通過離線下載功能統計平均單條日誌大小。建議分別選取流量突增時段和正常時段,在控制台建立下載任務並下載到本地;下載完成後,使用文本工具統計檔案總位元組數併除以日誌條數。例如在 Linux 環境中執行 wc -c 查看檔案位元組數,或使用 Python 指令碼統計檔案總位元組數。
資料量較大時,需按時間段分批下載後分別統計。單次下載量限制沿用本文“下載方式說明”對比表口徑:僅查詢情境下,華東1(杭州)、華東2(上海)、華北2(北京)、華南1(深圳)和新加坡地區最多支援下載 2000 萬行資料,其他地區最多支援下載 100 萬行資料,且資料量不超過 20 GB;SQL 分析情境下,資料量不超過 2 GB。若單次匯出仍不能滿足需求,可先將日誌投遞到 OSS,再通過 OSS 下載。
為什麼下載介面的任務名稱和顯示名稱是必填項?
任務名稱和顯示名稱都是建立日誌下載任務 API 的必填參數。任務名稱用於在同一 Project 下唯一標識下載任務,顯示名稱是控制台列表中展示給使用者的標識,便於後續管理和檢索下載任務。
> 下載日誌