《运维之下》——第七章:资产管理

资产管理平台是记录和管理企业IT架构中各种设备配置的信息平台。
在系统工作中,它与所有服务支持和服务交付流程都紧密相关,最大价值是支撑流程的运转。同时又依靠流程关联来保证数据的准确性。对上层服务管理平台,能通过API提供数据查询能力,如设备的硬件配置、机架位等信息;同时也提供服务器的重启、报修和系统重装等接口。
系统运维的早期阶段,主要是用Excel记录各种信息,用邮件来做各种流程审批。
随着业务的快速发展,设备数量爆发式增长,系统工作中的配置变更越来越频繁,信息遗漏变得非常严重,不断产生脏数据,已经不具备准确性和可用性。 同时对上层系统的查询需求也无法响应,这种靠Excel维护信息的方式已经不再适用。
我们开始在资产管理平台研发上投入专门的人力,并和工作流程强关联起来,通过流程保证资产平台数据的准确性。资产管理数据的准确性和功能完备性决定了整个系统运维的自动化程度。因此,要支撑公司不断增长的服务器运营,首先需要建立和维护一套基础架构的资产管理平台。

资产管理平台主要规划了配置管理、预算系统、故障管理和自助系统四大部分,如图7-1所示。

图7-1  资产管理平台规划的四大部分
业务通过预算系统提交服务器申请,系统工程师通过配置管理平台录入服务器信息,再通过API的形式将服务器信息同步给服务管理平台。
业务运维工程师可以通过调用自助系统对服务器进行重启、重装等操作。当服务器发生故障时,服务管理平台将服务器标记为故障节点,通过API的形式将服务器故障信息同步到故障管理平台进行维修,维修完成后故障管理平台也通过API将信息同步给服务管理平台。
当服务器要归还时,服务管理平台清除相关信息,通过API的形式将服务器同步给资产管理平台。


   配置管理  
  配置管理一直被认为是ITIL服务管理的核心,因此在系统运维中也是核心部分,它在结构上处于最底层。
为什么说配置管理的作用是核心的?举个例子。某服务器已经到了报废期,我们需要下架这台服务器,需要有系统记录这台服务器的数据中心、机架等属性,也需要记录这台服务器的硬件信息,依靠这些信息才能找到这台服务器。
但仅有这些信息还不够,仍需要知道这台服务器的使用者(即业务归属),通知其业务方将业务下线,确认下线后,需要再通知数据中心现场人员下架服务器,同时还需要释放服务器相关的其他资源,比如IP地址、ACL配置、LVS配置等,这一系列信息都需要由配置管理系统来维护和保存。因此可以看到,配置管理是一项非常重要又多信息关联的系统工作。
早期我们同样是用Excel记录数据中心、服务器(资产编号、参数、采购时间、供应商)、配件、网络设备、IP地址、ACL等信息。
随着设备数量的增加,配置变更频繁,又没有统一上线和变更流程,经常出现记录和实际有差别。比如服务器机架信息核对不上,设备实际用途和记录不符,甚至服务器下架了IP地址却没有释放,导致IP地址占用和冲突等问题。
通过配置管理系统的研发,强化了这些资产和配置信息的管理,准确度有显著提高,系统工作以及与外部系统的自动化联动开始向前发展。
在配置管理系统中,我们将各类信息管理定义成小的功能模块,通过API接口串联起来,实现灵活有序的方式管理各类资源。在机柜管理上开发机柜视图功能,把服务器的机架信息、位置占用等录入系统,在系统中可以非常直观地了解服务器的摆放情况、整体机柜使用率。
设备上线前由系统自动分配摆放位置,设备下线后自动释放资源,从而减少了手动分配的工作量。机柜管理还有一些高级功能,在网络规划中按照安全级别划分出了基础服务、普通业务和安全隔离三个区域,系统会按照设定的分配规则给不同的服务器分配不同区域的机柜。
比如,Hadoop等分布式业务对机架摆放有特殊要求,太分散不利于数据节点间的数据同步,太集中冗余度又不够,这些特别的需求都有特殊的分配策略。

通过定期扫描机柜使用率,可以及时调整和关闭空闲机柜,从而避免浪费。开发的iHealth具有运行功率实时监控功能,可以从服务器监控中采集电流信息,能统计出整个机柜的电量使用,进行机柜的超电预警。
在IP管理系统中,把内网、公网、VIP、管理卡都分别设定了不同的IP池,根据类型、机柜、业务的不同,通过管理接口分配和回收IP地址,从而减少了工程师手动分配和回收IP资源的烦琐工作,进一步保证了IP资源管理的准确性。IP管理和ACL管理等模块都有关联功能,在IP地址释放前都会查询并释放相应的ACL记录。

为每台设备设定一个唯一序号,作为主键使用,确保设备的唯一性标识。服务器在记录中的占比最大,网络设备其次。 在虚拟化部分中虚拟机也有唯一性标识,并和底层的物理服务器有关联记录,可以快速地查询物理服务器上承载了哪些虚拟机。和虚拟化部分有API关联,虚拟机的飘移会实时地更新记录。
为每台设备粘贴了对应的序号二维码标签。在收货、上下架、资产管理、设备报修等环节,通过扫描二维码的方式进行信息的变更和查询,极大地提高了设备管理的效率和准确性。二维码系统设有权限管理,比如现场的维修人员和系统管理员获取的信息量是不同的,主要是出于安全考虑。
经常会遇到IP地址随着服务器下线释放,但ACL没有及时清理的问题,久而久之,积累的ACL记录很容易达到设备的上限,存在一定的安全隐患。
我们遇到过一个真实的安全案例,两个区域隔离的交换机由于设备BUG的问题,在ACL条目达到上限后并没有任何错误提示,还可以添加ACL记录,但原有的ACL记录完全失效,导致两个区域的隔离失效,带来了安全问题。

随后我们上线了ACL管理功能,业务通过系统发起ACL申请,完成审批后由工程师进行变更操作;ACL和IP资源联动,及时清理无效的ACL记录;对ACL记录匹配次数进行监控,对于长期未使用的记录进行人工检查和清理。同时,我们提供API接口,安全人员通过接口获取ACL记录信息,扫描验证ACL记录的有效性。



  预算系统  
  在早期运维中,设备采购数量少,申请采购主要依赖邮件审批的模式。系统组负责整理汇总各个需求邮件,再进行统一采购上架,流程非常烦琐,而且容易有遗漏的地方。采购的进度也不透明,业务线无法及时获知进度。
为了简化和规范设备采购的方式,我们上线了预算系统,该系统作为设备资源的唯一入口,包括服务器、网络设备、配件等。
对于服务器资源,支持实体机、基于OpenStack的私有云、公有云以及整机租赁等多种资源的申请。私有云和公有云等通过调用API创建虚拟机,同步录入管理系统;对于租赁的实体服务器通过API下单;自购的服务器先从资产管理系统查询是否有满足需求的备机资源,如果没有再发起采购。
预算系统和监控系统的资源利用率对接,为业务申请采购服务器提供数据说明。当业务运维在采购管理系统发申请之后,审批人根据已有的资源使用情况来审核申请的合理性。

  故障管理系统  
  随着服务器数量的增多,每天发生故障的服务器的数量也呈线性增长。早期系统工程师需要逐台定位服务器故障原因,和业务部门沟通停机时间以及跟进供应商的报修,效率非常低下,业务部门也常常因为故障服务器维修周期长而增加烦恼。为了改善故障持续增长造成的维修效率低下,开发了故障管理系统。
通过监控插件来上报故障信息,并完善插件使输出的故障信息详细、准确,能直接将信息发给数据中心现场或供应商来解决,比如磁盘故障会定位到槽位等。
通过服务管理平台将收集到的监控插件上报的数据信息展示在页面中,相应的负责人可以查询到自己的服务器故障信息,在负责人确认服务停止之后直接点报修。
故障管理系统通过API和服务管理平台同步故障信息, 系统汇总整理后通过邮件或对接的API分别发送给供应商和数据中心现场。由于邮件中有供应商和数据中心维修需要的各类信息,所以基本上普通故障在两个工作日内就能修复,修复好后也无须人工确认,监控上报信息中自然会消除相应的故障信息。
如有需要手工干预的操作,也会通过监控系统体现出来,比如磁盘需要重新挂载和格式化等。故障都消失后,更改设备状态,即可交付给业务。故障管理系统大大提高了报修的效率,也提高了硬件监控的准确性和有效性,为线上服务的稳定运行提供了底层支持。
故障管理系统建设的上下游是应用运维和供应商,需要大家一起来协调工作,为了配合默契,一起约定梳理了一些标准。
① 故障信息的描述 早期报障需要应用运维人员填写描述信息,不统一、不标准,对诊断和定位故障影响较大。后来约定的方案是先将常见故障分类,实现自动化采集并分类。开发了监控和识别的程序,自动发现和告警给应用运维,由他们判断是否需要报障维修。针对常见故障以外的案例,通过人工分析和识别重新定义到故障类型中。

② 维修前是否要和应用运维确认 早期在维修服务器前要和业务沟通好时间,业务停止服务后再修,花在沟通和跟进进度上的时间非常多。维修前需要确认停服的根本原因是维修的周期较长,很多时候故障服务器仅仅是在排队维修,而这类服务器依然可以正常工作,所以业务方希望仅仅是在维修的时候再暂停服务。
后来达成共识,应用运维要停完服务后提交报障,系统组承诺在一定时间内修复完毕,若是无法完成,需要提供备机。当然,由于承诺了对不同故障类型的响应和维修时间,也就无须反馈维修进度,应用运维也不会再询问,大大减少了沟通时间。

③ 和供应商定义诊断方式和处理机制 早期对于服务器故障定位都是系统组人员和供应商的工程师一起完成的,无法自动化,后来和供应商沟通,让其提供各类故障定位工具,并将相应的日志作为更换配件的标准,也和供应商对不同级别的故障响应和处理时间达成一致,方便批量报修。


  自助系统  
  为了更方便地对服务器进行操作,开发建设了一些自助系统,主要有以下功能。
① 自助查询功能 当交换机发生故障或有计划割接时,可以通过交换机维度查询到同一接入交换机的所有服务器列表,从而达到快速的通告效果。业务线可以通过自助查询页面批量输入主机名查询服务器在数据中心中的分布情况,为业务的冗余性部署做准备。还可以通过源IP地址和目的IP地址查询ACL规则等。

② 自助重装、重启功能 在系统运维平台中开发了自动重装和重启功能,逐步地开放给了应用运维,应用运维在工作平台中可以直接调用API完成OS重装工作。发生故障时可以自助地重启、停机,提高了应用运维对故障的响应时间,也避免了系统工程师的重复性机械工作。
③ 屏幕截图功能 程序异常时可能导致kernel panic,在这种情况下一般需要系统运维登录管理卡查看服务器屏幕状态并截图给业务定位故障。后来开发了屏幕截图功能,并通过API给服务管理平台使用,业务运维只要在网页中点击按钮就能看到服务器的屏幕截图,如图7-2所示。

图7-2  自助服务器屏幕截图功能

通过资产管理系统的建设,资产和配置的准确性得到了有效保障,系统运维的效率大幅提升,系统日常运维走出了依靠人工信息维护的初级阶段。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Chemex是一个免费、开源、现代化设计的信息资产管理运维平台。软硬件资产管理、归属/使用者追溯、盘点。基于优雅的Laravel框架开发。附移动端工具、OTA升级。 Chemex是一个轻量的、现代设计风格的ICT设备资产管理系统。得益于 Laravel 框架以及 Dcat Admin 开发平台,使其具备了优雅、简洁的优秀体验。 Chemex是完全免费且开源的,任何人都可以无限制的修改代码以及部署服务,这对于很多想要对ICT资产信息管理的中小型企业来说,是一个很好的选择、低廉的成本换回的是高效的管理方案,同时又有健康的生态提供支持。 系统拥有以下模块: 设备台账管理 其中包含了设备的名称、所有软硬件、制造商、购入日期、保护日期、IP地址、MAC、使用者等维护内容,同时拥有设备相关历史记录。 支持在线 SSH 远程访问管理设备。 设备归属到使用者。 设备故障报告。 硬件台账管理 其中包含了硬件的名称、规格、序列号、归属设备管理等维护内容,同时拥有硬件相关历史记录。 设备故障报告。 软件台账管理 其中包含了软件的名称、版本、分发方式、授权方式、购入金额、序列号、授权数量管理等维护内容,也有软件相关历史记录。 雇员管理 雇员清单。 部门清单。 服务程序管理 其中包含了服务程序所在的宿主服务器、服务状态、异常报告等。 服务程序异常的修复。 首页特别的看板。 盘点管理 设备、硬件、软件盘点任务的创建、完成和取消。 盘盈盘亏。 指定盘点负责人员。 Chemex Tool 移动端盘点工具。 数据图表 各模块的基础数据。 各服务状态实时展示,包括异常内容,发生时间和恢复时间。 盘点进度展示。 多国语言 目前暂时最优支持中文简体,后续会发布英文语言,同时会支持语言切换。 私有化部署 是的,只需要一个 LNMP 环境,就可以无限制的私有化部署。 OTA升级 已经支持了在线升级,不用本地手工进行版本维护。 环境要求: PHP 7.3 + MariaDB 10.5 + ext-zip 扩展,注意和 PHP 版本相同 ext-json 扩展,注意和 PHP 版本相同 源码开发依赖于 composer 包管理器。 生产环境部署: 生产环境下为遵守安全策略,我们非常建议在服务器本地进行部署,暂时不提供相关线上初始化安装的功能。因此,虽然前期部署的步骤较多,但已经为大家自动化处理了很大部分的流程,只需要跟着下面的命令一步步执行,一般是不会有部署问题的。 1、为你的计算机安装 PHP 环境,参考、PHP官方 。 2、为你的计算机安装 mariaDB ,并且有可以使用的 mariadb-client 客户端工具,一般安装完 MariaDB 会自动安装,如果在 Ubuntu 上可能需要另外执行 sudo apt install mariadb-client 进行安装。 3、创建一个数据库,命名任意,但记得之后填写配置时需要对应正确,并且数据库字符集为 utf8-general-ci。 4、下载 发行版 ,解压得到程序目录,放置到你想要放置的地方。 5、在项目根目录中,复制 .env.example 文件为一份新的,并重命名为 .env。 6、在 .env 中配置数据库信息。 7、执行 php artisan chemex:install 进行安装。 8、你可能使用的web服务器为 nginx 以及 apache,无论怎样,应用的起始路径在 /public 目录,请确保指向正确。 9、修改web服务器的伪静态规则为、try_files $uri $uri/ /index.php?$args;。 10、为了确保在线自动更新可用,请确认网站根目录及其所有子目录的权限为 755,拥有者为 www。 开发环境部署: 欢迎对此感兴趣的开发者进行协同开发,使 Chemex 更趋于完美。开发过程相对于简单,没有过多的环境配置和改动。 1、为你的计算机安装 PHP 环境,参考、PHP官方 。 2、安装 composer 包管理工具,参考、composer官方 。 3、进入项目根目录,执行 composer install以安装相关依赖。 4、在项目根目录中,复制 .env.example 为 .env。 5、编辑 .env 文件中的数据库连接配置相关字段。 6、仍然在项目根目录中,执行 php artisan migrate 进行数据库迁移。 7、参考 Laravel 以及 Dcat Admin 相关文档进行开发。     Chemex资产管理运维平台 更新日志: v3.0.9 修复 自定义字段排序在列表页面中无效的问题。 自定义字段排序在字段选择下拉框中无效的问题。 自定义字段排序在详情页中无效的问题。 待办无法删除的问题。 新增 为观察者角色增加了盘点相关权限。 增加了阅读通
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值