相关文章推荐
打盹的斑马  ·  Android studio ...·  1 年前    · 
坚韧的竹笋  ·  Docker 无法安装 ...·  1 年前    · 

使用Logtail采集Docker、自建Kubernetes或阿里云Kubernetes容器服务的日志时,如果采集状态异常,您可以根据本文排查问题、检查运行状态等运维操作。

排查机器组心跳异常

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

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

    1. 登录日志服务控制台

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

    3. 在左侧导航栏,单击 机器组 图标。

    4. 单击需要查看状态的机器组名称。

      机器组状态 中记录心跳状态为 OK 的节点数。
  2. 检查集群中Worker节点数。

    1. 登录Kubernetes集群的Master节点。更多信息,请参见 容器服务Kubernetes版用户指南 中的 通过kubectl连接Kubernetes集群 章节。

    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日志采集流程,请检查 ${your_region_name} ${your_aliyun_user_id} ${your_machine_group_user_defined_id} 参数填写是否正确。更多信息,请参见 参数说明
      • 如果您使用阿里云容器服务Kubernetes安装方式采集日志,请提交工单。
      • 如果您使用自建Kubernetes安装方式采集日志,请检查 {your-project-suffix} {aliuid} {access-key-id} {access-key-secret} 参数填写是否正确。更多信息,请参见 参数说明

        若参数填写错误,请执行命令 helm del --purge alibaba-log-controller 删除安装包,并重新安装。

    • 机器组心跳状态为 OK 的节点数少于集群中Worker节点数。
      1. 判断是否使用yaml文件手动部署DaemonSet。

        执行命令 kubectl get po -n kube-system -l k8s-app=logtail ,若有返回结果,表示您之前使用yaml文件手动部署了DaemonSet。

      2. 下载最新版本的 DaemonSet模板
      3. 将其中的 ${your_region_name} ${your_aliyun_user_id} ${your_machine_group_name} 替换为您的真实内容。
      4. 执行命令 kubectl apply -f ./logtail-daemonset.yaml 更新DaemonSet yaml文件。
      其他情况,请提交工单至日志服务。

排查容器日志采集异常

如果您在控制台的 消费预览 查询分析 页面未查看到日志数据,说明日志服务并未采集到您的容器日志数据。请确认容器状态后,执行以下检查。

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

  2. 检查采集配置标识是否正确。

    检查配置中 IncludeLabel ExcludeLabel IncludeEnv ExcludeEnv 是否和您需要采集的容器配置匹配。

    说明 其中的 Label 为容器Label( docker inspect 中的Label信息),并不是Kubernetes中定义的Label。 您可以通过将 IncludeLabel ExcludeLabel IncludeEnv ExcludeEnv 配置临时去除,查看是否可以正常采集到日志,若可以采集则可以确定为标记配置问题。
  3. 检查其他注意事项。

    若您配置采集容器内文件,请注意:

    • 若下发采集配置后文件没有修改事件,Logtail则不采集。
    • 采集容器日志文件,只支持采集容器默认存储或挂载到本地的文件,暂不支持其他存储方式。

其他运维操作

登录Logtail容器

请根据现场情况,选择以下对应的步骤:
  • Docker
    1. 登录宿主机,执行以下命令,查看并记录Logtail容器ID。
      docker ps | grep logtail
    2. 执行以下命令,登录Logtail容器。
      docker exec -it [$ID] bash
      说明 [$ID]为Logtail容器ID。
  • Kubernetes
    1. 执行以下命令,查看并记录Logtail的Pod。
      kubectl get po -n kube-system | grep logtail
    2. 执行以下命令,登录Logtail的Pod。
      kubectl exec -it -n kube-system [$Pod_ID] bash
      说明 [$Pod_ID]为Pod的ID。

查看Logtail的运行日志

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

  1. 登录Logtail容器。更多信息,请参见 登录Logtail容器

  2. 执行以下命令,进入指定目录。

    cd /usr/local/ilogtail
  3. 依次执行以下命令,查看ilogtail.LOG和logtail_plugin.LOG日志文件。

    cat ilogtail.LOG
    cat logtail_plugin.LOG

Logtail的容器标准输出(stdout)

容器stdout并不具备参考意义,请忽略以下标准输出(stdout):

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集群中日志相关组件状态

  1. 登录Kubernetes集群的Master节点。更多信息,请参见 容器服务Kubernetes版用户指南 中的 通过kubectl连接Kubernetes集群 章节。
  2. 执行以下命令,查看Kubernetes集群中日志相关组件状态。
    helm status alibaba-log-controller

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

  1. 登录Logtail容器。更多信息,请参见 登录Logtail容器
  2. 执行以下命令,查看Logtail的版本号信息、IP地址、启动时间。
    kubectl exec logtail-ds-gb92k -n kube-system cat /usr/local/ilogtail/app_info.json
    预期输出:
    {
       "UUID" : "",
       "hostname" : "logtail-gb92k",
       "instance_id" : "0EBB2B0E-0A3B-11E8-B0CE-0A58AC140402_10.10.10.10_1517810940",
       "ip" : "203.0.113.10",
       "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"