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

应用场景

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

前提条件

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

配置流程

  1. 部署Logtail的DaemonSet配置Logtail机器组

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

  2. 创建服务端采集配置

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

  3. 数据接入DataV

步骤一 部署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请参考配置主账号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. 单击机器组后的机器组图标,选择创建机器组
  4. 选择用户自定义标识,将上一步配置的ALIYUN_LOGTAIL_USER_DEFINED_ID 填入用户自定义标识内容框中。

    创建机器组

    配置完成一分钟后,单击机器组名称查看已经部署Logtail DaemonSet 节点的心跳状态。具体参见管理机器组中的查看状态

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

  1. 概览页面单击接入数据,进入配置流程。
  2. 选择数据类型。

    接入数据页面中选择Docker标准输出

  3. 选择日志空间。

    如果您是通过日志库下的数据接入后的加号进入采集配置流程,系统会直接跳过该步骤。

  4. 创建机器组。
    在创建机器组之前,您需要首先确认已经安装了Logtail。 安装完Logtail后单击确认安装完毕创建机器组。如果您之前已经创建好机器组 ,请直接单击使用现有机器组
  5. 机器组配置。

    选择一个机器组,将该机器组从源机器组移动到应用机器组

  6. 数据源设置。

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

    {
     "inputs": [
         {
             "type": "service_docker_stdout",
             "detail": {
                 "Stdout": true,
                 "Stderr": true,
                 "IncludeLabel": {
                     "app": "monitor"
                 },
                 "ExcludeLabel": {
                     "type": "pre"
                 }
             }
         }
     ]
    }
    					
  7. 查询分析设置。

    默认已经设置好索引,您也可以手动修改。

步骤四 数据接入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
    }
    					

    Area Chart配置

注意事项

在测试时,示例中的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后,会按照指定的时间进行计算。

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