日志服务支持通过Logtail采集Kubernetes集群日志,并支持CRD(CustomResourceDefinition)进行采集配置管理。本文主要介绍如何安装并使用Logtail采集Kubernetes集群日志。

前提条件

仅当专有版Kubernetes集群在创建集群未开启日志服务时,需要执行本操作。其他形态集群采集请参见Kubernetes日志采集流程

采集流程

  1. 安装alibaba-log-controller Helm包
  2. 创建采集配置
    根据您的需求选择使用控制台或CRD(CustomResourceDefinition)创建采集配置,本文以控制台为例。
图 1. 采集流程
采集流程

视频教程:

安装软件包

  1. 登录您的阿里云容器服务Kubernetes的Master节点。
    如何登录请参见SSH密钥对访问Kubernetes集群
  2. 替换参数后执行以下安装命令。
    将下述命令中的${your_k8s_cluster_id}替换为您的Kubernetes集群ID,并执行此命令。
     wget http://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/alicloud-log-k8s-install.sh -O alicloud-log-k8s-install.sh; chmod 744 ./alicloud-log-k8s-install.sh; sh ./alicloud-log-k8s-install.sh ${your_k8s_cluster_id}

    安装示例

    执行安装命令,回显信息如下:
    
    [root@iZbp******biaZ ~]# wget http://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/kubernetes/alicloud-log-k8s-install.sh -O alicloud-log-k8s-install.sh; chmod 744 ./alicloud-log-k8s-install.sh; sh ./alicloud-log-k8s-install.sh c12ba20**************86939f0b
    ....
    ....
    ....
    alibaba-cloud-log/Chart.yaml
    alibaba-cloud-log/templates/
    alibaba-cloud-log/templates/_helpers.tpl
    alibaba-cloud-log/templates/alicloud-log-crd.yaml
    alibaba-cloud-log/templates/logtail-daemonset.yaml
    alibaba-cloud-log/templates/NOTES.txt
    alibaba-cloud-log/values.yaml
    NAME: alibaba-log-controller
    LAST DEPLOYED: Wed May 16 18:43:06 2018
    NAMESPACE: default
    STATUS: DEPLOYED
    
    
    RESOURCES:
    ==> v1beta1/ClusterRoleBinding
    NAME AGE
    alibaba-log-controller 0s
    
    
    ==> v1beta1/DaemonSet
    NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
    logtail 2 2 0 2 0  0s
    
    
    ==> v1beta1/Deployment
    NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
    alibaba-log-controller 1 1 1 0 0s
    
    
    ==> v1/Pod(related)
    NAME READY STATUS RESTARTS AGE
    logtail-ff6rf 0/1 ContainerCreating 0 0s
    logtail-q5s87 0/1 ContainerCreating 0 0s
    alibaba-log-controller-7cf6d7dbb5-qvn6w 0/1 ContainerCreating 0 0s
    
    
    ==> v1/ServiceAccount
    NAME SECRETS AGE
    alibaba-log-controller 1 0s
    
    
    ==> v1beta1/CustomResourceDefinition
    NAME AGE
    aliyunlogconfigs.log.alibabacloud.com 0s
    
    
    ==> v1beta1/ClusterRole
    alibaba-log-controller 0s
    
    
    
    
    [SUCCESS] install helm package : alibaba-log-controller success.

    您可以使用helm status alibaba-log-controller查看Pod当前状态,若状态全部成功后,表示安装成功。

    安装成功后,日志服务会自动为您创建k8s-log开头的Project,在日志服务控制台搜索k8s-log关键字即可查看。

创建采集配置

此处为通过控制台方式创建Logstore并采集Kubernetes集群的容器标准输出日志。

  1. 登录日志服务控制台
  2. 选择数据源类型。
    您可以通过如下两种方式进入数据源界面。
    • 在日志服务首页的接入数据区域选择数据源类型。日志服务首页选择数据源
    • Project列表中选择并单击Project名称,在Project概览页面单击接入数据进入数据源界面。项目概览选择数据源

    此处选择的数据源类型为Docker标准输出-容器

  3. 选择日志空间。
    请选择日志服务自动为您创建的k8s-log开头的Project和您自己创建的Logstore。您也可以直接单击立即创建新建Logstore。具体步骤请参见准备流程
    图 2. 创建Logstore
  4. 创建机器组。
    在创建机器组之前,请根据界面提示确认已经安装了Logtail。如果您已经安装完Logtail,请单击确认安装完毕创建机器组。如果您之前已经创建好机器组 ,请直接单击使用现有机器组
  5. 配置机器组。
    选择一个机器组,将该机器组从源机器组移动到应用机器组机器组配置
  6. 设置数据源。
    在配置页面中直接单击下一步。无需做任何修改,即可实现采集所有容器的stdout文件。
    图 3. Docker标准输出
    Docker标准输出
  7. 设置索引。
    查询分析设置阶段设置索引。默认开启全文索引,您也可以手动增加字段索引或者自动生成索引
  8. 单击下一步完成配置。
    数据采集配置已经完成,如您需要配置数据投递,请根据页面提示在后续步骤中填写配置。

查看采集到的日志数据

完成数据采集配置后,若您的集群中有容器在输入stdout,则一分钟后即可采集到stdout日志。请返回至概览页面,单击日志库名称后的图标,选择消费预览可以快速预览当前采集到的日志数据;选择查询分析对采集到的日志数据进行自定义查询和分析。
图 4. 预览和查询
如下图所示,查询分析页面中可直接单击日志中的关键字进行快速查询,也可以再查询输入框中输入指定的关键字进行查询。
图 5. 查询日志

其他采集配置方式

其他采集方式及详细配置请参见: