通过在工作负载YAML中配置Log4j Appender,您可以将集群Java应用的日志直接写入阿里云SLS Project,实现无侵入式的日志采集。
Log4j是Apache维护的开源日志框架,专为 Java 应用程序设计。Log4j的核心组件包括Appenders(输出目标)、 Layouts(输出格式)、Filters(过滤器)等。通过配置Appenders,您可以指定日志传输的目的地,例如控制台、文件等。
前提条件
- 已创建AccessKey,供后续在应用中集成Log4j Appender使用。 - 为保证账号安全,建议您使用RAM用户(而非阿里云账号)并创建对应的AccessKey。 
步骤一:在SLS中配置Log4j Appender
本步骤指引您创建SLS Project及Logstore。配置Logstore的数据源为Log4j Appender后,您可以将Java 应用的日志直接发送至 SLS。
推荐创建的SLS Project与集群处于同一地域。两者处于同一地域时,日志数据可通过内网传输,避免因跨地域传输产生的外网带宽费用和网络延迟。
关于SLS Project的计费说明,请参见计费概述。
- 创建一个SLS Project。 - 下方仅介绍核心配置项。其余配置项保持默认即可。具体操作,请参见管理Project。 - 所属地域:推荐与ACK集群位于同一地域。本示例为华东1(杭州)。 
- Project名称:本示例为k8s-log4j。 
 
- 在Project中创建一个Logstore。 - 本示例Logstore名称为k8s-logstore,其余配置项保持默认即可。具体操作,请参见创建Logstore。 
- k8s-logstore创建完成后,按照页面提示,进行数据接入。  
- 搜索并定位Log4j的接入卡片,按照页面提示完成接入。 - 本示例使用默认配置。您可根据日志数据的具体使用场景进行配置。  
步骤二:在应用中集成Log4j
本步骤通过部署一个 Spring Boot 示例应用,演示如何将 Log4j Appender 插件集成到 Java 应用中。集成后,容器启动时将通过 JAVA_OPTS 环境变量传递 SLS 配置,Log4j 会自动读取参数并实时将日志发送至SLS。
- 获取demo-deployment.yaml文件,并配置环境变量 - JAVA_OPTS。- 获取地址,请参见demo-deployment。 - JAVA_OPTS配置说明:- -Dproject:SLS Project名称。本示例为k8s-log4j。
- -Dlogstore:SLS Logstore名称。本示例为k8s-logstore。
- -Dendpoint:SLS的服务入口。请根据Project所属地域配置服务入口,可参见服务入口进行查询。本示例为cn-hangzhou.log.aliyuncs.com。
- -Daccess_key_id:替换为AccessKey ID。
- -Daccess_key:替换为AccessKey Secret。
 
- 创建Deployment。 - kubectl create -f demo-deployment.yaml
- 获取demo-Service.yaml文件,保持默认配置即可。 - 获取地址,请参见demo-Service。 
- 部署demo-Service.yaml,创建Service。 - kubectl create -f demo-service.yaml
步骤三:测试日志采集功能
Deployment和Service部署成功后,您可以查看Service的外部访问IP,即EXTERNAL-IP,访问服务并生成日志,验证日志是否能成功写入 SLS。
- 查看Service的 - EXTERNAL-IP。- kubectl get svc- 预期输出如下: - NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE log4j-appender-demo-spring-boot-svc LoadBalancer 172.21.XX.XX 120.55.XXX.XXX 8080:30398/TCP 1h
- 运行 - login命令,测试集群日志是否成功生成。- 替换 - K8s_SERVICE_IP为- EXTERNAL-IP。- curl http://${K8S_SERVICE_IP}:8080/login?name=bruce- 可在GitHub log4j-appender-demo中查看完整的API集合。 
步骤四:在SLS控制台查看日志
您可登录SLS控制台查询并分析日志。
- 登录日志服务控制台。 
- 在Project列表中,单击目标Project,进入对应的Project详情页面。 
- 单击Logstore右侧的  图标,选择查询分析,查看集群输出的日志。 图标,选择查询分析,查看集群输出的日志。