日志服务(Log Service,简称 LOG)是针对日志类数据的一站式服务。您无需开发就能快捷完成日志数据采集、消费、投递以及查询分析等功能。在Knative中结合日志服务,能有效提升对Serverless应用的运维能力。

前提条件

操作步骤

  1. 为Helloworld接入日志采集。
    1. 登录日志服务管理控制台
    2. Project列表区域,单击创建Project创建名称为hellword的项目。详细操作请参见操作Logstore
    3. 在helloworld项目页面的右上角,单击接入数据,弹出接入数据页面。
    4. 选择Docker标准输出,进入Docker标准输出配置页面。
      指定采集模式
    5. 选择日志空间配置中,确认日志空间信息并单击下一步
    6. 设置创建机器组
      若您已经安装Logtail日志组件,请点击使用现有机器组

      您可以选择Kubernetes或者标准Docker采集进行日志采集。具体操作,请参见使用日志服务进行Kubernetes日志采集采集标准Docker容器日志

    7. 单击确认安装完毕
    8. 设置机器组配置
    9. 设置数据源设置
      插件配置这里我们针对helloworld-go Service,设置采集的环境变量为:"K_SERVICE": "helloworld-go"。并且通过 processors 分割日志信息,如这里"Keys": [ "time","level", "msg" ]。插件配置示例如下。
      {
        "inputs": [
          {
            "detail": {
              "IncludeEnv": {
                "K_SERVICE": "helloworld-go"
              },
              "IncludeLabel": {},
              "ExcludeLabel": {}
            },
            "type": "service_docker_stdout"
          }
        ],
        "processors": [
          {
            "detail": {
              "KeepSource": false,
              "NoMatchError": true,
              "Keys": [
                "time",
                "level",
                "msg"
              ],
              "NoKeyError": true,
              "Regex": "(\\d+-\\d+-\\d+\\s+\\d+:\\d+:\\d+)\\s+(\\w+)\\s+(.*)",
              "SourceKey": "content"
            },
            "type": "processor_regex"
          }
        ]
      }
    10. 数据源设置完成后,单击下一步
    11. 查询分析配置页面,开启全文索引,设置查询字段索引属性。
    12. 单击下一步进入结束页面。
  2. 执行以下命令,访问Hello World示例服务。
    此时会产生日志信息。
    $ curl -H "Host: helloworld-go.default.example.com" http://112.124.XX.XX
    Hello Knative!
  3. 日志库的目标日志右侧悬浮鼠标至图标日志库图标上,选择日志库图标 > 查询分析,可以看到该logstore的日志信息。
  4. 设置查询分析。
    请参见实时分析简介
    为了便于查看,您可以通过列设置显示所需要的列。下图中的示例设置了level、msg和time这三列。查询logstore

总结

通过上面的介绍,可以帮助您了解如何在Knative中使用日志服务收集Serverless应用容器日志。在Knative中采用日志服务收集、分析业务日志,满足了生产级别的Serverless应用运维的诉求。