赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. Serverless应用引擎(新版)
  4. 操作指南
  5. 应用部署
  6. 日志收集服务
  7. 设置日志收集至Kafka

设置日志收集至Kafka

  • 日志收集服务
  • 发布于 2025-04-17
  • 0 次阅读
文档编辑
文档编辑

Serverless 应用引擎 SAE(Serverless App Engine)支持将应用实例的标准输出(stdout),以及将应用实例指定路径的日志采集到云消息队列 Kafka 版中。在此基础上,您可以结合自身的业务场景,将Kafka的数据投递到例如Elasticsearch等其他持久化库中,便于集中管理和分析日志。本文介绍在SAE控制台设置日志收集到Kafka的使用场景、操作步骤与采集格式说明。

前提条件

  • SAE

    确保应用中每个实例至少预留0.25 Core CPU和250 MB内存的可用资源。

  • Kafka

    • 开通Kafka并创建Topic。SAE支持Kafka 2.x及以上版本的实例。

    • 如果Kafka的实例通过内网采集,无公网访问能力,则Kafka集群需要和SAE的实例在同一个VPC内。

    • 配置Kafka白名单:

      • 如果VPC一致,但vSwitch不一致,需要在Kafka实例页面将SAE的vSwitch添加至白名单。

      • 如果需要设置为VPC内可访问,设置为0.0.0.0/0即可。

背景信息

将微服务应用的日志导入Kafka的功能是对SLS日志采集功能的补充增强,适用于不便使用SLS采集、RAM用户(子账号)无法查看SLS日志等场景。

  • 更多约束和规范,请参见Kafka使用限制。

  • 使用Kafka会产生额外费用。计费详情,请参见Kafka计费说明。

配置文件日志收集

在创建应用过程中配置文件日志收集

  1. 登录SAE控制台,在左侧导航栏选择应用管理 > 应用列表,然后选择目标地域和目标命名空间,最后单击创建应用。

    xxQdc1LHvq

  2. 在应用基本信息配置向导,设置应用相关信息,并单击下一步:高级设置。

  3. 展开日志配置区域,开启Kafka日志服务的开关,然后根据下表说明设置相关参数。

    配置项

    说明

    Kafka实例

    选择目标实例。

    采集日志类型

    选择日志类型。

    • 文件日志(容器内日志路径):可以设置多条,默认显示。

    • 容器标准输出日志:仅可以设置一条。当您的vSwitch属于推荐可用区时,下拉列表才会显示该选项。更多信息,请参见切换安全组和vSwitch。

    日志源

    输入日志源存放的文件目录。目录须包含日志的文件名,例如/tmp0/cjsc.log。容器标准输出无需设置此选项。文件名与路径支持正则匹配,同一目录下,如果日志文件数量多且文件格式相同,可以输入例如/xxx/xxx/xxx/*.log的格式。

    重要

    请勿在日志源的存放目录中存放其他重要文件,避免目录内的文件被覆盖。

    Kafka Topic名称

    选择已创建的Kafka Topic。

  4. 单击创建应用。

  5. 验证结果。

    应用部署完成后,SAE依据所配的日志收集规则收集日志并存放到指定的文件内。

    您可以在应用详情页面左侧导航栏中,选择日志管理 > 持久化日志,在持久化日志页面的日志采集到 Kafka页签查看所收集的日志信息。

    如果存在日志数据,则表示日志收集配置成功,您可以依据日志信息进行相关业务分析。

在部署应用过程中配置文件日志收集

警告

重新部署应用后,该应用将会被重启。为避免业务中断等不可预知的错误,请在业务低峰期执行部署操作。

更新应用配置的路径因实例数的不同而不同。本文以实例数大于等于1为例,介绍如何配置目标功能。当实例数等于0时的操作路径,请参见更新应用。

  1. 登录SAE控制台,在左侧导航栏选择应用管理 > 应用列表,然后选择目标地域和目标命名空间,最后单击目标应用名称。

    IXAcRBAUok

  2. 在目标应用的基础信息页面,单击部署应用。

  3. 找到并展开日志配置区域,开启Kafka日志服务的开关。

    配置项

    说明

    Kafka实例

    选择目标实例。

    采集日志类型

    选择日志类型。

    • 文件日志(容器内日志路径):可以设置多条,默认显示。

    • 容器标准输出日志:仅可以设置一条。当您的vSwitch属于推荐可用区时,下拉列表才会显示该选项。更多信息,请参见切换安全组和vSwitch。

    日志源

    输入日志源存放的文件目录。目录须包含日志的文件名,例如/tmp0/cjsc.log。容器标准输出无需设置此选项。文件名与路径支持正则匹配,同一目录下,如果日志文件数量多且文件格式相同,可以输入例如/xxx/xxx/xxx/*.log的格式。

    重要

    请勿在日志源的存放目录中存放其他重要文件,避免目录内的文件被覆盖。

    Kafka Topic名称

    选择已创建的Kafka Topic。

  4. 配置完成后,完成确定。

    重要

    Kafka不支持同一个文件被同时采集到不同的Topic中。因此,如果您在应用部署时采用分批发布或者灰度发布策略,同时配置的日志源不变,只改变日志收集的Topic,那么在所有批次的部署流程成功完成之前,您的日志仍会收集到旧的Topic中。

  5. 验证结果。

    应用部署完成后,SAE依据所配的日志收集规则收集日志并存放到指定的文件内。

    您可以在应用详情页面左侧导航栏中,选择日志管理 > 持久化日志,在持久化日志页面的日志采集到 Kafka页签查看所收集的日志信息。

    如果存在日志数据,则表示日志收集配置成功,您可以依据日志信息进行相关业务分析。

格式说明

当您成功配置日志采集到Kafka后,得到的采集数据格式如下。

{
    "file":"/home/admin/apache-tomcat-8.5.42/logs/localhost.2022-03-01.log",
    "host":"test-kafka-9527eec8-b2c1-4f03-9178-5dac0fe16d07-*****",
    "message":"01-Mar-2022 15:09:36.016 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath",
    "topic":"test2"
}

参数说明如下。

  • file:采集的文件路径。

  • host:采集的实例名称。

  • message:采集的具体日志内容。

  • topic:发送的Kafka Topic。

多行采集说明

  • 目前Java应用出现的异常情况表现为日志会被自动合并到一行。Java异常日志示例如下:

    java.lang.RuntimeException: testLog
        at cn.niutong.controller.TestController.heathc(TestController.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
      at ...
  • 检测到换行符\n的情况下,日志会被重新写到新的一条里面。建议您在业务程序中,将日志包装成一个JSON字符串,作为一行统一对外输出。

如果您有更多需求,例如想要实现多行合并,请加入钉群(钉群号:32874633),联系产品技术专家进行咨询。

常见问题

  • SAE日志采集到Kafka是否支持通配符?

    支持。您可以通过设置星号(*)来表示某个文件夹下的所有文件,例如/tmp/logs/*.log。

  • 采集不到日志是什么原因导致的?

    可能跟网络有关。您可以按照以下步骤进行排查:

    1. 登录SAE的Webshell,使用telnet命令确认Kafka实例地址、查看网络是否正常连接。关于Webshell的具体信息,请参见使用Webshell诊断应用。

    2. 确认网络状态。

      • 网络不同:确认SAE应用和Kafka实例是否在同一个VPC内,以及是否设置了白名单。

      • 网络正常:加入钉群(钉群号:32874633),联系产品技术专家进行咨询。

相关文章

设置日志收集至SLS 2025-04-17 11:00

Serverless 应用引擎 SAE(Serverless App Engine)实时日志功能支持查看最新的500行日志信息。为满足更高的查阅需求,SAE还提供了文件日志收集功能,支持将业务文件日志(容器内日志路径)、容器标准输出日志(stdout)无限制行数地收集至SLS,便于您聚合分析。启用日

设置日志收集至Kafka 2025-04-17 11:00

Serverless 应用引擎 SAE(Serverless App Engine)支持将应用实例的标准输出(stdout),以及将应用实例指定路径的日志采集到云消息队列 Kafka 版中。在此基础上,您可以结合自身的业务场景,将Kafka的数据投递到例如Elasticsearch等其他持久化库中,

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号