互联网发展到如今,对于一般企业线上线下机器成千上万数量级已经是司空见惯。对于运维人员来说,手动去管理那一万台机器,简直就是无法完成的任务。随之而产生的 是运维自动化,帮助运维人员管理监控那一堆跑着各种各样服务的机器。其实,到了今天这种地步,运维自动化早就是一种家常便饭的事情。开源社区或者是商业软件有非常多监控、运维管理平台。但是,就像穿衣服一样,不是任何一件衣服穿上身都合适。所以,可以根据自己的情况,量身定做合适的自动化管理平台,应该也是一个慢慢积累过程才对。
1、需求分析
管理机器:增加删除管理机器功能。
运营项目:增加删除管理项目功能。
监控报警:对机器、项目监控报警。
问题跟踪:机器、项目出现问题时,提供信息协助问题追踪。
角色管理:对登录自动化管理平台用户角色管理功能。
其他内容:其他一些后续拓展功能。
2、框架设计
运维自动化管理平台总体框架如下图,提供一个对外管理接口进行操作,包括:对象管理、目标管理、角色管理、分析问题、运行信息、其他管理等六个方面。下面将对该六个模块简单分析,但是不再进行详细的图标说明。
2.1对象管理
管理对象分组、对象个体,录入对象详细信息。批量发送指令管理对象,获取对象系统常见配置信息,管理对象系统常见配置。
2.2目标管理
管理目标分组、目标个体,录入目标服务信息。自动化上传目标依赖文件到对象,自动化部署运行服务。包括:批量上传、批量部署、发送管理目标服务指令。
2.3角色管理
划分管理员、运维人员、开发人员等用户角色,管理员负责管理自动化平台上面用户权限,包括:添加用户、删除用户、用户角色划分等待。运维人员负责对象管理、目标管理、分析问题、运行信息、其他管理等等一系列模块。开发人员主要负责目标管理与分析问题两个模块。
2.4分析问题
支持对象历史命令显示,对象网络自定义资源查询展示,对象系统日志自定义展示,目标访问日志、报警日志自定义查询展示。
2.5运行信息
对目标运行状态、对象运行状态信息采集,对对象本身健康状态相关指数采集。以图形界面方式直观展示,配置规则超出正常指标通知运维组用户。
2.6其他管理
根据后期的需求添加一些插件,或者修改后台模块实现程序,如:报警接口、集群管理工具、验证管理等等。
3、数据库设计
为自动化运维管理平台创建数据库,设计数据表。用于记录、展示对象与目标详细信息,完成角色管理功能。同时,也保存对象各项健康指标信息。
3.1对象数据记录
对象数据表保存对象各项信息,对象组数据表保存对象组各项信息,对象各项健康指标数据表保存各项健康指标周期性实时信息,对象运行状态数据表保存对象周期性实时运行状态。
3.2目标数据记录
目标数据表保存目标各项信息,目标组数据表保存目标组各项信息,目标运行状态数据表保存目标周期性实时运行状态,目标与对象关联数据表保存目标与对象、对象组绑定信息,目标组与对象联数据表保存目标组与对象、对象组绑定信息。
3.3角色数据记录
用户数据表保存各个用户的基本信息,管理员数据表保存管理员用户信息,运维数据表保存运维人员信息,开发数据表保存开发人员信息,权限用户表保存各个角色拥有各项权限信息。
3.4其他数据
一些安全认证、心跳连接等其他方面的数据信息。
4、后台设计 4.1初始化对象
自动化平台管理对象确认,后台同步执行对象初始化。添加配置文件,写入对象所属组别。数据库添加对象信息,添加对象组信息。后台继续配置对象的访问方式,SSH的无密码登录或者是带密码登录。这里推荐使用无密码方式登录,采用密钥方式登录,可以不再使用口令认证。把口令一直保存在自动化平台不是一种好的习惯。当然,第一次登陆还是需要口令,无密码登录认证成功后就不再需要密码,这时需要加强角色的权限管理与安全保护。
4.2管理对象
初始化对象成功,自动化平台开始执行对象配置、对象信息获取、对象与目标绑定、目标服务部署、目标信息获取等操作。后台同步平台操作确认,通过SSH无密码方法登录到对象,开始执行自动化平台下发的操作命令,并且返回操作结果。
4.3运行状态
获取对象运行状态、生命健康指标、目标运行状态,实时反馈给自动化平台图形化展示。以上状态信息超出正常健康范围,调用报警接口通知运维人员。
4.4异常处理
初始化对象、管理对象等一系列操作出现异常情况,截取异常信息上报到自动化平台,自动化平台展示提示出现错误,展示异常信息。当然,执行指令成功也提示友好确认信息反馈给用户。
5、总结
这一次简单的自动化运维管理平台设计分析过程,全部都是从零开始,后面在实现过程中把各个模块丰富填充。当然还会遇到一些问题,也没有把网络安全、主机安全、安全加固等功能模块考虑进去,也没有使用redis缓存。
暂无评论内容