开发者社区> 问答> 正文

订阅日志服务数据前的环境准备工作



搭建指南


本文档为日志数据传送服务的搭建指南,介绍如何将日志服务中的日志数据转换为结构化数据,存储在表格存储中,以提供准确、高性能的日志实时检索服务。
更详细的信息介绍请参见 用户手册



准备工作



日志服务


开通日志服务,并且申请您的 Project 和 Logstore。传送服务不会修改您日志服务内的日志数据,所以也可以使用您生产用的 Project 和 Logstore。教程里我们假设 Project 是 lhshipper-test,Logstore 是 test-store,地域为华东 1 地区。

表格存储


开通表格存储服务,并预先建好两张表:

  • 第一张是数据表,用来存储从日志服务中同步过来的日志数据。教程里我们假设这张表有三个主键列,分别是:
    rename:类型是 STRING。

  • trans-pkey:类型是 INTEGER。

  • keep:类型是 STRING。

第二张表是传送服务的状态表,用来存储每个日志服务 Project 以及各个 Shard 上日志数据的同步进度。您的服务与多个 Project 和 LogStore 的传送服务可以复用同一张状态表。我们建议您将这张表的数据生命周期设置为 1 天或 2 天,这样可以降低使用成本。状态表的主键有四列,分别为:

  • project_logstore:类型为 STRING。

  • shard:类型为 INTEGER。

  • target_table:类型为 STRING。

  • timestamp:类型为 INTEGER。


访问控制


从访问控制 RAM 中获取您的 access key ID 和 access key secret。
出于安全的考虑,我们建议您在生产中使用子账户来搭建传送服务,并授权这个子账户读取日志服务数据的权限(AliyunLogReadOnly)和将日志数据写入表格存储的权限(AliyunTableStoreWriteOnlyAccess)。

云服务器和容器服务


开通云服务器 ECS 和[容器服务。[backcolor=transparent]后续步骤中您需要创建一台按量付费的云服务器,所以请确保账户的余额不少于 100 元。

搭建服务


  1. 登录容器服务控制台

  2. 单击页面左侧的[backcolor=transparent]集群,进入集群列表页面。

  3. 单击页面右上角的[backcolor=transparent]创建集群,进入创建集群页面。

  4. 设置集群的基本信息,请注意如下事项:

    • 尽量选择和日志服务与表格存储相同的地域,这样可以使用私网地址,避免产生公网下行流量费用和公网延迟的不确定性。

    • 本教程不勾选 Swarm Mode 集群以方便演示。
      生产上建议您勾选[backcolor=transparent]Swarm Mode 集群,性能更佳。

    • 本教程选择[backcolor=transparent]创建节点以方便演示。
      生产上建议您选择[backcolor=transparent]添加已有节点,来添加现有的云服务器。

    • 传送服务并不需要高配置的实例,一般情况下,选择 [backcolor=transparent]1 核 1 GB 即可。

    • 传送服务可以完全动态地水平扩容缩容,您可以选择多台云服务器。

    • 传送服务不是一个 HTTP 服务,不需要暴露任何端口,所以无需选择创建负载均衡。

  • 设置完成后,单击页面右侧的[backcolor=transparent]创建集群。
    集群进入初始化阶段,需要一些时间,您可以在集群列表页面查看集群状态。

  • [backcolor=transparent]注意:如果已经有云服务器,可以将已购买的云服务器添加到指定集群,详细步骤请参见 添加已有云服务器


    创建应用


    1. 登录容器服务控制台

    2. 单击左侧导航栏的[backcolor=transparent]应用。

    3. 单击页面右上角的[backcolor=transparent]创建应用。

    4. 设置应用的基本信息(示例使用的应用名称为 [backcolor=transparent]loghub-shipper),请注意如下事项:

      • 在[backcolor=transparent]部署集群项中选择在哪个集群上创建该应用。

      • 建议勾选[backcolor=transparent]检查最新 Docker 镜像,便于以后的版本升级。

  • 单击[backcolor=transparent]使用镜像创建。

    [backcolor=transparent]注意:本教程选择镜像创建是为了说明核心流程。但在生产上,一个应用可能包含多种服务,此时选择[backcolor=transparent]使用编排模板创建会更灵活便利。

  • 进行应用配置。请注意如下事项:

    • 在搜索框中输入[backcolor=transparent]loghub-shipper并单击[backcolor=transparent]全局搜索,可快速找到传送服务的镜像。

    • 在[backcolor=transparent]环境变量栏中填写如下变量信息:
      access_key_id

    • access_key_secret

    • loghub:表示日志服务相关信息,信息内容为一个 json 字符串,需要包括 endpoint、logstore 和 consumer_group。其中,consumer_group 可以是任意字符串,同一个传送服务中的多个容器实例共用一个,多个传送服务使用的 consumer_group 不能重复。该变量值示例内容如下:{"endpoint": "http://lhshipper-test.cn-hangzhou.log.aliyuncs.com",
    • "logstore": "test-store",
    • "consumer_group": "defaultcg"}


  • tablestore:表示表格存储的相关信息,信息内容为一个 json 字符串,需要包括 endpoint(访问表格存储的域名)、instance(访问表格存储的实例名)、target_table(数据表名)和 status_table(状态表名)。该变量值示例内容如下:{"endpoint": "http://lhshipper-test.cn-hangzhou.ots.aliyuncs.com",
  • "instance": "lhshipper-test",
  • "target_table": "loghub_target",
  • "status_table": "loghub_status"}


  • exclusive_columns:该字段表示日志数据中不导入表格存储的字段信息,该内容为一个 json 字符串。该变量值的示例内容如下:["__source__","time"]


  • transform:该字段表示日志数据中需要做的格式转换信息(日志数据中所有数据均为字符串型),例如重命名及某个属性类型转换,该内容为一个 json 字符串。该变量值的示例内容如下:{"rename": "original",
  • "trans-pkey": "(->int 10 original)"}


  • 上述示例表示,将日志数据中字段为 original 的数据变成数据表中 rename 的属性列,将日志数据中字段为 original 的数据转成十进制整数成为数据表中 trans-pkey 的属性列,更多类型转换定义请参考 用户手册

    [backcolor=transparent]注意:在配置中不需要指定数据表的主键信息,传送服务会自动读取数据表的 schema 信息。但日志数据或者 transform 中需要包括所有的主键字段,否则该条日志信息将会被丢弃。

    单击[backcolor=transparent]创建。部署服务需要一些时间,可以在服务列表中查看其状态。
    上述操作均已成功完成后,传送服务即会就绪。

    展开
    收起
    云栖大讲堂 2017-10-25 10:46:25 2033 0
    0 条回答
    写回答
    取消 提交回答
    问答排行榜
    最热
    最新

    相关电子书

    更多
    PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
    Kubernetes下日志实时采集、存储与计算实践 立即下载
    日志数据采集与分析对接 立即下载