日志服务中采集k8s时心跳失败基本排查

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 本文主要针对k8s向日志服务上传日志时,机器组心跳FAIL、或者没有出现IP的问题进行排查。

日志服务采集Kubernetes时心跳基本排查

本文主要针对k8s向日志服务上传日志时,机器组心跳FAIL、或者没有出现IP的问题进行排查。

前言

按照日志服务的文档安装logtail组件之后默认是会自动创建Project、机器组的。不过有时需求是集群日志写入到多个Project,或者自动生成的Project名称不符合本身业务的要求。这时就需要用户重新创建Project、机器组并且要与k8s容器进行关联。

原理介绍

logtail与日志服务关联的原因是,logtail每隔一分钟向日志服务发送一次心跳请求,请求中包含了机器标识信息、以及用户的uid等信息。机器标识用于跟用户创建的机器组进行关联,用户没有创建标识时默认使用logtail获取到的IP;用户的uid则决定logtail有权限写入哪些Project(所以自建机器以及跨账号采集用户需要单独配置uid)。
logtail采集组件能够与Project关联的原因是机器组进行统一的管理。机器组与logtail绑定的方式有两种,即创建机器组的方式,IP方式自定义标识方式。
logtail在安装时候是需要指定region的,心跳请求也只会发送到该region,所以安装的logtail与采集数据的Project region必须保持一致。

心跳排查

获取logtail信息

使用以下命令获取 logtail 容器id

docker ps | grep logtail

然后获取logtail容器的详细信息

docker inspect id


主要获取返回信息中的config.Env下内容,字段详情参考下表:

Key 描述 示例
ALIYUN_LOGTAIL_USER_DEFINED_ID 机器组标识 k8s-group-c8ba441d5f
ALIYUN_LOGTAIL_USER_ID 用户uid 104944648
ALICLOUD_LOG_ENDPOINT logtail使用的endpoint,可以看出安装region、是否为内网 cn-beijing-intranet.log.aliyuncs.com
ALIYUN_LOGTAIL_CONFIG 使用的ilogtail_config.json文件路径 /etc/ilogtail/conf/cn-beijing/ilogtail_config.json
ALICLOUD_LOG_DEFAULT_MACHINE_GROUP 默认机器组名称 k8s-group-c8ba441d5f
ALICLOUD_LOG_DEFAULT_PROJECT 默认Project名称 k8s-log-c8ba441d5f

信息对比

  1. 检查logtail容器与使用的endpoint网络是否能够连通;使用下面第一行命令进入logtail容器之后,curl 上面信息中的 ALICLOUD_LOG_ENDPOINT,如果有如下报错返回就表示网络可以连通。
docker exec -it logtail容器id bash
curl cn-beijing-intranet.log.aliyuncs.com
{"Error":{"Code":"OLSInvalidMethod","Message":"The script name is invalid : /","RequestId":"5FD72CFEDFAEEE680F96353D"}}
  1. 对比Project与logtail安装的region是否一样,登录日志服务页面,可以看到Project对应的region与上面获取到的ALICLOUD_LOG_ENDPOINT进行对比,查看是否一样。例: cn-beijing与华北2(北京)就是没问题的。
  2. 检查logtail是否有权限写入Project;参考文档获取当前登录账号的uid,然后与环境变量中ALIYUN_LOGTAIL_USER_ID进行对照,目前logtail容器环境变量中只能设置一个uid,不能同时向多个账号发送数据。
  3. 检查机器组标识与ALICLOUD_LOG_DEFAULT_MACHINE_GROUP对应的值是否一致,容器采集建议使用自定义标识方式。目前logtail容器环境变量中只能设置一个标识。

如果上面4项排查结束之后还是无法解决,有可能是因为logtail组件刚刚安装心跳请求还未到达服务端,可以等几分钟之后再看下。如果一个小时左右仍然没有心跳就需要向日志服务提交工单排查了。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
|
存储 数据采集 JavaScript
深入理解数仓开发(一)数据技术篇之日志采集
深入理解数仓开发(一)数据技术篇之日志采集
|
1月前
|
SQL Java Serverless
实时计算 Flink版操作报错合集之在写入SLS(Serverless Log Service)时出现报错,该如何排查
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
1天前
|
运维 Kubernetes Devops
阿里云云效操作报错合集之k8s直接返回401,该如何排查
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
阿里云云效操作报错合集之k8s直接返回401,该如何排查
|
6天前
|
Kubernetes Java 索引
Elasticsearch on K8S 开启慢日志
本文档指导如何在Elasticsearch on PaaS环境中手动配置慢日志。首先通过API设置索引的慢日志阈值,接着创建`log4j2.properties`的ConfigMap以定义日志滚动策略,并修改Elasticsearch配置引入此ConfigMap。最后,通过Kubernetes命令检查Pod内的`logs`目录以查看生成的慢日志文件。需注意,不当配置可能会影响系统性能。[官方文档](https://www.elastic.co/guide/en/elasticsearch/reference/6.8/logging.html)提供更多细节。
21 3
|
11天前
|
Kubernetes 监控 Cloud Native
eBPF技术大揭秘:一张全景图彻底改变Kubernetes问题排查,助你成为云原生时代的超级英雄!
【8月更文挑战第8天】在云原生时代,Kubernetes作为容器编排的标准,其问题排查变得日益复杂。eBPF技术无需改动内核即可编写高效、安全的内核程序,实现系统细粒度观测与控制。近期发布的基于eBPF的Kubernetes问题排查全景图,展示了如何利用eBPF监控资源使用、网络性能及调度策略等,例如通过eBPF程序监控CPU使用率。此全景图有助于快速定位如高CPU使用率等问题所在Pod,进而优化配置或调整调度。
38 8
|
11天前
|
存储 Kubernetes 网络安全
[k8s]使用nfs挂载pod的应用日志文件
[k8s]使用nfs挂载pod的应用日志文件
|
24天前
|
消息中间件 Kubernetes Kafka
日志采集/分析
日志采集/分析
36 7
|
4天前
|
数据采集 监控 Kubernetes
Job类日志采集问题之iLogtail以减小容器发现和开始采集的延时如何优化
Job类日志采集问题之iLogtail以减小容器发现和开始采集的延时如何优化
|
4天前
|
数据采集 Kubernetes Java
Job类日志采集问题之在日志中添加容器的元信息标签,如何操作
Job类日志采集问题之在日志中添加容器的元信息标签,如何操作
|
4天前
|
存储 容器
Job类日志采集问题之DaemonSet采集方式的参数以减小采集延时如何调整
Job类日志采集问题之DaemonSet采集方式的参数以减小采集延时如何调整

相关产品

  • 日志服务