zoukankan      html  css  js  c++  java
  • 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账户下的访问密码和服务入口地址。

  • 相关阅读:
    面向对象三大特性之多态
    作业
    面向对象三大特性之封装
    面向对象三大特性之继承
    面向对象(一)
    subprocess, re模块,logging, 包等使用方法
    模块二之序列化模块以及collections模块
    常用模块
    内置函数补充,函数递归,模块
    生成器以及面向过程编程
  • 原文地址:https://www.cnblogs.com/fuyefeng/p/12849986.html
Copyright © 2011-2022 走看看