全部产品
云市场

通过日志服务同步ECS日志数据到AnalyticDB for MySQL

更新时间:2019-09-04 10:00:58

本文以ECS上的Nginx日志为例,介绍如何通过日志服务将日志数据到AnalyticDB for MySQL。

背景信息

日志作为一种特殊的数据,对处理历史数据、诊断问题以及了解系统活动等有着非常重要的作用。对数据分析人员、开发人员或者运维人员而言,日志都是其工作过程中必不可缺的数据来源。

阿里云从用户角度出发,支持通过日志服务(Log Service,简称LOG/原SLS)将云服务器ECS(Elastic Compute Service)上的Nginx访问日志、Log4j日志、Apache日志以及结构化文本等文件实时同步至AnalyticDB for MySQL,从而使用AnalyticDB for MySQL进行实时日志分析。

前提条件

  • 在LOG中完成以下准备工作。

    1. 首次使用日志服务时,您需要使用阿里云账号登录日志服务 LOG产品详情页,单击立即购买,进入购买页面,然后单击立即开通即可成功购买日志服务,系统自动跳转到日志服务控制台

      如果您之前已经开通过日志服务,请直接从创建Project开始。

    2. 参考LOG快速入门,创建Project、创建Logstore。

      本示例创建test-ecs-log Project和nginx-logstore Logstore。

      创建project

      创建logstore

  • 开启并获取当前阿里云账号的Access Key。

    1. 登录日志服务控制台,将鼠标放在右上方的用户名区域,在弹出的快捷菜单中选择accesskeys

    2. 系统弹出安全提示对话框,单击继续使用AccessKey,页面显示AccessKeyIdAccessKeySecret

  • 参照分析型数据库MySQL版快速入门创建表组创建表,在AnalyticDB for MySQL中创建目标数据库、表组以及表。

实施步骤

步骤一:配置日志Logtail

Logtail接入服务是日志服务提供的日志采集Agent,通过日志服务控制台帮助您实时采集阿里云ECS、自建IDC或者其他云厂商等服务器上的日志。

在ECS服务器上安装Logtail客户端,然后添加Logtail采集配置,Logtail即可采集日志到日志服务。Logtail日志采集流程为:监听文件、读取文件、处理日志、过滤日志、聚合日志以及发送数据到日志服务。

  1. 在ECS中安装Logtail

  2. 登录日志服务控制台,单击Project名称。

  3. 概览页面,单击接入数据,选择Nginx-文本日志

  4. 选择日志空间步骤中,日志库Logstore设置为之前创建的nginx-logstore Logstore。

    选择logstore

  5. 单击下一步,在创建机器组步骤中,选择ECS机器,系统自动拉取与日志服务地域相同的ECS实例,勾选您需要的ECS实例ID,单击确认安装完毕

    创建机器组

  6. 设置机器组名称和ECS服务器的IP地址,单击下一步

    机器组

    您可以将多台ECS服务器的IP地址添加到IP地址中。

  7. 我的机器组中选中源机器组,然后单击右移按钮将其移动到应用机器组中,单击下一步

    选择机器组

  8. Logtail配置中,按照页面提示进行参数配置。

    配置logtail

    参数含义请参见采集并分析Nginx访问日志

  9. 确认Nginx键名称

    日志服务自动提取Nginx日志中的键名,请确认是否正确。

    Nginx日志格式中的$request会被提取为request_methodrequest_uri两个键。

    Nginx键名称

  10. 确认是否丢弃解析失败日志,并单击下一步

    开启该功能后,解析失败的Nginx访问日志不会上传到日志服务;关闭该功能后,Nginx访问日志解析失败时将上传原始Nginx访问日志到日志服务。

    是否丢弃解析失败日志

    确保日志机器组心跳正常,即可预览采集上来的数据。

步骤二:将日志投递到AnalyticDB for MySQL

通过日志服务数据处理模块的导出功能,您可以将Logstore中采集到的日志投递到AnalyticDB for MySQL。

  1. 登录日志服务控制台,单击Project名称。

  2. 日志库列表中,单击目标Logstore名称前的> > 数据处理 > 导出 > AnalyticDB,选择需要的AnalyticDB for MySQL集群。

    您需要为日志服务授权,允许日志数据写入AnalyticDB for MySQL。

    1. 单击AnalyticDB后的+,系统自动提示您进行授权操作,单击权限ram授权 提示授权

    2. 在云资源访问授权页面,单击同意授权,将角色AliyunAnalyticDBAccessingLogRole授予日志服务。

      ram授权

  3. 日志库列表中,单击目标Logstore名称前的> > 数据处理 > 导出 > AnalyticDB后的+,在数据投递参数配置页面进行参数配置。

    投递参数配置 字段映射

    参数 说明
    投递名称 为数据投递取一个名字,便于后续管理。
    投递描述 为数据投递添加一段描述。
    数据库名称 目标AnalyticDB for MySQL数据库的名字。
    表组名 目标AnalyticDB for MySQL中的表组。
    表名 目标AnalyticDB for MySQL中的表名,投递过来的日志数据将存储在该表中。
    AccessKeyID 当前阿里云账号的AccessKeyId,请参见获取阿里云账号的AccessKeyId和AccessKeySecret获取AccessKeyId和AccessKeySecret。
    AccessKeySecret 当前阿里云账号的AccessKeySecret。
    字段映射 日志字段与AnalyticDB for MySQL表字段的映射。

    可以单击增加一条添加字段。

    投递时间 设置日志数据的投递时间。
  4. 完成上述参数配置后,单击确定,系统将在设定的投递时间点将日志数据实时投递到AnalyticDB for MySQL。