赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. 日志服务
  4. 操作指南
  5. 数据采集
  6. 数据采集常见问题
  7. 如何排查容器日志采集异常

如何排查容器日志采集异常

  • 数据采集常见问题
  • 发布于 2025-04-22
  • 0 次阅读
文档编辑
文档编辑

当您使用Logtail采集容器(标准容器、Kubernetes)日志时,如果采集状态异常,可以根据本文进行问题排查、运行状态检查等运维操作。

排查机器组心跳是否异常

您可以通过检查机器组心跳的状态来判断容器中的Logtail是否已正确安装。

  1. 查看机器组心跳状态。

    1. 登录日志服务控制台。

    2. 在Project列表区域,单击目标Project。

      image

    3. 在左侧导航栏中,选择资源 > 机器组。

    4. 在机器组列表中,单击目标机器组。

    5. 在机器组配置页面,查看机器组状态并记录心跳状态为OK的节点数。

  2. 检查容器集群中Worker节点数。

    1. 连接集群。

    2. 执行如下命令,查看集群中Worker节点数。

      kubectl get node | grep -v master

      系统会返回如下类似结果。

      NAME                                 STATUS    ROLES     AGE       VERSION
      cn-hangzhou.i-bp17enxc2us3624wexh2   Ready     <none>    238d      v1.10.4
      cn-hangzhou.i-bp1ad2b02jtqd1shi2ut   Ready     <none>    220d      v1.10.4
  3. 对比心跳状态为OK的节点数是否和容器集群中Worker节点数一致。根据对比结果选择排查方式。

    • 机器组中所有节点的心跳状态均为Failed。

      • 如果您要采集标准Docker容器日志,请参见采集标准Docker容器日志,检查${your_region_name}、${your_aliyun_user_id}、${your_machine_group_user_defined_id}是否填写正确。

      • 如果您使用的是阿里云Kubernetes集群,请提交工单。

      • 如果您使用的是自建Kubernetes集群,请参见通过Sidecar方式采集Kubernetes容器文本日志,检查{your-project-suffix}、{regionId}、{aliuid}、{access-key-id}和{access-key-secret}是否已正确填写。

        如果填写错误,请执行helm del --purge alibaba-log-controller命令,删除安装包,然后重新安装。

    • 机器组心跳状态为OK的节点数量少于集群中的Worker节点数量。

      • 判断是否已使用YAML文件手动部署DaemonSet。

        1. 执行如下命令。如果存在返回结果,则表示您之前已使用YAML文件手动部署DaemonSet。

          kubectl get po -n kube-system -l k8s-app=logtail
        2. 下载最新版本DaemonSet模板。

        3. 根据实际值,配置${your_region_name}、${your_aliyun_user_id}、${your_machine_group_name}等参数。

        4. 执行如下命令,更新文件。

          kubectl apply -f ./logtail-daemonset.yaml
      • 其他情况,请提交工单。

排查容器日志采集是否异常

如果您在日志服务控制台的预览或Logstore查询页面未查到日志,则说明日志服务未采集到您的容器日志。请确认容器状态,然后执行如下检查。

重要
  • 采集容器文件中的日志时,需注意如下事项。

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

    • 只支持采集容器默认存储或挂载到本地的文件中的日志,暂不支持其他存储方式。

  • 采集到日志后,您需要先创建索引,才能在Logstore中查询和分析日志。具体操作,请参见创建索引。

  1. 查看机器组心跳是否存在异常。具体操作,请参见排查机器组心跳是否异常。

  2. 检查Logtail配置是否正确。

    检查Logtail配置中的IncludeLabel、ExcludeLabel、IncludeEnv、ExcludeEnv等配置是否符合您的采集需求。

    说明
    • 其中此处的Label为容器Label,即Docker inspect中的Label,不是Kubernetes中的Label。

    • 您可以将IncludeLabel、ExcludeLabel、IncludeEnv和ExcludeEnv配置临时去除,查看是否可以正常采集到日志。如果可以,则说明是上述参数的配置存在问题。

其他运维操作

登录Logtail容器

  • 普通Docker

    1. 在宿主机上执行如下命令,查询Logtail容器。

      docker ps | grep logtail

      系统将返回如下类似结果。

      223****6e        registry.cn-hangzhou.aliyuncs.com/log-service/logtail                             "/usr/local/ilogta..."   8 days ago          Up 8 days                               logtail-iba
    2. 执行如下命令,在Logtail容器内启动bash shell。

      docker exec -it 223****6e  bash

      其中,223****6e为容器ID,请根据实际值替换。

  • Kubernetes

    1. 执行如下命令,查询Logtail的Pod。

      kubectl get po -n kube-system | grep logtail

      系统将返回如下类似结果。

      logtail-ds-****d                                             1/1       Running    0          8d
      logtail-ds-****8                                             1/1       Running    0          8d
    2. 执行如下命令,登录Pod。

      kubectl exec -it -n kube-system logtail-ds-****d -- bash

      其中,logtail-ds-****d为Pod ID,请根据实际值替换。

查看Logtail的运行日志

Logtail日志存储在Logtail容器中的/usr/local/ilogtail/目录中,文件名为ilogtail.LOG和logtail_plugin.LOG。

  1. 登录Logtail容器。具体操作,登录Logtail容器。

  2. 打开/usr/local/ilogtail/目录。

    cd /usr/local/ilogtail
  3. 查看ilogtail.LOG和logtail_plugin.LOG文件。

    cat ilogtail.LOG
    cat logtail_plugin.LOG

Logtail容器的标准输出(stdout)说明

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

查看Kubernetes集群中日志服务相关组件的状态

执行如下命令,查看名称为alibaba-log-controller的Deployment的状态和信息。

kubectl get deploy alibaba-log-controller -n kube-system

返回结果:

NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
alibaba-log-controller   1/1     1            1           11d

执行以下命令,查看关于DaemonSet资源的状态信息。

kubectl get ds logtail-ds -n kube-system

返回结果:

NAME         DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR  AGE
logtail-ds   2         2         2       2            2           **ux           11d

查看Logtail的版本号、IP地址、启动时间

  1. 在宿主机执行如下命令,查看Logtail的版本号、IP地址、启动时间。

    相关信息存储在Logtail容器的/usr/local/ilogtail/app_info.json文件中。

    kubectl exec logtail-ds-****k -n kube-system cat /usr/local/ilogtail/app_info.json

    系统将返回如下类似结果。

    {
       "UUID" : "",
       "hostname" : "logtail-****k",
       "instance_id" : "0EB****_172.20.4.2_1517810940",
       "ip" : "172.20.4.2",
       "logtail_version" : "0.16.2",
       "os" : "Linux; 3.10.0-693.2.2.el7.x86_64; #1 SMP Tue Sep 12 22:26:13 UTC 2017; x86_64",
       "update_time" : "2018-02-05 06:09:01"
    }

误删由CRD创建的Logstore后,如何处理

如果您删除了由CRD自动创建出的Logstore,则已采集的数据无法恢复,并且针对此Logstore的CRD配置会失效,您可以选择以下方案避免日志采集异常。

  • 在CRD配置中使用其他Logstore,避免使用手动误删的Logstore。

  • 重启alibaba-log-controller Pod。

    您可通过如下命令查找该Pod。

    kubectl get po -n kube-system | grep alibaba-log-controller

相关文章

日志管理 2025-04-22 10:59

日志服务如何存储、管理用户的日志? 日志库(Logstore)是日志服务中的日志存储和查询的基本单元,通常用于存储一类日志数据。目前,支持在控制台或者通过API完成对日志库的增删改查操作。日志库创建完成后,用户通过API或SDK向指定日志库写入日志数据。如果用户希望收集阿里云ECS服务器的数据,日志

Logtail基本问题 2025-04-22 10:59

本文介绍Logtail的基本问题。 什么是Logtail? Logtail是日志服务提供的一种便于日志接入的日志采集客户端。在您

如何排查容器日志采集异常 2025-04-22 10:59

当您使用Logtail采集容器(标准容器、Kubernetes)日志时,如果采集状态异常,可以根据本文进行问题排查、运行状态检查等运维操作。

如何获取Docker容器的Label和环境变量 2025-04-22 10:59

当您使用Logtail采集容器日志时,可以通过Label和环境变量对待采集的容器进行过滤。Label指运行docker inspect命令时显示的容器元数据中的标签信息,环境变量是在容器启动时设置的运行时环境参数。本文介绍如何获取容器的Label和环境变量。

Logtail采集日志失败的排查思路 2025-04-22 10:59

使用Logtail采集日志后,如果预览页面为空或查询页面无数据,您可以根据本文步骤进行排查。 排查概览 日志文件未更新:配置Logtail采集后,如果待采集的日志文件无更新,则Logtai

日志服务采集数据常见的错误类型 2025-04-22 10:59

本文介绍日志服务采集数据常见的错误类型及对应的解决方法。 如果您遇到其他问题,请提交工单处理。

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