将OSS数据导入日志服务操作实践

概述

对象存储服务(Object Storage Service,简称 OSS),是海量、安全、低成本、高可靠的云存储服务。OSS与日志服务相比,OSS存储的成本更低,不过日志服务中查询、结果展示、实时监控、数据加工等功能是OSS所不具备的。所以,可以将历史数据投递到OSS进行长期保存,SLS存储近期有查询分析需要的数据。
当历史数据有查询、分析需求时可以将OSS中的数据重新导入到SLS。

前提条件

  1. 已创建OSS Bucket,并将待导入的日志文件存储到OSS Bucket中,详情请参见上传文件
  2. 已创建Project和Logstore,详情请参见准备流程
  3. 已经完成云资源访问授权
  4. 导入的OSS文件格式支持:JSON、CSV、Parquet、TEXT。
  5. 文件压缩格式支持:Gzip、Bzip2、Snappy,以及未压缩文件。



流程总览

  1. 检查导入日志服务的文件格式是否满足前提条件。
  2. 检查子账号是否有权限操作。主账号可以直接配置。
  3. 登陆日志服务配置OSS数据导入。
  4. 等待任务执行,查看数据及任务状态。



操作详情

测试导入的文件是之前从SLS发送到OSS的日志文件,bucket类型为标准存储。如果bucket是归档存储类型,建议提前解冻;在配置中也能进行解冻,不过解冻有一两分钟延迟,配置过程中解冻有可能误认为解冻不成功。

1. 检查OSS中待导入文件格式

oss控制台找到文件,检查文件后缀。如图是snappy压缩格式的parquet文件,压缩格式、文件格式都是满足上述前提条件的。
将OSS数据导入日志服务操作实践

2. 权限配置

导入配置测试使用的是主账号操作,并且已经完成云资源访问授权。子账号所需授权可以参考文档底部。

3. 创建导入配置

3.1 配置入口

首先,进入日志服务选择接入数据中的 OSS-对象存储,然后选择要写入的project、logstore之后点击下一步。如果还没有自建project、logstore可以参考 Project操作文档 以及 Logstore操作文档 进行创建。
将OSS数据导入日志服务操作实践

3.2 配置详情

如图,配置名称自定义,OSS Region、Bucket、文件夹前缀都是需要导入文件的信息。
正则过滤是匹配的文件名称,采集目录下全部文件时可以不填,为空时默认采集全部文件。配置中也能打开解冻文件,不过由于OSS解冻文件会有几分钟的延迟,有可能导致页面超时需要刷新的情况,所以建议提前在OSS中对文件解冻。低频访问、标准存储是不需要解冻的。
将OSS数据导入日志服务操作实践
数据格式、压缩格式支持情况如下图,根据同步的文件类型选择。
将OSS数据导入日志服务操作实践将OSS数据导入日志服务操作实践
编码格式支持utf-8、gbk以及其他,选择其他时可以手动输入编码格式。
将OSS数据导入日志服务操作实践
同步配置中可以使用的任务执行的系统时间作为日志查询的时间,不过也可以从日志内容中提取时间内容替换,Parquet、csv、json格式的日志是通过填写字段名称以及时间格式进行替换;单行文本、跨行文本需要先通过正则提取时间内容之后再填写时间格式替换。正则规则参考文档,时间格式参考文档。以下为单行文本的提取示例:
将OSS数据导入日志服务操作实践
最后设置同步间隔就配置成功了,间隔最小是五分钟、最大是30天,设置之后就会有定时任务产生,按照最后配置的频率就行导入。如果需要立即查看,可以把立即执行的选项打开,关闭情况下需要等一个周期之后才能看到效果。

3.3 特殊配置

  • CSV特有配置项
    | 配置项 | 说明 |
分隔符 CSV 文件分隔符,默认用(,)。
Quote 当字段内包含分隔符时,需要使用Quote包裹,默认用(")。
转义符 CSV 文件转义符,默认用(\)
跨行日志最大行数 当一行日志跨多行时,需要指定最大行数,默认为1。
首行作为字段名称 是否使用CSV文件的首行作为字段列表。
跳过行数 在文件开始位置跳过指定行数之后才开始读取数据,默认为0。
  • 跨行文本日志特有配置项
    | 配置项 | 说明 |
行首正则 匹配正则的行作为日志的第一行,未匹配的行都是这条日志的一部分,直到达到最大行数。
行尾正则 匹配正则的行作为日志的最后一行,未匹配的行都是下一条日志的一部分,直到达到最大行数。
最大行数 一条日志的最大行数,默认为10。

4. 查看导入状态及操作

4.1 导入状态总览

  1. 单击目标Project。
  2. 选择目标日志库下的数据接入 > 数据导入,单击任务名称。
  3. 导入配置概览页面,查看导入配置的基本信息和统计报表。

将OSS数据导入日志服务操作实践

4.2 相关操作

在任务的导入配置概览页面,还可以进行如下操作:

  • 修改任务单击修改配置,修改导入任务的相关配置,具体配置请参见设置导入配置
  • 删除任务单击删除配置,删除该导入任。删除后不可恢复,请谨慎操作。

权限配置

  1. 首先需要使用主账号点击云资源访问授权并且同意授权,授权内容是日志服务有权限访问OSS中数据资源。

将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"
        }
    ]
}
  1. 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

上一篇:ubuntu下使用conda出现solving environment失败


下一篇:OS L3-10: Solving Problems with Monitors