Kubernetes数据面监控基于日志服务与龙蜥社区合作共建的无侵入监控能力,您可以直观地分析整个Kubernetes的数据流向与瓶颈问题,轻松应对复杂的云原生环境。

前提条件

  • 已创建实例。具体操作,请参见创建实例
  • 如果是控制台方式接入,需先安装监控组件。具体操作,请参见安装监控组件

使用限制

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

命令行方式接入

如果您在接入Kubernetes资源监控数据时,打开数据面监控开关,则日志服务会在安装脚本中添加config-observer-enable=true。您可通过该脚本,快速部署默认的数据面采集配置。具体操作,请参见接入Kubernetes资源监控数据

Kubernetes数据面监控

控制台方式接入

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

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

  5. 单击使用现有机器组
    安装监控组件后,日志服务自动创建名为{instanceID}-{clusterID}-k8s-nodes的机器组,您可以直接使用该机器组。
  6. 选中目标机器组({instanceID}-{clusterID}-k8s-nodes),将该机器组从源机器组移动到应用机器组,单击下一步
    重要 如果机器组心跳为FAIL,您可单击自动重试。如果还未解决,请参见Logtail机器组无心跳进行排查。
  7. 数据源设置配置向导中,配置如下参数,然后单击完成
    参数名称说明
    一般配置
    配置名称自定义设置Logtail采集配置的名称。
    集群自定义设置集群的名称。

    设置该参数后,日志服务会为通过该Logtail采集配置采集到的监控数据添加cluster=集群名称的标签。

    重要 请确保该集群名称唯一,否则可能出现数据冲突。
    协议处理打开协议处理开关后,Logtail将解析应用层的网络协议数据,例如HTTP、MySQL、Redis等。
    网络指标统计间隔统计L4网络数据的间隔,此间隔内的数据会被聚合输出,单位:秒。建议不超过600秒。
    协议指标统计间隔统计L7协议网络数据的间隔,此间隔内的数据会被聚合输出,单位:秒。建议不超过60秒。
    协议采样率设置网络数据的采样率,仅针对七层网络数据过滤,不影响网络统计值。
    协议白名单选择需要解析的应用层协议。
    K8s选择器
    Namespace白名单输入匹配Namespace名称的正则表达式,用于指定待采集的命名空间。
    Namespace黑名单输入匹配Namespace名称的正则表达式,用于排除不需要采集的命名空间。
    Pod白名单输入匹配Pod名称的正则表达式,用于指定待采集的Pod。
    Pod黑名单输入匹配Pod名称的正则表达式,用于排除不需要采集的Pod。
    容器白名单输入匹配容器名称的正则表达式,用于指定待采集的容器名称。
    容器黑名单输入匹配容器名称的正则表达式,用于排除不需要采集的容器名称。
    Label白名单用于指定待采集的容器。

    设置LabelKey为具体名称,LabelValue为正则表达式。例如设置LabelKeyio.kubernetes.container.name,设置LabelValue^(nginx|cube)$,表示匹配名为nginx、cube的容器。

    多个白名单之间为或关系,即只要容器Label满足任一白名单即可被匹配。

    Label黑名单用于排除不需要采集的容器。

    设置LabelKey为具体名称,LabelValue为正则表达式。例如设置LabelKeyio.kubernetes.container.name,设置LabelValue^(nginx|cube)$,表示排除名为nginx、cube的容器。

    多个黑名单之间为或关系,即只要容器Label满足任一黑名单即可被排除。

    环境变量白名单用于指定待采集的容器。

    设置EnvKey为具体名称,EnvValue为正则表达式。例如设置EnvKeyNGINX_SERVICE_PORT,设置EnvValue^(80|6379)$,表示匹配服务端口为80、6379的容器。

    多个白名单之间为或关系,即只要容器的环境变量满足任一键值对即可被匹配。

    环境变量黑名单用于排除不需要采集的容器。

    设置EnvKey为具体名称,EnvValue为正则表达式。例如设置EnvKeyNGINX_SERVICE_PORT,设置EnvValue^(80|6379)$,表示排除服务端口为80、6379的容器。

    多个黑名单之间为或关系,即只要容器的环境变量满足任一键值对即可被排除。

    高级配置
    丢弃本地网络数据包打开丢弃本地网络数据包丢弃本地网络数据包开关后,Logtail将丢弃对端地址为本地的INET域网络请求。
    丢弃Unix 网络数据包打开丢弃Unix网络数据包丢弃Unix网络数据包开关后,Logtail将丢弃Unix域网络请求。

    Unix域常用于本地网络交互。

    丢弃未知数据包打开丢弃未知数据包开关后,Logtail将丢弃非INET域或Unix域的网络请求。
    容器信息读取间隔设置全量读取容器元信息的时间间隔,单位:秒。建议不超过60秒。
    Socket 信息读取间隔设置读取Socket元信息的时间间隔,单位:秒。建议不超过30秒。
    协议聚合窗口设置协议指标统计间隔内进程级别数据聚合窗口大小,用于控制资源消耗,避免大量的不同调用导致Logtail内存上升。默认客户端为500,服务端为5000。

    设置完成后,日志服务将自动生成Metricstore等资产。更多信息,请参见资产说明

后续步骤

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