为 Kubernetes 和日志服务配置 Log4JAppender
本文介绍在不需要修改应用代码的前提下,通过配置一个 yaml 文件,将阿里云容器服务 Kubernetes 集群中产生的日志输出到阿里云日志服务。此外,通过在 Kubernetes
集群上部署一个示例 API 程序,来进行演示。
前提条件
- 您已经开通容器服务,并且创建了 Kubernetes 集群。
本示例中,创建的 Kubernetes 集群位于华东 1 地域。
- 启用 AccessKey 或 RAM,确保有足够的访问权限。本例中使用 AccessKey。
背景信息
Log4j 是 Apache 的一个开放源代码项目。Log4j 由三个重要组件构成:日志信息的优先级、日志信息的输出目的地、日志信息的输出格式。通过配置 Log4jAppender,您可以控制日志信息输送的目的地是控制台、文件、GUI
组件、甚至是套接口服务器、NT 的事件记录器、UNIX Syslog 守护进程等。
操作步骤
- 在阿里云日志服务上配置 Log4jAppender。
- 登录 日志服务管理控制台。
- 登录 日志服务管理控制台。
- 单击页面的创建 Project,填写 Project 的基本信息并单击确认进行创建。
本示例创建一个名为 k8s-log4j,与 Kubernetes 集群位于同一地域(华东 1)的 Project。说明 在配置时,一般会使用与 Kubernetes 集群位于同一地域的日志服务 Project。因为当 Kubernetes 集群和日志服务 Project 位于同一地域时,日志数据会通过内网进行传输,从而避免了因地域不一致而导致的数据传输外网带宽费用和耗时,从而实现实时采集、快速检索的最佳实践。
- 创建完成后,k8s-log4j 出现在 project 列表下,单击该 project 名称,进入 project 详情页面。
- 默认进入日志库页面,单击右上角的创建。
- 填写日志库配置信息并单击确认。
本示例创建名为 k8s-logstore 的日志库。
- 创建完毕后,页面会提示您创建数据接入向导。
- 选择自定义数据下的log4jAppender,根据页面引导进行配置。
本示例使用了默认配置,您可根据日志数据的具体使用场景,进行相应的配置。
- 在 Kubernetes 集群中配置 log4j。
本示例使用 demo-deployment 和 demo-Service 示例 yaml 文件进行演示。
- 连接到您的 Kubernetes 集群。
具体操作参见SSH访问Kubernetes集群 或 通过 kubectl 连接 Kubernetes 集群。
- 获取demo-deployment.yaml文件并配置环境变量
JAVA_OPTS
设置 Kubernetes 集群日志的采集。demo-deployment.yaml 文件的示例编排如下。apiVersion: apps/v1beta2 kind: Deployment metadata: name: log4j-appender-demo-spring-boot labels: app: log4j-appender spec: replicas: 1 selector: matchLabels: app: log4j-appender template: metadata: labels: app: log4j-appender spec: containers: - name: log4j-appender-demo-spring-boot image: registry.cn-hangzhou.aliyuncs.com/jaegertracing/log4j-appender-demo-spring-boot:0.0.2 env: - name: JAVA_OPTS ##注意 value: "-Dproject={your_project} -Dlogstore={your_logstore} -Dendpoint={your_endpoint} -Daccess_key_id={your_access_key_id} -Daccess_key={your_access_key_secret}" ports: - containerPort: 8080
说明 其中:-Dproject
:您所使用的阿里云日志服务 Project 的名称。本示例中为 k8s-log4j。-Dlogstore
:您所使用的阿里云日志服务 Logstore 的名称。本示例中为 k8s-logstore。-Dendpoint
:日志服务的服务入口,用户需要根据日志 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文件,并运行以下命令创建 service。
您不需要修改demo-Service.yaml中的配置。
kubectl create -f demo-service.yaml
- 连接到您的 Kubernetes 集群。
- 测试生成 Kubernetes 集群日志。
您可以使用
kubectl get
命令查看资源对象部署状况,等待 deployment 和 service 部署成功后,执行kubectl get svc
查看 service 的外部访问 IP,即 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
命令来测试生成 Kubernetes 集群日志。其中K8S_SERVICE_IP
即为EXTERNAL-IP
。说明 您可以在 GitHub log4j-appender-demo 中查看完整的 API 集合。curl http://${K8S_SERVICE_IP}:8080/login?name=bruce
- 在阿里云日志服务中查看日志。
- 在Project列表中,单击目标Project,进入对应的Project详情页面。
- 在对应的日志库 k8s-logstore右侧的
图标,选择查询分析,查看 Kubernetes 集群输出的日志,如下所示。
发布者:佚, 佚名,转转请注明出处:https://www.cms2.cn/aliyun/csk/5359.html

相关推荐
-
查看容器组
您可以通过Web界面查看容器组(Pod),并进行相关的操作。 通过容器组页面进行查看 登录容器服务管理控制台。 在 Kubernetes 菜单下,单击左侧导航栏中的应用 > 容器组,进入容器组页面。 选择所需的集群和命名空间,选择所需的容器组,单击右侧的详情。 说明 您可对…
-
创建配置项
在容器服务管理控制台上,您可以通过配置项菜单创建配置项。 操作步骤 登录容器服务管理控制台。 在 Kubernetes 菜单下,单击左侧导航栏中的应用配置 > 配置项,进入配置项列表。 在配置文件列表页面,选择需要创建配置项的集群和命名空间,然后单击创建配置项。 输入配置项…
2019年12月13日 -
通过负载均衡(Server Load Balancer)访问服务
您可以使用阿里云负载均衡来访问服务。 背景信息 如果您的集群的cloud-controller-manager版本大于等于v1.9.3,对于指定已有SLB,系统默认不再为该SLB处理监听,用户可以通过设置service.beta.kubernetes.io/alibaba-clo…
-
纳管集群接入日志服务教程
纳管集群接入日志服务能为分布在各处的 Kubernetes 集群提供统一的管理方式。本文介绍如何通过容器服务 Kubernetes 版中的应用将日志服务接入至外部Kubernetes 集群。 前提条件 您已通过容器服务 Kubernetes 版接入一个外部的 Kub…
2020年1月16日 -
纳管集群接入应用实时监控服务ARMS教程
纳管集群接入应用实时监控服务ARMS能为分布在各处的 Kubernetes 集群提供统一的管理方式。本文介绍如何通过容器服务 Kubernetes 版中的应用将应用实时监控服务ARMS接入至外部 Kubernetes 集群。 前提条件 您已通过容器服务 Kubernetes 版接…
2020年1月16日 -
容器服务怎么基于虚拟节点部署 Ingress 应用?
本文主要介绍在虚拟节点上部署Ingress应用,使得集群无需创建新节点即可为该应用扩充无限容量,满足业务高峰低谷的弹性需求。 前提条件 您已经部署了一个虚拟节点。请参见虚拟节点。 您已经给namespace vk打上virtual-node-affinity-injection:…