Kubernetes数据面监控基于日志服务与龙蜥社区合作共建的无侵入监控能力,您可以直观地分析整个Kubernetes的数据流向与瓶颈问题,轻松应对复杂的云原生环境。
前提条件
使用限制
Kubernetes数据面监控要求主机为x86_64 Linux内核版本为4.19及以上版本或3.1.0版本(仅限centos7.6~7.9操作系统)。您可以通过uname -r
命令查看内核信息。
控制台方式接入
登录日志服务控制台。
在日志应用区域的智能运维页签下,单击全栈可观测。
在SLS全栈可观测页面,单击目标实例。
在左侧导航栏中,单击全栈监控。
首次在该实例中使用全栈监控时,还需单击立即开启。
在左侧导航栏中,单击数据接入,然后在数据接入配置页面,找到Kubernetes监控区域的无侵入服务观测。
首次创建目标监控项的接入配置时,打开创建开关,可进入配置页面。如果您已创建过接入配置,则单击图标,可进入配置页面。
创建机器组:
如已经安装,请跳过此步骤。
阿里云ack集群创建机器组,请参见创建IP地址机器组。
自建K8s集群创建机器组,请参见创建用户自定义标识机器组。
命令行方式接入
下载Logtail CRD 采集配置生成工具:
操作方式
描述
集群外安装
集群外部安装要求登录账户存在
~/.kube/config
配置文件(可以使用kubectl命令),且配置文件具有目标集群操作权限。集群内安装
容器内安装基于已安装组件
alibaba-log-controller
权限操作CRD 创建,适用于无~/.kube/config
配置文件或网络问题无法连接时进行操作。集群外安装
登录集群,下载模板工具。
中国地区
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
安装模板工具,安装成功后会在当前文件夹生成
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
执行
./sls-crd-tool list
命令验证工具是否安装成功,当存在返回值时,说明工具安装成功。
容器内安装
登录集群,进入
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
下载模板工具。
如集群内可以下载公网资源,操作方法如下:
中国地区
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上传等功能将模板工具传输至上述容器。
安装模板工具,安装成功后会在当前文件夹生成
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
执行
./sls-crd-tool list
命令验证工具是否安装成功,当存在返回值时,说明工具安装成功。
使用Logtail CRD采集配置生成工具生成采集配置
查看模板定义:
./sls-crd-tool get ebpfK8sPlugin
将当前实例ID替换REQUIRED参数,使用以下命令预览参数:
./sls-crd-tool apply -f template-ebpfK8sPlugin.yaml --create=false
确认project参数是否为当前实例所绑定的project,如正确,请使用以下命令部署模板采集文件:
./sls-crd-tool apply -f template-ebpfK8sPlugin.yaml
返回数据接入配置界面,如下图,安装成功,资源监控中的配置数加一,安装失败则不加一。
控制台方式接入
单击使用现有机器组。
安装监控组件后,日志服务自动创建名为
k8s-group-${your_k8s_cluster_id}
的机器组,您可以直接使用该机器组。选中目标机器组(
k8s-group-${your_k8s_cluster_id}
),将该机器组从源机器组移动到应用机器组,单击下一步。重要如果机器组心跳为FAIL,您可单击自动重试。如果还未解决,请参见Logtail机器组无心跳进行排查。
在数据源设置中,配置如下参数,然后单击完成。
参数名称
说明
一般配置
配置名称
自定义设置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为正则表达式。例如设置LabelKey为io.kubernetes.container.name,设置LabelValue为^(nginx|cube)$,表示匹配名为nginx、cube的容器。
多个白名单之间为或关系,即只要容器Label满足任一白名单即可被匹配。
Label黑名单
用于排除不需要采集的容器。
设置LabelKey为具体名称,LabelValue为正则表达式。例如设置LabelKey为io.kubernetes.container.name,设置LabelValue为^(nginx|cube)$,表示排除名为nginx、cube的容器。
多个黑名单之间为或关系,即只要容器Label满足任一黑名单即可被排除。
环境变量白名单
用于指定待采集的容器。
设置EnvKey为具体名称,EnvValue为正则表达式。例如设置EnvKey为NGINX_SERVICE_PORT,设置EnvValue为^(80|6379)$,表示匹配服务端口为80、6379的容器。
多个白名单之间为或关系,即只要容器的环境变量满足任一键值对即可被匹配。
环境变量黑名单
用于排除不需要采集的容器。
设置EnvKey为具体名称,EnvValue为正则表达式。例如设置EnvKey为NGINX_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数据面监控数据后,全栈可观测应用会自动生成专属仪表盘。您可以通过仪表盘分析监控数据。更多信息,请参见查看仪表盘。
创建机器组:如已经安装,请跳过此步骤。阿里云ack集群创建机器组,请参见创建IP地址机器组。自建K8s集群创建机器组,请参见创建用户自定义标识机器组。