通过实时日志投递功能可以实时采集系统、应用程序或设备操作的日志,并投递到指定处理平台上进行存储和分析,能够有效保护数据安全,快速监控,定位业务问题和优化内容分发性能。
前提条件
- 如果需要将ESA实时日志投递到阿里云日志服务SLS时,需要先开通阿里云日志服务SLS,并且会产生相应的流量、存储等费用,相关费用由SLS产品收取,详情请参见日志服务(SLS)计费概述。 
- 如果需要将ESA实时日志投递到阿里云对象存储OSS时,需要先开通阿里云对象存储OSS,并且会产生相应的流量、存储等费用,相关费用由OSS产品收取,详情请参见 对象存储(OSS)计费概述。 
- 如果需要将ESA实时日志投递到非阿里云平台的其他目的地,请参照您所使用的平台使用要求。 
- 通常情况下,实时日志的时效性在5分钟内。 
创建实时日志投递任务
针对创建实时日志投递任务的流程图如下:
对于投递目的地为非阿里云的对象存储服务(AWS S3、兼容S3的其他存储服务),会增加一个步骤用来校验您对该对象存储服务的归属权,以确保您的数据安全。
在创建的不同类型的实时日志投递任务的步骤中,由于日志数据的采集维度有差别,所以在第一步选择日志类型时会有所不同,其他的操作步骤均相同。
选择日志类型
边缘函数日志、边缘容器日志
- 登录ESA控制台,在左侧导航栏选择。 
- 在实时日志页面,单击创建投递任务。  
- 根据界面提示填写任务名称并选择日志类型,单击下一步。  
访问及回源日志、安全防护日志、四层代理日志、DNS日志
- 在ESA控制台,选择站点管理,在站点列单击目标站点。 
- 在左侧导航栏,选择。 
- 在投递任务页签中,单击创建投递任务。  
- 根据界面提示填写任务名称并选择日志类型,单击下一步。  
选择日志字段
在选择日志字段页签,配置相关参数后,单击下一步。

| 参数 | 说明 | 
| 采集字段 | 您可以配置需要采集的字段,字段详情请参见采集字段说明。 | 
| 采样率 | 您可以通过配置采样率来降低日志推送的数量,以减少不必要的日志存储成本。配置后,ESA将按照设定的百分比随机采样日志,然后将其推送到您指定的目的地。 | 
| 筛选器 | 您可以通过配置过滤条件来筛选投递您指定的某些日志,当前最多支持添加20个筛选条件。 | 
| 容器名称 | 您可以选择您已部署的容器,当前最多支持添加19个容器名称。 | 
选择目标地址
根据需要选择要投递的目标地址,单击下一步。

| 类型 | 目标地址 | 
| 日志分析服务 | 阿里云日志服务SLS | 
| 对象存储服务 | 阿里云对象存储OSS | 
| AWS S3 | |
| 兼容S3的其他存储服务 | |
| 自定义服务 | HTTP服务器 | 
| Kafka | 
填写投递目标地址信息
投递至阿里云日志服务SLS
配置采集区域、SLS投递区域等投递地址信息后,单击完成。

| 参数 | 说明 | 
| SLS投递区域 | SLS投递区域(即日志服务区域)。 | 
| 授权 | 勾选此项用以授权ESA访问阿里云日志服务SLS。系统将会自动创建服务关联角色AliyunServiceRoleForESARealtimeLogPushSLS并进行授权,允许ESA访问日志服务SLS的资源。角色详细信息请参见实时日志RAM角色。 | 
投递至阿里云对象存储OSS
配置采集区域、Bucket地域等投递地址信息后,单击完成。

| 参数 | 说明 | 
| 采集区域 | ESA日志采集区域。 | 
| Bucket地域 | 选择您的目标Bucket所在地域。 说明  若您还没有建立Bucket,您可以前往OSS控制台Bucket列表,先为您的OSS建立一个Bucket以存储您的日志文件。 | 
| Bucket名称 | 从当前账号中选择已有的Bucket名称。 | 
| 授权 | 勾选此项用以授权ESA访问阿里云存储对象OSS。系统将会自动创建服务关联角色AliyunESARealtimeLogPushOSSRole并进行授权,允许ESA访问对象存储服务OSS的资源。 | 
投递至AWS S3
配置采集区域、Bucket路径等投递地址信息后,单击下一步。
请注意不要开启Bucket的“请求者付款”功能,若您开启了此功能会导致日志投递失败。
| 参数 | 说明 | 
| 采集区域 | ESA日志采集区域。 | 
| Bucket路径 | 输入您的Bucket所在路径。 | 
| Bucket区域 | 从下拉列表中选择您的Bucket所在区域。 | 
| Bucket策略中的加密限制 | 
 | 
| 授权ESA上传文件 | 为保证ESA可以有权限向您的Bucket中投递实时日志,在此处为您提供了用于配置权限的代码。您需要将权限代码复制到AWS S3 Bucket > 对应的存储桶 > 权限 > 存储桶策略中,即可完成ESA在AWS S3的日志投递权限配置。 | 
5. 归属权校验
当填写完AWS S3投递信息后,系统会在您的Bucket日志目录中发送一个.txt后缀的令牌文件。
按照证明所有权右侧提示的路径,在AWS S3中找到该txt文件,将其中所有内容复制到所有权令牌中,点击完成。
投递至S3兼容存储服务
配置采集区域、S3 兼容Bucket路径等投递地址信息后,单击下一步。

| 参数 | 说明 | 
| 采集区域 | ESA日志采集区域。 | 
| S3 兼容Bucket路径 | 输入您的Bucket所在路径。系统会自动在您的Bucket路径中自动生成当前日期的子目录以存放日志文件。 | 
| Bucket区域 | 输入您的Bucket所在区域。 | 
| Access Key ID | 输入您的Access Key ID。 | 
| Secret Access Key | 输入您的Secret Access Key。 | 
| 端点URL | 输入您使用的支持S3的服务器URL,其中无需包含您的Bucket名称或所在路径。 | 
5. 归属权校验
当填写完S3兼容存储服务投递信息后,系统会在您的Bucket日志目录中发送一个.txt后缀的令牌文件。
按照证明所有权右侧提示的路径,在您的S3兼容存储服务器的Bucket中找到该txt文件,将其中所有内容复制到所有权令牌中,点击完成。
投递至HTTP服务器
配置采集区域、接收地址等投递地址信息后,单击完成。

| 参数 | 说明 | 
| 采集区域 | ESA日志采集区域。 | 
| 接收地址 | 输入您的HTTP服务器URL,必须要带有http://或https://。 | 
| 压缩方式 | 您可以从下拉框中选择您需要压缩的格式: 
 | 
| 标态鉴权 | 选择您的服务器是否需要加密签名。当您选择需要使用加密签名,需要完成填写: 
 鉴权原理及示例,请参见标态鉴权说明。 | 
| PrivateKey | 隐私key,用于计算鉴权值,长度大小必须在6-18位之间,且必须包含字母和数字。 | 
| ExpiredTime | 过期时间(单位:秒),用于标识本次签名过期时间。 | 
| 自定义HTTP请求头(选填) | 您最多可以添加20个自定义HTTP请求头。 | 
| 自定义URL参数列表(选填) | 您最多可以添加20个自定义URL参数列表。 | 
| 日志格式body前缀(选填) | 您可以输入自定义的日志body前缀。 | 
| 日志格式body后缀(选填) | 您可以输入自定义的日志body后缀。 | 
投递至Kafka
配置采集区域、Kafka主题等投递地址信息后,单击完成。

| 参数 | 说明 | 
| 采集区域 | ESA日志采集区域。 | 
| Kafka主题 | 输入您的Kafka主题分组。 | 
| broker服务器地址 | 输入您的broker服务器地址。 
 说明  | 
| 压缩方式 | 您可以从下拉框中选择您需要压缩的格式: 
 | 
| 标态鉴权 | 选择您的服务器是否需要加密签名。当您选择需要使用加密签名,需要完成填写: 
 | 
| 负载均衡方式 | 您可以选择您需要的负载均衡方式: 
 | 
添加自定义字段
可以根据您的具体需求,手动添加额外的日志字段,以便于记录特定的信息,帮助您更详细地监控和分析日志数据。
仅访问及回源日志支持采集自定义字段,采集字段为CustomFields。
- 在ESA控制台,选择站点管理,在站点列单击目标站点。 
- 在左侧导航栏,选择。 
- 选择自定义字段,单击添加自定义字段。 
- 在弹出的对话框中设置字段类型、字段名称,单击确定。  - Request Header:请求头是客户端发送给服务器的HTTP请求的一部分,包含了关于请求的详细信息。请求头的主要作用是向服务器提供关于请求的上下文信息,帮助服务器更好地处理请求。 
- Response Header:响应头是服务器发送给客户端的HTTP响应的一部分,包含了关于响应的详细信息。响应头的主要作用是向客户端提供关于响应的上下文信息,帮助客户端更好地处理响应。 
- Cookies:Cookies是存储在客户端(通常是浏览器)的小型文本文件,主要作用是维持会话状态。