赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 数据采集
  6. Logtail采集
  7. Logtail安装采集快速入门
  8. 采集Docker容器文本日志

采集Docker容器文本日志

  • Logtail安装采集快速入门
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

日志服务Project支持采集Docker容器文本日志,本文为您介绍如何部署Logtail容器并采集业务容器文本日志到Logstore。

方案概览

image

一个Logtail容器支持采集宿主机上多个业务容器多种格式的文本日志,您只需在不同的Logstore创建Logtail采集配置并下发到Logtail容器,Logtail容器会将采集到的文本日志发送到不同的Logstore。本文以采集容器文本日志为例,为您演示具体的配置步骤。

  • 步骤一:安装Logtail容器并创建机器组

  • 步骤二:创建Logtail采集配置

前提条件

  • 已创建Project、标准型Logstore。具体操作,请参见创建项目Project、创建Logstore。

  • 已创建业务容器,且可以持续产生日志。

    说明

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

步骤一:安装Logtail容器并创建机器组

  1. 拉取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
    #如果您的服务器处于阿里云VPC网络中,请使用如下命令行拉取Logtail镜像:
    docker pull registry-vpc.${region_id}.aliyuncs.com/log-service/logtail
  2. 启动Logtail容器

    1. 参数说明

      参数

      参数说明

      ${region_id}

      根据日志服务Project所在地域,获取对应的${region_id},各地域对应的${region_id}请参见开服地域。网络类型选择请参见选择网络。

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

      ${aliyun_account_id}

      日志服务所在的阿里云账号(主账号)ID。获取方法,请参见获取日志服务所在的阿里云账号(主账号)ID。

      ${user_defined_id}

      设置机器组的用户自定义标识,例如user-defined-docker-1。该标识在Project所在地域内必须唯一。

    2. 根据参数说明,替换命令模板中的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
      重要

      如果您要自定义配置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目录。

  3. 创建用户自定义标识机器组

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

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

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

      参数

      说明

      机器组Topic

      (可选)机器组Topic用于区分不同服务器产生的日志数据。更多信息,请参见日志主题。

  4. 检查机器组状态

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

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

    1. Logtail容器与Project是否同地域。

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

    处理操作请参见Logtail机器组问题排查思路(主机场景)。

步骤二:创建Logtail采集配置

  1. 在日志存储 > 日志库页签中,单击目标Logstore。

  2. 展开Logstore菜单栏,单击Logtail配置,然后单击添加Logtail配置。image

  3. 在快速数据接入页面,单击Docker文件-容器。image

  4. 在机器组配置步骤中,选择步骤一中创建的机器组。然后单击下一步。image

  5. 在Logtail配置步骤中,输入配置名称和文件路径,其他配置可保持默认,更多信息,请参见采集主机文本日志。您也可以添加处理插件,处理文本日志。更多信息,请参见处理插件概述。配置完成后,单击下一步。

    说明

    文件路径:业务容器中日志文件存放的绝对路径,例如图片中 /data/logs/**/*.log,由于最大目录监控深度为0(即/**/层级为0),所以实际采集/data/logs目录下所有后缀为.log的文件日志。

    image

  6. 在查询分析配置步骤中,单击自动生成索引,并单击刷新,可预览采集到的日志。image

容器日志文本默认字段

Docker文件中每条日志默认包含的字段如下所示:

字段名

说明

__source__

Logtail容器的IP地址。

_container_ip_

业务容器的IP地址。

__tag__:__hostname__

宿主机的名称。

__tag__:__path__

日志采集路径。

__tag__:__receive_time__

日志到达服务端的时间。

__tag__:__user_defined_id__

机器组的自定义标识。

其他操作

故障排查

错误现象

原因

解决方案

Failed to connect to Logtail

Project地域与Logtail容器不一致

检查ALIYUN_LOGTAIL_CONFIG中的地域配置

No logs in Logstore

文件路径配置错误

确认业务容器内日志路径与采集配置匹配

查看Logtail运行状态

您可以执行docker exec ${logtail_container_id} /etc/init.d/ilogtaild status命令查看Logtail运行状态。

查看Logtail的版本号、IP地址和启动时间等信息

您可以执行docker exec ${logtail_container_id} cat /usr/local/ilogtail/app_info.json命令查看Logtail相关信息。

查看Logtail的运行日志

Logtail运行日志保存在容器内的/usr/local/ilogtail/目录下,文件名为ilogtail.LOG,轮转文件会压缩存储为ilogtail.LOG.x.gz。示例如下:

[sudo@iZb****exh2Z ilogtail]# docker exec a287de895e40 tail -n 5 /usr/local/ilogtail/ilogtail.LOG
[2018-02-06 08:13:35.721864]    [INFO]    [8]    [build/release64/sls/ilogtail/LogtailPlugin.cpp:104]    logtail plugin Resume:start
[2018-02-06 08:13:35.722135]    [INFO]    [8]    [build/release64/sls/ilogtail/LogtailPlugin.cpp:106]    logtail plugin Resume:success
[2018-02-06 08:13:35.722149]    [INFO]    [8]    [build/release64/sls/ilogtail/EventDispatcher.cpp:369]    start add existed check point events, size:0
[2018-02-06 08:13:35.722155]    [INFO]    [8]    [build/release64/sls/ilogtail/EventDispatcher.cpp:511]    add existed check point events, size:0    cache size:0    event size:0    success count:0
[2018-02-06 08:13:39.725417]    [INFO]    [8]    [build/release64/sls/ilogtail/ConfigManager.cpp:3776]    check container path update flag:0    size:1

Logtail容器中的标准输出并不具备参考意义,请忽略以下标准输出内容。


start umount useless mount points, /shm$|/merged$|/mqueue$
umount: /logtail_host/var/lib/docker/overlay2/3fd0043af174cb0273c3c7869500fbe2bdb95d13b1e110172ef57fe840c82155/merged: must be superuser to unmount
umount: /logtail_host/var/lib/docker/overlay2/d5b10aa19399992755de1f85d25009528daa749c1bf8c16edff44beab6e69718/merged: must be superuser to unmount
umount: /logtail_host/var/lib/docker/overlay2/5c3125daddacedec29df72ad0c52fac800cd56c6e880dc4e8a640b1e16c22dbe/merged: must be superuser to unmount
......
xargs: umount: exited with status 255; aborting
umount done
start logtail
ilogtail is running
logtail status:
ilogtail is running

重启Logtail

请参考以下示例重启Logtail。

[sudo@iZb****xh2Z ilogtail]# docker exec a287de895e40 /etc/init.d/ilogtaild stop
kill process Name: ilogtail pid: 7
kill process Name: ilogtail pid: 8
stop success
[sudo@iZb****xh2Z ilogtail]# docker exec a287de895e40 /etc/init.d/ilogtaild start
ilogtail is running

相关文档

  • Docker基本使用,请参见安装Docker。

  • 采集Docker容器的标准输出,请参见采集Docker容器的标准输出。

  • 采集宿主机文本日志,请参见采集主机文本日志。默认情况下,宿主机根目录会被挂载到Logtail容器的/logtail_host目录。

  • 日志上传到Logstore后,创建索引请参见创建索引,查询分析请参见查询与分析快速指引。

  • 使用Logtail采集Docker容器日志遇到异常情况时,请参见如何排查容器日志采集异常进行排查。

相关文章

主机文本日志采集(自动安装) 2025-04-22 11:05

本文将介绍在主机场景下,当ECS与日志服务的Project属于同一个账号且在同一地域时,日志服务借助运维编排服务OOS,在ECS实例中自动安装Logtail采集文本日志的操作流程。 使用限制 当ECS和日志服务Project同账号不同地域、Project和ECS服务器属于不同账号、其他云或者自建服务

主机文本日志采集(手动安装) 2025-04-22 11:05

本文将介绍在主机场景下手动安装日志服务Logtail采集文本日志的流程,阅读本文将帮助您在主机场景下完成Logtail文本日志的采集。 如果您已经开始采集或在采集中遇到问题,您可以根据遇到的问题场景,参考Logtail常见问题。 前提条件

采集ACK集群文本日志(DaemonSet) 2025-04-22 11:05

日志服务提供DaemonSet与Sidecar两种方式部署Logtail以供采集K8s日志,两种方式的差异请参考K8s集群场景Logtail安装采集指引。本文介绍如何通过DaemonSet方式部署Logtail采集阿里云ACK集群文本日志的流程。 前提条件 已开通日志服务。具体操作,请参见开通日志服

采集自建集群文本日志(DaemonSet) 2025-04-22 11:05

日志服务提供DaemonSet与Sidecar两种方式部署Logtail以供采集K8s日志,两种方式的差异请参考K8s集群场景Logtail安装采集指引。本文介绍如何通过DaemonSet方式部署Logtail采集自建K8s集群文本日志的流程。 前提条件 已开通日志服务。具体操作,请参见

采集ACK集群标准输出-新版(DaemonSet) 2025-04-22 11:05

本文介绍如何通过DaemonSet方式部署Logtail采集阿里云ACK集群标准输出(新版)的流程。 前提条件 已开通日志服务。具体操作,请参见开通日志服务。 需要2.1及以上Logtai

采集自建集群标准输出-新版(DaemonSet) 2025-04-22 11:05

本文介绍如何通过DaemonSet方式部署Logtail采集自建K8s集群标准输出的流程。 前提条件 已开通日志服务。具体操作,请参见开通日志服务。 需要2.1及以上Logtail组件版本

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号