日志服务支持在ECI中通过Sidecar模式采集日志,为每个需要日志采集的业务容器创建一个Sidecar容器用于日志采集,实现多租户隔离和较高的采集性能。本文介绍如何安装Sidecar及使用控制台方式创建Logtail配置,完成容器日志的采集。

技术原理

通过Sidecar模式采集日志,依赖于Logtail和业务容器共享的日志目录,业务容器将日志写入到共享目录中,Logtail通过监控共享目录中日志文件的变化并采集日志。详细信息请参见官方文档Sidecar日志采集介绍Sidecar模式示例

概要

日志服务支持在 ECI 中通过 Sidecar 模式采集日志,为每个需要日志采集的业务容器创建一个 Sidecar 容器用于日志采集,实现多租户隔离和较高的采集性能,详情请参见什么是日志服务 。

限制说明

  • Logtail 必须和业务容器共享日志目录。
  • Sidecar 模式不支持采集容器标准输出。

CreateContainerGroup

创建一个以下样式的ECI(占位符变量需替换为实际值),用于练习采集日志到日志服务。

以下步骤均已在 Cloud Shell 中集成,可以通过打开上面的链接来快速体验通过 Cloud Shell 操作 ECI。

在 Cloud Shell 中打开

aliyun eci CreateContainerGroup --ContainerGroupName nginx-log-sidecar-demo \
--RegionId ${RegionId}  --SecurityGroupId ${SecurityGroupId} --VSwitchId ${VSwitchId} \
--Container.1.Name nginx-log-demo \
--Container.1.Image registry.${RegionId}.aliyuncs.com/log-service/docker-log-test:latest \
--Container.1.Command.1 /bin/mock_log \
--Container.1.Arg.1="--log-type=nginx" \
--Container.1.Arg.2="--stdout=false" \
--Container.1.Arg.3="--stderr=true" \
--Container.1.Arg.4="--path=/var/log/nginx/access.log" \
--Container.1.Arg.5="--total-count=100000000" \
--Container.1.Arg.6="--logs-per-sec=100" \
--Container.1.VolumeMount.1.Name nginx-log \
--Container.1.VolumeMount.1.MountPath /var/log/nginx \
--Container.2.Name logtail \
--Container.2.Image registry.${RegionId}.aliyuncs.com/log-service/logtail:latest \
--Container.2.VolumeMount.1.Name nginx-log --Container.2.VolumeMount.1.MountPath /var/log/nginx \
--Container.2.EnvironmentVar.1.Key ALIYUN_LOGTAIL_USER_ID --Container.2.EnvironmentVar.1.Value ${Aliuid} \
--Container.2.EnvironmentVar.2.Key ALIYUN_LOGTAIL_USER_DEFINED_ID --Container.2.EnvironmentVar.2.Value nginx-log-sidecar \
--Container.2.EnvironmentVar.3.Key ALIYUN_LOGTAIL_CONFIG --Container.2.EnvironmentVar.3.Value /etc/ilogtail/conf/${RegionId}/ilogtail_config.json  \
--Volume.1.Name nginx-log --Volume.1.Type EmptyDirVolume 

日志采集配置

  1. 访问 ECI控制台,查看业务容器和logtail容器的日志

  2. 登录日志服务控制台

  3. 接入数据区域,单击正则-文本日志

    本文以采集正则-文本文件为例,其他文本文件采集请参见文本日志采集流程

  4. 选择日志空间,单击下一步

    请选择Project和Logstore,您也可以直接单击立即创建准备流程

    如果您是通过日志库下的数据接入后的加号进入采集配置流程,系统会直接跳过该步骤。

  5. 创建机器组。

    如果您已有可用的机器组 ,可直接单击使用现有机器组

    1. 确认已创建机器组,单击确认安装完毕

    2. 创建机器组页签中,配置相关参数,单击下一步

      机器组标识选择用户自定义标识,将CreateContainerGroup时配置的环境变量 ALIYUN_LOGTAIL_USER_DEFINED_ID填入用户自定义标识框中。

  6. 配置机器组。

    选择一个机器组,将该机器组从源机器组移动到应用机器组。

  7. 设置Logtail配置。

    Nginx访问日志、分隔符日志、JSON日志、正则日志等格式,具体可参见文本日志采集流程。