概述
对象存储服务(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