ECS部署场景应用日志配置

更新时间:
复制 MD 格式

本文介绍托管版服务ECS部署场景下应用日志的配置流程。

原理介绍

ECS场景中,计算巢主要利用SLS日志采集配置的自定义标识,来实现批量收集统一服务下所有实例的日志。对于一个SLS project下的某个日志库Logstore会有一个日志采集配置logtail,在该日志采集配置中可设置自定义用户标志。当成功设置自定义用户标志后,在服务商账号下,对于每一个安装了日志插件的ECS,如果该台ECS上配置了相同的用户自定义标识,则该ECS上指定路径的应用日志会被自动收集到日志库中,供服务商查看。 对于上述功能,计算巢通过提供了一个ROS共享模块将其简化。具体流程示意如下:image

创建包含应用日志功能的全托管服务

概述流程

  1. 服务商准备好一个ECS部署场景的全托管服务。

  2. 服务商准备服务所需要的SLS相关资源。包含日志仓库Project,日志库Logstore,日志采集配置(视不同部署场景可能需要)。

  3. 修改全托管部署服务中应用日志采集到日志服务的配置信息。

  4. 如需授予用户查看服务实例应用日志的权限,需要配置代运维权限。

完整流程

该部分完整讲述每个场景下的具体配置步骤。

步骤一. 准备全托管服务

ECS场景需要先具备一个全托管服务。如未有请参见创建全托管服务

步骤二. 准备SLS资源

每个地域需要配置一个SLS Project,应用相关的Sls logstore和日志采集配置。为了简化该步骤的流程,计算巢提供了通用日志资源准备服务,可帮助您初始化日志SLS ProjectLogstore。 举例说明,假设您的服务需要支持在北京和上海部署,且该应用需要收集slow*.logerror*.log。则您需要做的如下:

  1. 设置部署的地域为上海和部署场景为ECS

    部署地域中选择上海,在部署场景中选择ECS。在服务实例名称中输入名称,长度不超过64个字符,必须以英文字母开头,可包含数字、英文字母、短划线(-)和下划线(_)。

  2. 配置日志项目名称和Logstore名称数组

    例如,SLS项目名称填写app-log-demo,Project名称必须全局唯一,只能包含小写字母、数字和短划线(-),以小写字母或数字开头和结尾,长度为3-63字符。SLS logstore名称填写slow-log,Logstore名称只能包含小写字母、数字、短划线(-)和下划线(_),以小写字母或数字开头和结尾,长度为3-63字符。可单击新增添加多个Logstore。

  3. 配置日志收集文件名和文件模式。

    说明

    如果Logstore配置为数组,则此处文件名和文件模式都需要配置为数组。此处配置关系按数组顺序一一对应。

    例如,将ECS场景日志文件名设置为slow-log,将ECS场景日志文件模式设置为/var/log/mysql/。可单击+ 新增添加多组配置。

  4. 配置该SLS对应的计算巢服务。

计算巢服务下拉框中选择需要配置日志的目标服务,例如证件照制作接口

步骤三. 修改全托管服务

  1. 在计算巢控制台找到上述全托管服务,单击编辑按钮。

  2. 服务运维(选填)区域的日志处,配置应用日志信息,开启应用日志。

  3. 配置日志库名称、文件路径和文件名信息。

    重要

    日志资源准备填写时的logstore名称必须和服务配置中的logstore名称一致。

    配置项

    配置说明

    地域

    应用日志支持的地域

    日志项目

    选择地域下的日志项目

    日志库名称

    应用日志保存到的SLS logstore的日志库名字。

    路径

    应用日志储存的文件路径。

    指定文件夹下所有符合文件名称的文件都会被监控(包含所有层次的目录)。

    文件名

    设置应用日志库的文件名称。

    文件名称可以是完整名,也支持通配符模式匹配,支持使用环境变量。

    1. 添加日志支持部署地域。开启应用日志开关后,页面提示可通过准备服务链接快速创建目标地域的日志项目及所需日志资源。如需多地域收集日志,可单击+ 添加日志收集地域

      说明

      如开启了应用日志,则支持的部署地域会同步为应用日志支持地域。

    2. 配置日志库。

    3. 修改模板。在原本的ROS模板中复制添加下述计算巢日志收集公共模块。

      ComputeNestAppLogShareModule:
          Version: default
          Type: MODULE::ACS::ComputeNest::EcsSlsConfig
          Properties:
            EcsInstanceIds:
              Fn::GetAtt:
                - EcsInstanceGroup
                - InstanceIds
            ServiceId: '{{ serviceId }}'
            UserId: '{{ aliUid }}'
            ServiceInstanceId: '{{ serviceInstanceId }}'
    1. 单击保存更新,并在弹出的确认弹窗中单击确定

步骤四. 服务商授予用户查看日志权限(可选)

在服务运维(选填处)勾选需要给用户授权,在下拉框中选择只读权限或全部权限。

创建服务实例并查看应用日志

  1. 创建服务实例。更多信息,请参见创建全托管服务实例

  2. 查看应用日志。

  3. 服务创建完成后。

    1. 在已创建的服务实例详情页,单击日志管理>应用日志。

    2. 在应用日志页签中,查看服务实例的应用日志信息。

    3. 您可以指定一个日志库,可以查看具体的日志内容;也可以单击查看SLS控制台,转跳到日志服务控制台,查看详细信息。

      例如,选择日志库 slow-log 后,页面以表格形式展示慢查询日志,每条记录包含查询耗时(Query_time)、锁等待时间(Lock_time)、返回行数(Rows_sent)、扫描行数(Rows_examined)、执行用户及来源 IP、执行的 SQL 语句等信息。