在服务器上部署Docker后可以采集日志,Docker的日志分为两种类型:标准输出和文件日志。文件日志是指容器内生成的日志被写入服务器的指定文件目录中,而标准输出则指容器自身的实时输出流。本文介绍使用Logtail采集容器的标准输出到LogStore的操作步骤。

在宿主机中安装Docker后,针对您在该环境中部署的业务容器所产生的标准输出(stdout)及标准错误(stderr)日志,您可以使用Logtail进行采集。采集的日志数据将被传输至LogStore中,便于查询和分析。

已创建Project和LogStore。更多信息,请参见 管理Project 管理LogStore

宿主机已 安装并使用Docker和Docker Compose 且可以持续产生标准输出日志。

Logtail只采集增量日志。如果下发Logtail配置后,日志文件无更新,则Logtail不会采集该文件中的日志。更多信息,请参见 读取日志

拉取Logtail镜像

登录宿主机,根据 日志服务 Project所在地域,获取对应的 ${region_id} 。替换 ${region_id} 后,使用以下命令拉取Logtail镜像。

各地域对应的 ${region_id} 请参见 开服地域 ,例如华东 1(杭州)对应的 ${region_id} cn-hangzhou

#拉取Logtail镜像:
docker pull registry.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun
#如果您的服务器处于阿里云VPC网络中,请使用如下命令行拉取Logtail镜像:
docker pull registry-vpc.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun

启动Logtail容器

根据 日志服务 Project所在地域,获取对应的 ${region_id} ,各地域对应的 ${region_id} 请参见 开服地域 。网络类型选择请参见 Logtail网络类型,启动参数与配置文件

示例:若Project位于华东1(杭州),则以阿里云内网访问时 ${region_id} cn-hangzhou ,公网访问时使用 cn-hangzhou-internet

根据参数说明,替换命令模板中的3个参数: ${region_id} ${aliyun_account_id} ${user_defined_id} ,然后执行以下命令启动Logtail容器。

# 启动Logtail容器,替换${region_id},${aliyun_account_id},${user_defined_id}
docker run -d \
    -v /:/logtail_host:ro \
    -v /var/run/docker.sock:/var/run/docker.sock \
    --env ALIYUN_LOGTAIL_CONFIG=/etc/ilogtail/conf/${region_id}/ilogtail_config.json \
    --env ALIYUN_LOGTAIL_USER_ID=${aliyun_account_id} \
    --env ALIYUN_LOGTAIL_USER_DEFINED_ID=${user_defined_id} \
    registry.${region_id}.aliyuncs.com/log-service/logtail:v2.1.11.0-aliyun

如果您要自定义配置Logtail容器的启动参数,只需保证以下前提条件。

启动时,必须配置3个环境变量 ALIYUN_LOGTAIL_CONFIG ALIYUN_LOGTAIL_USER_ID ALIYUN_LOGTAIL_USER_DEFINED_ID

将宿主机上的 /var/run 目录挂载到Logtail容器的 /var/run 目录。

将宿主机根目录挂载到Logtail容器的 /logtail_host 目录。

如果Logtail日志( /usr/local/ilogtail/ilogtail.LOG )中出现 The parameter is invalid : uuid=none 的错误日志,请在宿主机上创建一个 product_uuid 文件,在其中输入任意合法UUID(例如 169E98C9-ABC0-4A92-B1D2-AA6239C0D261 ),并把该文件挂载到Logtail容器的 /sys/class/dmi/id/product_uuid 目录。

  • 登录 日志服务控制台 ,在 Project列表 ,单击打开目标Project。

  • 左侧导航栏中,选择 资源 > 机器组 。在打开的 机器组 页面中,选择 机器组 右侧的 机器组 > 创建机器组 image

  • 在创建机器组页面填写 名称 ,机器组标识选择 用户自定义标识 ,并在 用户自定义标识 中填入步骤一中参数 ${user_defined_id} 的值,本例为 user-defined-docker-1 image

    检查机器组状态

    机器组 列表中,单击目标机器组。在 机器组配置 页面,可查看机器组配置信息以及服务器状态。 image

    如果 心跳 状态显示OK,说明配置成功,如果显示 FAIL ,请等待1分钟后单击刷新重试,若心跳状态仍为FAIL,请检查:

    Logtail容器与Project是否同地域。

    宿主机安全组是否放行Logtail出方向流量(默认端口80)。

    处理操作请参见 如何排查容器日志采集异常