全部产品
阿里云办公

采集-采集容器服务日志

更新时间:2018-03-02 17:18:05

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

应用场景

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

前提条件

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

配置流程

步骤一 部署Logtail的DaemonSet

步骤二 配置Logtail机器组

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

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

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

步骤四 数据接入DataV

步骤一 部署Logtail的DaemonSet

  1. 连接到您的Kubernetes集群

    参见通过 kubectl 连接到集群

  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请参考用户标识配置中的2.1节。
    ${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

    示例:

    1. [root@iZu kubernetes]# curl http://logtail-release.oss-cn-hangzhou.aliyuncs.com/docker/k8s/logtail-daemonset.yaml > logtail-daemonset.yaml
    2. [root@iZu kubernetes]# vi logtail-daemonset.yaml
    3. ...
    4. env:
    5. - name: "ALIYUN_LOGTAIL_CONFIG"
    6. value: "/etc/ilogtail/conf/cn_hangzhou/ilogtail_config.json"
    7. - name: "ALIYUN_LOGTAIL_USER_ID"
    8. value: "16542189653****"
    9. - name: "ALIYUN_LOGTAIL_USER_DEFINED_ID"
    10. value: "k8s-logtail"
    11. ...
    12. [root@iZu kubernetes]# kubectl apply -f logtail-daemonset.yaml

步骤二 配置Logtail机器组

  1. 开通日志服务并创建Project

  2. 在日志服务控制台的机器组列表页面单击创建机器组

  3. 选择用户自定义标识,将上一步配置的 ALIYUN_LOGTAIL_USER_DEFINED_ID填入用户自定义标识内容框中。

    image.png

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

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

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

  2. 选择数据类型。

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

  3. 设置数据源。

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

    1. {
    2. "inputs": [
    3. {
    4. "type": "service_docker_stdout",
    5. "detail": {
    6. "Stdout": true,
    7. "Stderr": true,
    8. "IncludeLabel": {
    9. "app": "monitor"
    10. },
    11. "ExcludeLabel": {
    12. "type": "pre"
    13. }
    14. }
    15. }
    16. ]
    17. }
  4. 应用到机器组。

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

  5. 开启索引。

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

步骤四 数据接入DataV

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

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

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

    1. {
    2. "projectName": "sls-zc-test-hz-pub",
    3. "logStoreName": "nginx_access",
    4. "topic": "",
    5. "from": 1518332000,
    6. "to": 1518352301,
    7. "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" ,
    8. "line": 100,
    9. "offset": 0
    10. }

注意

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

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