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

前提条件

操作步骤

  1. 为helloworld 接入日志采集。参考容器标准输出
    1. 登录日志服务管理控制台,单击目标Project名称,在日志库页签的Logstore列表中,可以看到步骤1创建的Logstore。

    2. 在目标Logstore右侧单击数据接入向导,弹出helloword-log页面。
    3. 在自建软件区域选择Docker标准输出,进入指定采集模式页面

    4. 填写配置名称和插件配置完成后,单击下一步

      插件配置这里我们针对 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"
          }
        ]
      }
    5. 进入应用到机器组页面,勾选目标Project名称并单击应用到机器组
    6. 进入自定义页面,开启全文索引属性,设置查询字段索引属性,并单击下一步

    7. 进入投递 & ETL页面,确认无误后,单击确认
  2. 执行如下命令,访问 Hello World 示例服务。

    此时会产生日志信息。

    $ curl -H "Host: helloworld-go.default.example.com" http://112.124.XX.XX
    Hello Knative!
  3. Logstore列表中,在目标Logstore右侧单击查询,可以看到该logstore的日志信息。
  4. 设置查询分析。参考实时分析简介
    1. 为了便于查看,你可以通过列设置显示所需要的列。下图中的示例设置了level、msg和time这三列。

总结

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