Kubernetes中提供多项监控指标,您可以将Kubernetes中的监控指标接入到全栈可观测应用中,进行可视化展示。另外,基于日志服务与龙蜥社区合作共建的无侵入监控能力,您还可以直观地分析整个Kubernetes的数据流向与瓶颈问题,轻松应对复杂的云原生环境。
前提条件
已创建全栈可观测实例。具体操作,请参见创建实例。
使用限制
如果开启数据面监控,则要求主机为x86_64 Linux内核版本为4.19及以上版本或3.1.0版本(仅限centos7.6~7.9操作系统)。您可以通过uname -r
命令查看内核信息。
步骤一:创建Logtail采集配置
登录日志服务控制台。
在日志应用区域的智能运维页签下,单击全栈可观测。
在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 k8sMonitor
将当前实例ID替换REQUIRED参数,使用以下命令预览参数:
./sls-crd-tool apply -f template-k8sMonitor.yaml --create=false
确认project参数是否为当前实例所绑定的project,如正确,请使用以下命令部署模板采集文件:
./sls-crd-tool apply -f template-k8sMonitor.yaml
返回数据接入配置界面,如下图,安装成功,资源监控中的配置数加一,安装失败则不加一。
部署组件说明
用于采集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监控数据后,全栈可观测应用会自动生成专属仪表盘。您可以通过仪表盘分析监控数据。更多信息,请参见查看仪表盘。