带你读《云上自动化运维宝典》——多云基础设施的统一纳管与运维实践分享(2)

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 带你读《云上自动化运维宝典》——多云基础设施的统一纳管与运维实践分享(2)

更多精彩内容,欢迎观看:

带你读《云上自动化运维宝典》——多云基础设施的统一纳管与运维实践分享(1):https://developer.aliyun.com/article/1405374


3. 多云服务器的高效运维

在这一部分,将分享关于企业组织在使用多云时对于主机统1. 高效运维的需求,以及阿里云CloudOps所推荐的最佳实践。云服务器的高校运维是所有用户不断追求的目标,可以划分为效率、安全、成本三个维度,接下来将从这三个维度分别介绍用户所面临的问题、挑战以及对应的解决方案。

image.png

1) 通过自动化,实现高效运维

为了提升效率,就一定离不开自动化的运维通道。当用户拥有的服务器数量越来越多时,则希望有一个任务调度系统,能够帮助用户自动地管理和运行,包括批量执行操作,设置定式任务或执行自动化脚本。

image.png

1)用户诉求:由于服务器的多样性,用户希望系统能够支撑各类的操作系统和各种脚本语言,以及覆盖到多家云的各种系统的主机;其次,用户希望它不依赖主机的登录凭据,因为管理登录凭据是一种既危险又麻烦的事情;再次,用户还希望有更丰富的任务调度、创行执行任务等等。

 

为了实现多云主机的统一高效运维,云助手与运维编排工具正是为解决这些问题所准备的。多云主机在注册到云助手,成为托管实例之后,就可以像ECS服务器一样,通过使用云助手,对服务器进行自动化的运维,例如安装程序、启停服务、修改配置文件以及分发文件等。作为多云的用户,再也不需要学习和使用不同的云平台,分别运维各家的云服务器,

 

而是可以像使用ECS一样,通过使用云助手和运维编排等工具实现统一自动化的愿望。

 

2)运维手段和途径:可以使用阿里云控制台或阿里云CLI编写自动化脚本或阿里云SDK,可以使用多种语言在自己的组织的应用内集成自动化运维的功能。到此为止,多云的用户通过将多云主机托管到云助手,即满足了统一纳管、统一运维的需求,屏蔽掉了不同云平台差异,提高了工作效率。

 

2) 统一监控多云服务器

关于服务器运维,另一项基础需求是:用户拥有较多的服务器和应用时,希望能够对服务器的状态、应用的状态,进行统一的监控,及时发现问题和风险并提前进行处理。

 

image.png

 

在多云主机注册为托管实例后,就会出现在云监控的控制台上。在这里,可以选择继续安装云监控采集组件,对其进行统一的、集中的监控。且所有的云监控功能与ECS实例完全一致,例如设置报警规则,当主机的CPU使用率或内存使用率超过指定阈值时,就产生一条报警记录并且推送给相关的人员,让他们能够及时发现现场的问题。如果需要同时监控多个机器,可以使用应用分组。在一个应用分组内,可以只有ECS实例,或者只有托管实例,也可以将托管实例和ECS实例自由组合,放在同一个分组下一起监控。

 

到目前为止,在非阿里云主机注册成为托管实例后,就拥有了与ECS实例完全一致的两种能力:自动化运维能力和主机监控能力。托管实例可以被单独进行监控,也可以加入应用分组与其他主机一起监控。当监控指标超过临界值的时候,可以通过设置报警规则,接收短信、电话等通知;对于报警信息的接收者,能够及时感知服务上发生的风险,及时分析和处理报警内容,防止问题的继续演化。

3) 自动处理报警事件

常见报警的处理过程,会逐渐积累经验,并走向完善,最终演变成一条有着固定处理的套路。到了此阶段,用户会期望让系统自动参与处理,减轻人工负担,降低出错的概率,提高操作的效率。下面,将通过两个示例说明,如何借助云平台上现有的能力实现自动化的报警处理流水线。

image.png

 

1)示例一:监控指标触发自动运维

如左图所示,当磁盘空间不足时,自动触发清理程序。某天监控报警,反馈某主机磁盘剩余空间不足,立即进行处理,否则会影响线上正常业务的运行。经过一通的排查和分析,最后发现是因为操作系统几个应用程序的日志和临时文件数量较大,占据了磁盘的许多空间,此时对应的处理办法是把每种日志删除一部分,直至磁盘的剩余空间充足。

 

该过程的自动化流程如下:借助运维编排工具在运维编排上创建一个监控事件处理工作流监控主机的磁盘使用率,目的是在其即将到达报警临界值之前,调用云助手运行磁盘清理脚本,删除不需要保留的文件。这样,就达到了预防报警和消除报警的自动运维的目的。

 

2)示例二:监控指标触发应用扩容

如右图所示,当系统负载较高时,如何使其自动扩容或缩容。某天监控报警上报,某主机的CPU使用率过高,且应用响应时间变慢,再次立即进行处理。经过使用者的一番处理和分析,发现是因为线上业务流量逐渐增长,将要超出服务器的负载能力,此时就会对系统进行扩容,那么该流程如何进行自动化处理?在后面的内容中将会展开介绍。

4) 保障服务器运维的安全

在前面的内容中提到了在管理和运维多云服务器时用户对于运维效率的需求以及利用现有服务提高运维效率的方法。这里了解用户的另一类需求,当用户在云服务器上执行运用操作时,虽然已经获得了相关的授权,但在授权范围内,用户的应用有所限制,在其需要做出相应行动时进行对应的操作,且需要保持操作的可靠性与合法性。

 

若线上出现了事故,如重要的数据和文件被意外删除,如何找出背后是谁在操作?是在哪个时间操作的?操作的范围有哪些?具体删除的文件有哪些?此时,则需要有用于操作审计的能力。

 

image.png

在阿里云上,可以通过查看云助手的命令执行记录,直观查看指印主机、指定用户的所有操作记录、每一条命令的内容,以及执行产生的结果和影响。通过查看云助手的命令执行记录,虽然可以了解每次的操作内容,但也有不便之处,需要一条一条逐个查看。如果用户希望通过按关键字来搜索吗,则可以选择将操作记录投递到自己的SLS日志库中,利用SLS日志强大的全文搜索能力,帮助使用者快速定位到所有有关操作。

 

另外,云助手自带的命令记录,系统保存时间是有限的。用户如果希望延长时间,可以选择将操作记录投递到自己的OSS对象存储文件中,从而实现长期和低成本的保存。通过操作审计,其他用户可以有权限的人一样,可查看所有用户的操作历史。对于可疑的操作,也可以做到追踪和定责。

5) 审计与保密的冲突问题

但在一些特殊的场景下,也会产生矛盾。操作者的操作内容中包含有高度机密的内容,不希望轻易的其他人查询。这里以Linux的修改用户密码为例,Linux下通过命令echo root:NewPassword|chpasswd程序来修改密码。

image.png

 

1)明文密码的使用问题

在命令提交的内容里,包含有NewPassword新密码的内容,由于命令内容是明文传输的,会被其他人所看到,可能产生密码泄漏。而且从发送命令到执行命令,在系统的链路上也非常容易留下痕迹,也可能暴露密码。那么,用户就会希望在不违反操作审计的原则下,加密命令中的特殊内容,防止重要的信息被其他人查看,产生泄露等。

 

这时,可以使用云助手的数据加密能力,实现安全地发送的机密内容等功能,保证任何其他的人,都没法获取到真正的密码。

2)内容加密的使用方式和使用步骤

①向云服务器发送一条请求,要求在云服务器内部生成一个临时的非对称密钥对;

②在云服务器内部,云助手收到请求后,将生成一个临时密钥对,并且把公钥内容返回给到用户;

③用户在自己的本地环境中,使用公钥加密原先的NewPassword,获得加密后的内容;

④用户再次发送新的命令,命令中包含使用指定的密钥解密被加密的内容,以及使用解密后的结果,再用于修改密码。

 

在这个过程中,由于使用的是非对称密钥,而且私钥只存在于云主机内,所以任何其他的人都无法获取,从而解密出原始的密码,进而保护了用户的机密内容安全。

6) 安全与便捷的远程登录

1)服务器远程登录的安全问题

云上服务器运维的另一个常见的使用场景是远程登录。因为在云服务器内,凡是发生了仍未被自动化解决掉的问题,就需要相关人员远程登录到服务器内,手动操作进行排查和解决。在远程登录时,就会遇到这样几个问题:

 

image.png

 

多数的人会使用帐号和密码登录,而大多数人很难记住很多的密码,所以往往只是使用了几种相似的密码用在各种网络帐号上。但是在网络上,却有着着层出不穷和防不胜防的窃密手段,例如字典攻击、暴力破解、网络钓鱼、彩虹表攻击、键盘攻击、爬行搜索等,很可能某个常用的密码早已被泄漏,并且在黑市上交易了数次,只是自己还未觉察。

 

使用账号密码登录比较危险,若改用SSH密钥登录,一般需要服务器公网IP,云服务器一旦有了公网IP,也会面临着网络上的各种攻击风险,例如TCP重置攻击、模拟攻击、中间人攻击、DDoS攻击等,防不胜防。不仅如此,用户还需要谨慎管理服务器的帐号与凭据,管理云服务器防火墙设置,管理主机帐号的分配和回收,万一工作有疏漏,就可能会产生安全性事故。

 

服务器的安全管理和快捷访问两方面的需求,难以两全其美。如果遇到了类似的问题,可以尝试使用ECS的会话管理服务,可以完美解决上面所提到的的各种问题。

 

第一,在使用会话管理服务时,不需要服务器有公网IP,即可避免暴露在公网上,也就免除了被攻击的可能性。

 

第二,远程登录不需要输入账号名和密码,也就避免了密码密钥管理和记录的负担,同时也避免了密钥系路发生风险。第三,能够保证权限被适当使用,这一点依靠会话管理将权限控制统一管理和分配用户的连接权限。

 

接下来介绍会话管理功能实现的方法及好处:

 

image.png

 

2)会话管理实现功能的原理

会话功能以会话管理服务器+云助手Agent作为桥梁,在用户请求建立连接时,建立三条连接,并且在这三条连接上转发两端的输入和输出,从而实现用户到实例的互通。这里的两个端,一端是指用户侧的终端或端口连接程序,例如shell终端或TCP端口监听;另一端是指云服务器内的SHELL终端或TCP端口。

这里的三条连接,分别是指:

 

∙        编号3:从用户工作环境到云助手会话管理器的 WebSocket 连接

∙        编号4:从云助手Agent到云助手会话管理器的 WebSocket 连接

∙        编号5:从云助手Agent到云主机内的Shell终端或TCP端口连接

3)会话管理的好处

从链路和原理中可以看出,由于云服务器主动连接到了会话管理服务器,且云服务器不需要接收连接请求,也就不需要有公网IP和端口监听,因此,也就避免了暴露在互联网上,避免了对外部攻击的可能性,保障了系统的稳定和安全。

 

在云服务器内部,由云助手负责连接到终端程序,可以省略掉输入用户名和密码的环节,而用户的远程登录权限是在第一步用户请求建立连接时由RAM访问控制系统负责管理和校验的。因此,用户在不需要提供用户名/密码密钥的情况下就可以实现从本地远程连接到云服务器,而且由RAM控制系统统一管理用户的权限,不仅可以做到灵活地分配,也可以做到灵活地回收。在会话管理服器转发用户侧和实例内部的数据时,如果用户选择了开启会话审计功能,会话管理服务器就会分析和整理会话的内容,将整理后的结果投递到用户的SLS日志库中,方便于用户后续的分析、操作和审计。

 

而且,会话管理整个链路使用了标准的WebSocket协议,如果企业要将会话管理功能集成在企业内部的运营中,也可以方便地编写自己的程序进行实现,关注企业内的用户,实现免公网IP、免账号密码地远程登录阿里云现有的在线工具,包含ECS,且阿里云客户端也支持有会话管理的连接入口和功能。


更多精彩内容,欢迎观看:

带你读《云上自动化运维宝典》——多云基础设施的统一纳管与运维实践分享(3):https://developer.aliyun.com/article/1405372

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
26天前
|
运维 监控
现代运维中的自动化技术应用与挑战
现代运维工作中,自动化技术的应用已成为提高效率、降低成本的重要手段。本文探讨了自动化技术在运维领域的应用现状和挑战,包括自动化工具的选择、实施过程中的注意事项以及未来发展趋势。通过深入分析,帮助读者更好地理解和应用自动化技术,提升运维工作效率。
13 2
|
2天前
|
运维 监控 安全
构建高效自动化运维体系:策略与实践
【4月更文挑战第25天】在数字化转型的浪潮中,企业IT基础设施日趋复杂多变,传统的手动运维模式已难以满足快速响应和高效管理的需求。本文探讨了构建一个高效自动化运维体系的关键环节,并结合实际案例分析,提出了一系列切实可行的策略与实践方法。文章着重分析了自动化工具选择、流程设计优化以及持续监控的重要性,并讨论了如何通过这些手段降低运维成本,提升系统稳定性和安全性。
|
11天前
|
敏捷开发 监控 前端开发
深入理解自动化测试框架Selenium的架构与实践
【4月更文挑战第16天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加快迭代速度的关键手段。Selenium作为一种广泛使用的自动化测试工具,其开源、跨平台的特性使得它成为业界的首选之一。本文旨在剖析Selenium的核心架构,并结合实际案例探讨其在复杂Web应用测试中的高效实践方法。通过详细解读Selenium组件间的交互机制以及如何优化测试脚本,我们希望为读者提供深入理解Selenium并有效运用于日常测试工作的参考。
15 1
|
11天前
|
自然语言处理 测试技术 API
深入理解自动化测试框架Selenium的设计理念与实践
【4月更文挑战第15天】 在现代软件开发过程中,自动化测试已成为确保产品质量和加速迭代的关键手段。Selenium作为一种广泛使用的自动化测试框架,提供了对多种浏览器和平台的支持,极大地促进了Web应用的功能测试。本文旨在剖析Selenium的核心设计理念,探讨其在实际项目中的应用,并指出常见的误区及最佳实践,以期帮助测试工程师更高效地利用Selenium进行测试工作。
|
11天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
12天前
|
测试技术 持续交付 Docker
Django中的自动化部署与持续集成实践
【4月更文挑战第15天】本文介绍了Django项目中自动化部署与持续集成的实践方法。自动化部署通过选择Ansible、Fabric或Docker等工具,编写部署脚本,配置持续集成工具(如Jenkins、GitLab CI),确保服务器环境一致,实现快速应用上线。持续集成则涉及配置版本控制系统,设置自动化构建和测试,编写全面的测试用例,集成代码质量检查工具,并配置通知机制,以提升代码质量和开发效率。这两者结合能有效提升项目的迭代速度和可靠性。
|
13天前
|
人工智能 运维 监控
构建高效自动化运维体系的实践与思考
【4月更文挑战第14天】在数字化转型的浪潮中,自动化运维作为提升系统稳定性和效率的关键手段,受到了企业的广泛关注。本文将深入探讨如何构建一个高效的自动化运维体系,涵盖从基础设施的搭建到流程的优化等多个方面。通过分析当前自动化运维的挑战及解决方案,文章旨在为读者提供一套实用的策略框架,帮助企业实现运维工作的高效化、标准化和智能化。
|
18天前
|
运维 监控 Kubernetes
构建高效自动化运维体系的实践与思考
【4月更文挑战第8天】在数字化时代,IT基础设施的复杂性日益增加,传统的手工运维模式已经难以满足快速响应和高效率的需求。本文将探讨如何通过自动化工具和策略构建一个高效的自动化运维体系,旨在提高系统的稳定性、减少人为错误以及优化资源分配。文章首先分析了自动化运维的必要性,接着介绍了实现自动化的关键技术和工具,并通过案例分析展示自动化运维体系的实际效果。最后,对自动化运维的未来发展趋势进行了展望。
|
21天前
|
机器学习/深度学习 传感器 运维
提升数据中心效能:智能运维策略与实践
【4月更文挑战第6天】在数字化时代,数据中心作为企业信息架构的核心,其稳定性和效率直接影响到业务连续性和客户满意度。随着技术的进步,传统的数据中心运维模式已经不能满足现代高效、智能化的需求。本文将探讨如何通过智能运维(AIOps)策略,结合大数据分析和机器学习技术,实现数据中心的自动化管理、故障预测及快速响应,以提升整体效能并降低运营成本。
|
1月前
|
运维 监控 数据可视化
现代化运维管理系统的关键特性及实践应用
随着信息技术的迅猛发展,现代企业对于运维管理系统的需求日益增长。本文将探讨现代化运维管理系统的关键特性,以及在实际应用中的重要性和优势所在,帮助企业更好地理解和应用现代化运维管理系统。
15 2

热门文章

最新文章