接入Kubernetes资源监控数据

Kubernetes中提供多项监控指标,您可以将Kubernetes中的监控指标接入到全栈可观测应用中,进行可视化展示。另外,基于日志服务与龙蜥社区合作共建的无侵入监控能力,您还可以直观地分析整个Kubernetes的数据流向与瓶颈问题,轻松应对复杂的云原生环境。

前提条件

已创建全栈可观测实例。具体操作,请参见创建实例

使用限制

如果开启数据面监控,则要求主机为x86_64 Linux内核版本为4.19及以上版本或3.1.0版本(仅限centos7.6~7.9操作系统)。您可以通过uname -r命令查看内核信息。

步骤一:创建Logtail采集配置

  1. 登录日志服务控制台

  2. 日志应用区域的智能运维页签下,单击全栈可观测

  3. SLS全栈可观测页面,单击目标实例。

  4. 在左侧导航栏中,单击全栈监控

    首次在该实例中使用全栈监控时,还需单击立即开启

  5. 在左侧导航栏中,单击数据接入,然后在数据接入配置页面,找到Kubernetes监控区域的资源监控

    首次创建目标监控项的接入配置时,打开创建开关,可进入配置页面。如果您已创建过接入配置,则单击创建图标,可进入配置页面。

  6. 创建机器组:

    如已经安装,请跳过此步骤。

  7. 下载Logtail CRD 采集配置生成工具:

    操作方式

    描述

    集群外安装

    集群外部安装要求登录账户存在~/.kube/config配置文件(可以使用kubectl命令),且配置文件具有目标集群操作权限。

    集群内安装

    容器内安装基于已安装组件alibaba-log-controller权限操作CRD 创建,适用于无~/.kube/config配置文件或网络问题无法连接时进行操作

    集群外安装

    1. 登录集群,下载模板工具。

      • 中国地区

        curl https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
      • 海外地区

        curl https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
    2. 安装模板工具,安装成功后会在当前文件夹生成sls-crd-tool工具。

      tar -xvf /tmp/crd-tool.tar.gz -C /tmp &&chmod 755 /tmp/crd-tool/install.sh  && sh -x  /tmp/crd-tool/install.sh
    3. 执行./sls-crd-tool list命令验证工具是否安装成功,当存在返回值时,说明工具安装成功。

    容器内安装

    1. 登录集群,进入alibaba-log-controller容器。

      kubectl get pods -n kube-system -o wide |grep alibaba-log-controller | awk -F ' ' '{print $1}'
      kubectl exec -it {pod} -n kube-system bash
    2. 下载模板工具。

      • 如集群内可以下载公网资源,操作方法如下:

        • 中国地区

          curl https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
        • 海外地区

          curl https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/kubernetes/crd-tool.tar.gz -o /tmp/crd-tool.tar.gz
      • 如集群内无法下载公网资源,可以集群外下载,使用kubectl cp <source> <destination>或者ACK上传等功能将模板工具传输至上述容器。

    3. 安装模板工具,安装成功后会在当前文件夹生成sls-crd-tool工具。

      tar -xvf /tmp/crd-tool.tar.gz -C /tmp &&chmod 755 /tmp/crd-tool/install.sh  && sh -x  /tmp/crd-tool/install.sh
    4. 执行./sls-crd-tool list命令验证工具是否安装成功,当存在返回值时,说明工具安装成功。

  8. 使用Logtail CRD采集配置生成工具生成采集配置.

    1. 查看模板定义:

      ./sls-crd-tool  get k8sMonitor
    2. 将当前实例ID替换REQUIRED参数,使用以下命令预览参数:

      ./sls-crd-tool  apply -f template-k8sMonitor.yaml --create=false
    3. 确认project参数是否为当前实例所绑定的project,如正确,请使用以下命令部署模板采集文件:

      ./sls-crd-tool  apply -f template-k8sMonitor.yaml
    4. 返回数据接入配置界面,如下图,安装成功,资源监控中的配置数加一,安装失败则不加一。

      image.png

部署组件说明

用于采集Kubernetes监控数据的Kubernetes资源全部创建在sls-monitoring命名空间中,主要包括1个Deployment、1个Statefulset、1个DaemonSet和7个AliyunLogConfig的CRD。

资源类型

资源名称

说明

AliyunLogConfig

{instance-id}-k8s-metas

用于采集Kubernetes的配置数据,例如Deployment、Pod、Ingress、Service的名称、Namespace、Label、Image、Limit等配置信息。默认采集到名为{instance}-metas的Logstore中。

{instance-id}-k8s-metrics

用于采集Kubernetes的指标数据,例如Pod、容器的CPU、内存、网络等。默认采集到名为{instance}-k8s-metrics的Metricstore中。

{instance-id}-k8s-metrics-kubelet

用于采集Kubernetes Kubelet的指标数据。默认采集到名为{instance}-k8s-metrics的Metricstore中。

{instance-id}-node-metas

用于采集Kubernetes节点的配置数据,例如CPU型号、内存大小等。默认采集到名为{instance}-metas的Logstore中。

{instance-id}-node-metrics

用于采集Kubernetes节点的指标数据,例如CPU使用率、内存利用率等。默认采集到名为{instance}-node-metrics的Metricstore中。

后续步骤

接入Kubernetes监控数据后,全栈可观测应用会自动生成专属仪表盘。您可以通过仪表盘分析监控数据。更多信息,请参见查看仪表盘