概述
對象存儲服務(Object Storage Service,簡稱 OSS),是海量、安全、低成本、高可靠的雲存儲服務。OSS與日誌服務相比,OSS存儲的成本更低,不過日誌服務中查詢、結果展示、實時監控、數據加工等功能是OSS所不具備的。所以,可以將歷史數據投遞到OSS進行長期保存,SLS存儲近期有查詢分析需要的數據。
當歷史數據有查詢、分析需求時可以將OSS中的數據重新導入到SLS。
前提條件
- 已創建OSS Bucket,並將待導入的日誌文件存儲到OSS Bucket中,詳情請參見上傳文件。
- 已創建Project和Logstore,詳情請參見準備流程。
- 已經完成雲資源訪問授權。
- 導入的OSS文件格式支持:JSON、CSV、Parquet、TEXT。
- 文件壓縮格式支持:Gzip、Bzip2、Snappy,以及未壓縮文件。
流程總覽
- 檢查導入日誌服務的文件格式是否滿足前提條件。
- 檢查子賬號是否有權限操作。主賬號可以直接配置。
- 登陸日誌服務配置OSS數據導入。
- 等待任務執行,查看數據及任務狀態。
操作詳情
測試導入的文件是之前從SLS發送到OSS的日誌文件,bucket類型爲標準存儲。如果bucket是歸檔存儲類型,建議提前解凍;在配置中也能進行解凍,不過解凍有一兩分鐘延遲,配置過程中解凍有可能誤認爲解凍不成功。
1. 檢查OSS中待導入文件格式
在oss控制檯找到文件,檢查文件後綴。如圖是snappy壓縮格式的parquet文件,壓縮格式、文件格式都是滿足上述前提條件的。
2. 權限配置
導入配置測試使用的是主賬號操作,並且已經完成雲資源訪問授權。子賬號所需授權可以參考文檔底部。
3. 創建導入配置
3.1 配置入口
首先,進入日誌服務選擇接入數據中的 OSS-對象存儲,然後選擇要寫入的project、logstore之後點擊下一步。如果還沒有自建project、logstore可以參考 Project操作文檔 以及 Logstore操作文檔 進行創建。
3.2 配置詳情
如圖,配置名稱自定義,OSS Region、Bucket、文件夾前綴都是需要導入文件的信息。
正則過濾是匹配的文件名稱,採集目錄下全部文件時可以不填,爲空時默認採集全部文件。配置中也能打開解凍文件,不過由於OSS解凍文件會有幾分鐘的延遲,有可能導致頁面超時需要刷新的情況,所以建議提前在OSS中對文件解凍。低頻訪問、標準存儲是不需要解凍的。
數據格式、壓縮格式支持情況如下圖,根據同步的文件類型選擇。
編碼格式支持utf-8、gbk以及其他,選擇其他時可以手動輸入編碼格式。
同步配置中可以使用的任務執行的系統時間作爲日誌查詢的時間,不過也可以從日誌內容中提取時間內容替換,Parquet、csv、json格式的日誌是通過填寫字段名稱以及時間格式進行替換;單行文本、跨行文本需要先通過正則提取時間內容之後再填寫時間格式替換。正則規則參考文檔,時間格式參考文檔。以下爲單行文本的提取示例:
最後設置同步間隔就配置成功了,間隔最小是五分鐘、最大是30天,設置之後就會有定時任務產生,按照最後配置的頻率就行導入。如果需要立即查看,可以把立即執行的選項打開,關閉情況下需要等一個週期之後才能看到效果。
3.3 特殊配置
- CSV特有配置項
| 配置項 | 說明 |
分隔符 | CSV 文件分隔符,默認用(,)。 |
Quote | 當字段內包含分隔符時,需要使用Quote包裹,默認用(")。 |
轉義符 | CSV 文件轉義符,默認用(\) |
跨行日誌最大行數 | 當一行日誌跨多行時,需要指定最大行數,默認爲1。 |
首行作爲字段名稱 | 是否使用CSV文件的首行作爲字段列表。 |
跳過行數 | 在文件開始位置跳過指定行數之後纔開始讀取數據,默認爲0。 |
- 跨行文本日誌特有配置項
| 配置項 | 說明 |
行首正則 | 匹配正則的行作爲日誌的第一行,未匹配的行都是這條日誌的一部分,直到達到最大行數。 |
行尾正則 | 匹配正則的行作爲日誌的最後一行,未匹配的行都是下一條日誌的一部分,直到達到最大行數。 |
最大行數 | 一條日誌的最大行數,默認爲10。 |
4. 查看導入狀態及操作
4.1 導入狀態總覽
- 單擊目標Project。
- 選擇目標日誌庫下的數據接入 > 數據導入,單擊任務名稱。
- 在導入配置概覽頁面,查看導入配置的基本信息和統計報表。
4.2 相關操作
在任務的導入配置概覽頁面,還可以進行如下操作:
- 修改任務單擊修改配置,修改導入任務的相關配置,具體配置請參見設置導入配置。
- 刪除任務單擊刪除配置,刪除該導入任。刪除後不可恢復,請謹慎操作。
權限配置
- 首先需要使用主賬號點擊雲資源訪問授權並且同意授權,授權內容是日誌服務有權限訪問OSS中數據資源。
2.1 授權子賬號 AliyunLogFullAccess。
2.2 自定義授權策略:
{
"Version": "1",
"Statement": [
{
"Action": [
"log:ListProject"
],
"Resource": [
"acs:log:*:*:project/*"
],
"Effect": "Allow"
},
{
"Action": [
"log:Get*",
"log:List*"
],
"Resource": "acs:log:*:*:project/project-wuzy/*",
"Effect": "Allow"
},
{
"Action": [
"log:Create*"
],
"Resource": "acs:log:*:*:project/project-wuzy/job/*",
"Effect": "Allow"
}
]
}
- 2.1、2.2 步驟任選其一,passRole權限必須添加。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "log:*",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "ram:PassRole",
"Resource": "*"
}
]
}
日誌時間配置參考
Token | Date or Time Component | Example |
---|---|---|
yyyy | 4-digit year | 2012; 2016 |
yy | 2-digit year | 12; 16 |
MMM | 3-character month | Jan; Mar; Dec |
MM | 1- or 2-digit month (in a year) | 1; 01; 9; 09; 12 |
dd | 1- or 2-digit day (in a month) | 1; 01; 16; 30 |
a | AM/PM (case insensitive) | AM; PM; am; pm |
HH | 1- or 2-digit hour (in a day, 0-23) | 2; 02; 14; 23 |
hh | 1- or 2-digit hour (in a day, 1-12 with AM/PM) | 2; 02; 11; 12 |
mm | 1- or 2-digit minute (in an hour) | 8; 08; 55 |
ss | 1- or 2-digit second (in a minute) | 5; 05; 35 |
SSS | 1-3 digit subsecond or millisecond (in decimal) | 4; 58; 944 |
zzz | 3- letter time zone | UTC; PST; EDT |
ZZZZ | RFC 822 time zone | -0900; +0500 |
'Z' | Literal Z character | Z |
'T' | Literal T character | T |
epoch | 10, 13, 16, 19 digit timestamp with optional . (dot) after 10 digits. | 1496756806.655123456 |
視頻
實踐視頻鏈接: https://v.youku.com/v_show/id_XNDY3MjA5Nzg3Ng==.html