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

前提条件

已创建实例。具体操作,请参见创建实例

使用限制

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

步骤一:创建Logtail采集配置

  1. 登录日志服务控制台
  2. 日志应用区域,单击全栈监控
  3. SLS全栈监控页面,单击目标实例。
  4. 数据接入页面,选择资源监控。

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

  5. 数据接入页面,完成如下配置,然后单击完成
    1. 设置集群名
      设置为目标Kubernetes集群的ID。
    2. 选择接入方式
      当您的服务器部署在阿里云ECS、阿里云ACK等资源上时,建议选择阿里云内网方式
    3. 根据您的需求,选择是否打开以下开关。
      • 数据面监控:基于eBPF能力自动刻画Kubernetes服务拓扑,一站式分析网络层与应用层指标数据。更多信息,请参见接入Kubernetes数据面监控数据
      • 指标探测:基于Prometheus自动发现采集协议,自动采集标注自动采集的所有Pod基本数据(默认过滤CoreDNS以及Ingress相关的指标)。

步骤二:安装监控组件

  1. 登录您的Kubernetes集群。
  2. 下载安装文件。
    wget https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/sls-monitoring.sh -O sls-monitoring.sh
  3. 修改文件的权限。
    chmod 744 sls-monitoring.sh
  4. 执行如下命令安装监控组件。
    bash sls-monitoring.sh \
    --project ${project} \
    --aliuid ${aliuid} \
    --instance-id ${instance-id} \
    --cluster-id ${cluster-id} \
    --action install \
    --config-params ${config-params} \
    --kube-state-metrics-image-name ${kube-state-metrics-image} \
    --logtail-image-name ${logtail-image} \
    --config-observer-enable ${enable-observer} \
    --config-auto-discovery-enable ${enable-auto-discovery}
    日志服务会根据您的接入配置,自动生成安装命令。您可以在数据接入页面,直接复制该命令。安装命令

    命令中各参数说明如下所示,请根据实际情况替换。

    参数是否必填说明
    --action支持install、upgrade、uninstall、scale操作。
    --project日志服务Project名称,需配置为您在创建全栈监控实例时,所选择的Project。更多信息,请参见创建实例
    --aliuid阿里云账号ID。更多信息,请参见步骤一:获取日志服务所在的阿里云账号(主账号)ID
    --instance-id全栈监控实例ID。
    --cluster-idKubernetes集群ID。命名规则如下:
    • 支持小写字母、数字、短划线(-)和下划线(_)。
    • 最大支持24个字符。
    --config-params请根据日志服务Project所在地域和访问的网络类型填写。其中,地域信息请参见Logtail安装参数
    • 如果使用公网采集日志,格式为region-internet,例如:华东 1(杭州)cn-hangzhou-Internet
    • 如果使用阿里云内网采集日志,格式为region。例如:华东 1(杭州)cn-hangzhou
    --logtail-image-nameLogtail的镜像地址,默认为registry.cn-beijing.aliyuncs.com/log-service/logtail。
    重要 默认地址为公网地址,若您的集群无法访问公网,可切换为对应地域的内网地址。例如registry-vpc.cn-hangzhou.aliyuncs.com/log-service/logtail。
    --kube-state-metrics-image-namekube-state-metrics的镜像地址,默认为registry.cn-beijing.aliyuncs.com/log-service/kube-state-metrics。
    重要 默认地址为公网地址,如果您的集群无法访问公网,可切换为对应地域的内网地址。例如registry-vpc.cn-hangzhou.aliyuncs.com/log-service/kube-state-metrics。
    --config-observer-enable开启数据面监控。更多信息,请参见步骤5
    --config-auto-discovery-enable开启Prometheus指标自动探测。
    --kube-config查看配置文件,默认路径为~/.kube/config
    --version查看当前安装工具版本。
    --help查看帮助信息。

    执行sls-monitoring.sh脚本后,日志服务将自动生成Metricstore等资产。更多信息,请参见资产说明

    如果在全栈监控中,对应的数据源配置数不为0,表示已创建Logtail采集配置。

    k8s资源监控

部署组件说明

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

资源类型资源名称说明
Deploymentkube-state-metrics用于监听Kubernetes中的API来获取Kubernetes集群中的指标。
Statefulsetlogtail-kubernetes-metrics集群模式采集Prometheus指标,包括但不限于采集kube-state-metrics指标到日志服务。
DaemonSetlogtail-node-monitoring-ds用于监听Kubernetes中的API来获取Kubernetes集群中的指标。
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中。
{instance}-node-observer-metrics用于采集Kubernetes无侵入监控的指标数据。默认采集到名为{instance}-observer-data的Logstore中。
{instance}-k8s-auto-discovery用于自动探测采集Pod Prometheus的指标数据,默认排除CoreDNS以及Ingress相关指标。默认采集到名为{instance}-k8s-metrics的Metricstore中。

后续步骤

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