日志服务支持通过Logtail采集Kubernetes集群日志,完成采集后,您还可以实时预览、检索和分析日志,也可以将检索分析的结果通过DataV在大屏上发布。

应用场景

通过日志服务收集您在杭州地域的Kubernetes集群日志,对收集到的访问日志进行查询分析、并将查询结果通过DataV以图表方式展示。

前提条件

  1. 已经开启了Access Key。
  2. 开通日志服务产品,并创建了Project和Logstore。
  3. 开通DataV产品。

配置流程

  1. #step1
  2. #section_iqr_f1c_wfb

    日志服务控制台创建自定义标识机器组,后续该Kubernetes集群伸缩无需额外运维。

  3. #section_zcn_g1c_wfb

    日志服务控制台创建采集配置,所有采集均为服务端配置,无需本地配置。

  4. #section_g5g_31c_wfb

步骤一 部署Logtail的DaemonSet

  1. 连接到您的Kubernetes集群
  2. 配置参数
    1. 单击下载日志服务 YAML 文件模板,用 vi 编辑器打开。
    2. 将env 环境变量一节中所有的 ${your_xxxx}替换为真实值。
      参数 说明
      `${your_region_name}` region名,请替换为您创建的日志服务project所在region。region名称请参考Logtail安装参数中使用的region名。
      说明 region名中 -_不要混淆。
      `${your_aliyun_user_id}` 用户标识,请替换为您的阿里云主账号用户ID。主账号用户ID为字符串形式,如何查看ID请参考为非本账号ECS、自建IDC配置AliUid
      `${your_machine_group_name}` 您集群的机器组自定义标识。如您尚未开启自定义标识,请参考自定义机器组,开启userdefined-id。
      说明
      1. 您的主账号需要开启AccessKey,请参考快速入门中的创建密钥对
      2. 请您不要修改模板中的volumeMountsvolumes 部分,否则会造成Logtail无法正常工作。
      3. 您可以自定义配置Logtail容器的启动参数,只需保证如下几点即可:
        1. 启动时,必须具备3个环境变量:ALIYUN_LOGTAIL_USER_DEFINED_IDALIYUN_LOGTAIL_USER_IDALIYUN_LOGTAIL_CONFIG
        2. 必须将Docker的Domain Socket挂载到/var/run/docker.sock
        3. 如果您需要采集其他容器或宿主机文件,需要将根目录挂载到Logtail容器的/logtail_host目录。
    3. 部署Logtail的DaemonSet

      示例:

      [root@iZu kubernetes]# curl http://logtail-release.oss-cn-hangzhou.aliyuncs.com/docker/k8s/logtail-daemonset.yaml > logtail-daemonset.yaml
      [root@iZu kubernetes]# vi logtail-daemonset.yaml
      ...
           env:
               - name: "ALIYUN_LOGTAIL_CONFIG"
                 value: "/etc/ilogtail/conf/cn_hangzhou/ilogtail_config.json"
               - name: "ALIYUN_LOGTAIL_USER_ID"
                 value: "16542189653****"
               - name: "ALIYUN_LOGTAIL_USER_DEFINED_ID"
                 value: "k8s-logtail"
      ...
      [root@iZu kubernetes]# kubectl apply -f logtail-daemonset.yaml
      

步骤二 配置Logtail机器组

  1. 开通日志服务并创建Project。
  2. 在日志服务控制台的机器组列表页面单击创建机器组
  3. 选择用户自定义标识,将上一步配置的ALIYUN_LOGTAIL_USER_DEFINED_ID 填入用户自定义标识内容框中。


    配置完成一分钟后,在机器组列表页面单击右侧的查看状态按钮,即可看到已经部署Logtail DaemonSet 节点的心跳状态。具体参见管理机器组中的查看状态

步骤三 创建服务端采集配置

  1. Logstore列表单击数据接入向导图标,进入配置流程。
  2. 选择数据类型。

    单击自建软件中的Docker标准输出,并单击下一步

  3. 设置数据源。

    输入源配置页面,填写您的采集配置。示例如下,配置项说明请查看容器标准输出

    {
     "inputs": [
         {
             "type": "service_docker_stdout",
             "detail": {
                 "Stdout": true,
                 "Stderr": true,
                 "IncludeLabel": {
                     "app": "monitor"
                 },
                 "ExcludeLabel": {
                     "type": "pre"
                 }
             }
         }
     ]
    }
    
  4. 应用到机器组。

    进入应用到机器组页面。在此处勾选需要采集的Logtail机器组,并单击下一步。

  5. 开启索引。

    为字段bytesiplatencymethodstatusurl开启索引和分析。

步骤四 数据接入DataV

  1. 我的数据页面中单击添加数据。 填写类型、您的AK等信息,单击完成


  2. 创建Area Chart,并填写相关配置。

    其中,Query部分填写以下内容:

    {
     "projectName": "sls-zc-test-hz-pub",
     "logStoreName": "nginx_access",
     "topic": "",
     "from": 1518332000,
     "to": 1518352301,
     "query": "*| select count(1) as pv, date_format(from_unixtime(__time__ - __time__%3600) ,'%Y/%m/%d %H:%i:%s')   as time group by time  order by time limit 1000" ,
     "line": 100,
     "offset": 0
    }
    


注意事项

在测试时,示例中的from和to您可以先填写unix time,例如1509897600。发布之后换成:from:to。您可以在url参数里控制这两个数值的具体时间范围。例如,预览是的url是http://datav.aliyun.com/screen/86312,打开http://datav.aliyun.com/screen/86312?from=1510796077&to=1510798877后,会按照指定的时间进行计算。

完成图表配置后,单击预览发布,一个大屏就创建成功了。