【最佳实践】《微服务架构日志采集运维管理》手把手实操步骤与常见问题

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 根据阿里云《微服务架构日志采集运维管理》最佳实践文档实践步骤复现应用搭建的过程,同时总结归纳部分在应用搭载过程中遇见的问题与解决方案。

前提概要

场景描述:阿里云日志服务(SLS)结合Kubernetes日志特点以及应用场景,提供全方位的容器微服务应用环境下的日志采集、处理以及分析的实践。

产品列表:容器服务 Kubernetes 版、日志服务 SLS、专有网络 VPC、负载均衡 SLB、弹性计算 ECS、容器镜像服务 ACR、云数据库 RDS 版、智能解析 DNS。

解决问题:

  1. 容器微服务架构下日志采集困难;
  2. 日志采集 Agent 资源消耗多;
  3. 运维日志平台系统成本代价高;
  4. 日志分析方式少,日志分析不方便。

实践方案架构:


方案价值:

  1. 基于 Logtail 一键完成安装,CRD 扩展,与 K8S 部署管理方式无缝集成;
  2. 日志服务为 Ingress 提供可视化分析报表;
  3. 简化 Ingress 日志分析与监控的门槛。

日志采集部署建议:

  1. 核心应用:使用 SideCar 方式采集;
  2. 普通应用/系统日志:使用 DaemonSet 方式采集;
  3. 标准输出: 使用 DaemonSet 方式采集。



常见问题

CADT创建资源校验失败怎么办?

  1. 确定各个产品的权限已开通;
  2. 创建VPC网络与ACK的Service CIDR不能有网段交叉,以下为我创建时填写的参数,仅供参考:
  1. ACK的网段设置
  1. Pod 网络 CIDR:10.30.0.0/16
  2. Service CIDR:172.16.0.0/16

CADT资源创建成功后资源状态却又改为已删除?

  1. 确认选中的Region、AZ有无对应规格与资源;
  2. 确认对应资源名称是否已被占用,需要保证SLS等产品的名称变量全局唯一。

配置RDS 数据库需要注意什么?

  1. 配置RDS的白名单为VPC的网段,使得VPC内的设备实例可以访问该RDS。

  1. 配置RDS为企业版才可完成后续第10章RDS审计日志采集分析与监控的操作。

如何在容器中以VNC方式配置docker环境?

  1. 下载update:yum update

  1. 环境配置:docker-ce环境安装

步骤1:下载repo文件:curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

步骤2:安装containerd.io依赖:yum -y install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/containerd.io-1.2.6-3.3.fc30.x86_64.rpm

步骤3:下载docker-ce版本:yum -y install docker-ce


步骤4:启动docker并检查是否版本是否为ce版本

  • 启动docker服务:systemctl start docker
  • 将docker加入开机启动:systemctl enable docker
  • 重新加载docker服务程序配置文件:systemctl daemon-reload
  • 查看docker版本:docker version

如何在Docker中拉取镜像以及常见问题?

  1. 拉取原始镜像:docker pull wordpress

  1. 获取镜像ID与镜像版本:docker images | grep wordpress

易得镜像ID:5f9d748595e1,镜像版本:v1.0。

  1. 登陆镜像仓库并推送镜像

步骤1:登录阿里云Docker Registry:docker login --username=*****@test.aliyunid.com registry.cn-hangzhou.aliyuncs.com

ps****为阿里云账号前缀

步骤2:给镜像打标签:docker tag {镜像ID} registry.cn-hangzhou.aliyuncs.com/{镜像仓库命名空间}/{镜像仓库名称}:{版本号}

步骤3:将镜像推送到Registry:sudo docker push registry.cn-hangzhou.aliyuncs.com/{镜像仓库命名空间}/{镜像仓库名称}:{版本号}

ps:填写时需要删除{}

  1. 常见问题
  • docker login:提示host不存在:给镜像仓库开通公网访问权限
  • 提示volume不存在:更换namespace

拉取镜像时下载速度很慢或中途连接直接断掉拉取失败?

问题原因:docker的wordpress官方镜像源在国外,下载时网络质量极差,甚至中断。

解决方案:修改拉取镜像的json配置文件,镜像源改为阿里云国内网址。

  1. 在对应容器节点中远程登录实例,在/etc/docker/路径下创建vim daemon.json文件,文件内容如下:

{

"registry-mirrors": ["https://oojjt1xs.mirror.aliyuncs.com"]

}

  1. 再次执行docker pull wordpress命令即可快速下载拉取

根据镜像搭建无状态应用报错ErrImagePull && ImagePullBackOff?

问题原因:没有配置对应镜像拉取策略。

参考文档:使用免密组件配置镜像拉取策略

解决方案:

  1. 升级/安装aliyun-acr-credential-helper组件
  1. 在容器控制台集群列表页面,单击目标集群操作列下的更多 > 系统组件管理
  2. 在安全区域,找到aliyun-acr-credential-helper,单击升级
  1. 通过控制台方式设置acr-configuration配置项
  1. 在容器集群信息页面左侧导航栏,选择配置管理 > 配置项,在上方命名空间下拉框中选择kube-system,找到配置项acr-configuration
  2. 通过以下两种方式配置acr-configuration
  1. 方式一:单击其右侧的编辑,设置配置项键和值
  1. 如果您没有acr-configuration配置项,请参见创建配置项。关于如何更新配置项,请参见修改配置项
  1. 方式二:单击其右侧的YAML编辑,设置配置项键和值

搭建应用后访问路由地址显示Error establishing a database connection?

问题描述:无状态应用创建成功,但是用路由器Ingress提供的域名无法访问wordpress网页,会出现无法连接数据库的错误。

问题原因:由于wordpress的配置文件的yaml文件未配置环境变量导致的,配置数据库有关的环境变量后即可以连接上去。

解决方法:

步骤一:前往RDS数据库控制台,找到自己创建的数据库,点击左边目录栏的“数据库连接”,复制内网地址。

步骤二:继续点击数据库管理,记录数据库的名称、用户名。


步骤三:前往ACK容器管理控制台,点击进入自己创建的集群,点击进入自己创建的无状态应用中,点击查看Yaml


找到yaml文件中,配置环境变量的那一部分文件(可以看到-name,-value的那部分文件)在里面加上自己数据库的环境变量。


- name: WORDPRESS_DB_HOST
              value: '步骤一中复制的数据库的内网地址:3306'
            - name: WORDPRESS_DB_NAME
              value: 步骤二中记录的数据库的名称
            - name: WORDPRESS_DB_USER
              value: 步骤二中绑定账户的名称
            - name: WORDPRESS_DB_PASSWORD
              value: 账户对应的密码

修改后的结果,具体示意如下,修改完成后点击更新,耐心等待一会(半分钟)即可。

image.png

参考文献

微服务架构日志采集运维管理最佳实践

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3天前
|
监控 持续交付 开发者
构建高效微服务架构:从理论到实践
【2月更文挑战第25天】本文旨在深入剖析微服务架构的核心概念、设计原则以及实践中的关键技术挑战。通过探讨微服务的独立性、分布式特性和弹性机制,文章为读者提供了一套系统化的方法论,以指导如何构建和维护一个高效、可扩展且容错性强的微服务系统。文中将结合案例分析,展示微服务架构在真实业务场景中的应用,并提供性能优化和故障恢复的策略建议。
54 3
|
1天前
|
安全 数据管理 API
构建高效微服务架构:从理论到实践
【2月更文挑战第27天】 在数字化转型的浪潮中,微服务架构已成为企业追求敏捷、灵活与可扩展性的关键解决方案。本文将深入探讨微服务的设计原则、开发流程以及如何在实际项目中实现一个高性能的微服务系统。我们将通过分析微服务的核心优势,揭示其背后的技术挑战,并提供一系列切实可行的策略来优化微服务的性能和稳定性。文中不仅包含了丰富的理论依据,还结合了实际案例分析,为开发者和企业决策者提供了一套全面的微服务实施指南。
|
1天前
|
消息中间件 敏捷开发 运维
构建高性能微服务架构:策略与实践
【2月更文挑战第27天】 在当今快速迭代和持续部署的软件发展背景下,微服务架构因其灵活性、可扩展性和技术异构性的优势而成为众多企业的首选架构模式。然而,随之而来的复杂性管理和性能优化问题也不容忽视。本文深入探讨了构建高性能微服务架构的策略与实践,包括服务拆分原则、通信机制、数据一致性保障以及监控和故障处理等方面。通过分析具体案例和最佳实践,旨在为开发者提供一个清晰、高效的微服务性能优化路径。
|
2天前
|
监控 Kubernetes Docker
构建高效可扩展的微服务架构
本文将详细介绍如何构建高效可扩展的微服务架构,包括设计原则、技术选型和实施步骤。通过采用微服务架构,企业可以实现系统的解耦、灵活性和可伸缩性,提升开发效率和系统性能。
|
2天前
|
存储 Java 持续交付
构建高效微服务架构:从理论到实践
【2月更文挑战第26天】在现代软件开发的浪潮中,微服务架构已成为企业追求敏捷、可扩展和易于维护系统的重要解决方案。本文将深入探讨微服务的核心概念、设计原则以及如何在实际项目中实施微服务架构。我们将通过一个示例来揭示拆分传统单体应用的步骤,并讨论微服务架构在提高开发效率、支持快速迭代和优化资源使用方面的优势。同时,我们也将指出微服务实施过程中可能遇到的挑战,如服务发现、配置管理和分布式事务处理,并提出相应的解决策略。
|
2天前
|
监控 负载均衡 API
深入理解微服务架构下的API网关
【2月更文挑战第26天】在现代后端开发中,微服务架构已经成为一种主流的系统设计方式。本文将重点探讨微服务架构中的关键组件——API网关。我们将分析API网关的核心功能,包括请求路由、负载均衡、认证授权、监控和日志记录等。此外,文章还将讨论如何在实际项目中设计和实现一个高效、可扩展的API网关,以及它对微服务治理的重要性。通过本文,读者将获得对API网关在微服务架构中的重要作用和应用策略的深刻理解。
|
3天前
|
消息中间件 负载均衡 API
构建高效微服务架构:策略与实践
【2月更文挑战第25天】在数字化转型的浪潮中,微服务架构以其灵活性、可扩展性成为企业技术升级的关键选择。本文深入探讨了构建高效微服务架构的策略和实践方法,旨在为开发者提供一套系统的设计与实施指南。文中不仅阐述了微服务的核心概念和优势,还详细分析了在设计、部署和维护微服务过程中可能遇到的挑战及解决方案,同时结合案例分析,展示了如何在实际项目中落实这些策略。
|
4天前
|
消息中间件 Kubernetes Java
构建高性能微服务架构:从理论到实践
【2月更文挑战第24天】 在当今快速发展的数字化时代,微服务架构已成为软件开发领域的关键趋势。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、技术选型和性能优化策略。我们将通过实际案例分析,揭示微服务架构在提高可伸缩性、容错性和维护性方面的优势,并讨论在实施过程中可能遇到的挑战及其解决方案。
|
6天前
|
Kubernetes 开发者 Docker
基于容器技术的微服务架构
基于容器技术的微服务架构
12 0
|
5天前
|
消息中间件 缓存 持续交付
构建高效微服务架构:从理论到实践
【2月更文挑战第23天】 随着现代软件系统向着复杂且动态的环境演进,传统的单体应用架构已不足以应对快速变化的市场需求。微服务架构作为一种新兴的架构模式,以其灵活性、可扩展性和技术多样性受到广泛关注。本文将深入探讨微服务架构的设计原则和实施策略,通过具体案例分析如何构建一个既满足业务需求又保证系统稳定性的微服务系统。我们将讨论微服务拆分的策略、服务间通信的最佳实践、数据一致性的挑战以及持续集成与部署的重要性。文章的目的是为开发者、架构师和技术决策者提供一份实操指南,帮助他们在构建和维护微服务系统时做出明智的选择。

相关产品

  • 微服务引擎
  • 服务网格