ELK迁移到阿里云日志服务

划重点
1、了解ELK迁移阿里云日志服务方案
2、了解同账号和跨账号迁移区别及适用场景

概述

日志服务相比自建 ELK 在功能、性能、规模和成本等方面有诸多优势。对于已经存储在 Elasticsearch 中的数据,用户只需要一行命令就能方便地将数据迁移至日志服务。

Elasticsearch数据迁移方案

针对Elasticsearch场景,日志服务团队提供了基于aliyun-log-python-sdk和aliyun-log-cli的解决方案。该方案主要针对历史数据做全量迁移。

原理

  • 使用 Scroll API 从 Elasticsearch 抓取数据。Scroll API 可以从 Elasticsearch 里高效取出大量数据而无须付出深度分页的代价。
  • 针对 Elasticsearch 每个 index 的每个 shard 创建一个数据迁移任务,提交到内部进程池中执行,用来提高并行度和吞吐量。

                  图

功能

  • 支持用户将 Elasticsearch 中的所有文档或某些索引中的文档迁移至日志服务指定的 project 中,工具会自动初始化好与索引同名的 logstore。
  • 支持用户自定义过滤条件,只迁移符合条件的文档至日志服务。
  • 支持用户自定义 Elasticsearch 的索引和日志服务的 logstore 之间的映射关系。
  • 支持用户通过参数 pool_size 来控制数据迁移任务的并行度。
  • 支持使用 HTTP 基本认证从 Elasticserch 中迁移数据。

映射关系

Elasticsearch 数据模型中包含 - 索引(index),类型(type),文档(document),映射(mapping),数据类型(field datatypes)等概念,它们和日志服务中数据模型的映射关系如下表所示。

同账号迁移

迁移前确保es没有新数据写入,不然增量数据可能迁移不过去

  1. 查看待迁移的索引文档数,如下device为待迁移索引
curl http://localhost:9200/device/_count
  1. 查看索引占用磁盘大小
curl -s 'localhost:9200/_cat/allocation?v'
  1. aliyun-log-cli安装

参考aliyun-log-cli用户手册

  1. AK/endpoint配置

将存储AK与Endpoint在~/.aliyunlogcli, 默认使用的块名是main,查看所有 服务入口

如果在阿里云ECS机器(包含VPC)环境使用日志服务 API,还可以使用内网服务入口(使用内网服务入口访问日志服务不消耗 ECS 公网流量,可以节约宝贵的 ECS 公网带宽)

aliyunlog configure LTAIoUb0RuUiUjeO Sh9p38OYcx7hlCY0f2rmYCNOSa3Gfr cn-hangzhou-finance-intranet.log.aliyuncs.com
  1. 迁移命令

logstore不必事先创建,如果CLI发现目标logstore 未创建,会为您在指定的project下创建好。

aliyunlog log es_migration --hosts=10.253.126.13:9200 --project_name=tts-car --indexes=device --logstore_index_mappings='{"catgts-device": "device"}' --time_reference=@timestamp
  1. 登录阿里云日志服务查看

跨账号迁移

场景:将某账号下日志服务数据迁移到另外一个账号日志服务

aliyunlog configure access_id1 access_key1 cn-beijing.log.aliyuncs.com

aliyunlog configure access_id2 access_key2 cn-hangzhou.log.aliyuncs.com test

  查看~/.aliyunlogcli,AK将存储为:

[main]
access-id=access_id1
access-key=access_key1
region-endpoint=cn-beijing.log.aliyuncs.com

[test]
access-id=access_id2
access-key=access_key2
region-endpoint=cn-hangzhou.log.aliyuncs.com

  使用特定账户

aliyunlog log copy_project --from_project="p1" --to_project="p1" --to_client=test

  将main账户下对应的项目p1复制到账户test下的p1

修改默认账户

如前面所属,默认账户是main,在多用户情况下,切换默认账户也是很有用。通过选项--default-client可以修改。

aliyunlog configure --default-client=beijing

  这样其他命令默认会使用beijing账户下的访问密码和服务入口地址。

 

posted @ 2020-05-08 13:35  枫叶赋  阅读(669)  评论(0编辑  收藏  举报

友情链接:东小店 Copyright 2014-2020 枫叶赋 版权所有