米乐体育app官方:一个成熟的自动化运维系统具备什么功能?
mile米乐m6电竞 发布时间:2022-09-05

  结合现在云计算和DevOps的发展趋势,我觉得一个成熟的自动化运维平台应该包括以下的特性:

  现在越来越多的服务器都转到了云上,而主流的公有云、私有云平台都拥有比较完备的资源管理的API,这些API也就是构建一个自动化CMDB的基础。

  新一代的自动化运维平台应该是可以基于这些API来自动维护和管理相关的服务器、存储、网络、负载均衡的资源的。

  通过API对资源的操作都应该被作为操作日志记录下来,以备作为后续操作审计的基础数据。

  而基于开源工具做运维平台最大的麻烦,就是如何在各个工具之间把CMDB统一起来。

  CMDB不统一起来,就意味着一旦要增加一台服务器,可能要在各个运维工具里面都要同步一下,这个还是非常折腾滴。。。

  能支持对平台的可用性、服务器的性能、各种服务(web服务、应用服务、数据库服务)的性能进行监控。做的好一些应该能进行更深入、或者关联性的性能分析。

  现在市面上一般都会将资源性能监控和应用性能监控(APM)混合着讲,这里面的产品确实也有很多都是重叠的,两方面都会涉及到。

  开源的性能监控系统主流有的Zabbix、Nagios,国产的开源监控平台有小米OpenFalcon,但这些基本都只是做基本的资源监控(服务器,磁盘、网络等)和简单的服务软件的性能监控(中间件,数据库等)。

  而市面上的APM系统更主打的功能是应用性能分析,比如能精确定位到某个应用的URL的访问速度快慢,某些SQL执行速度的快慢,这些对于开发人员和运维人员快速定位问题还是很有帮助的。

  APM这方面的商业工具,国外比较主流的有New Reclic、Dynatrace,国内的也就是透视宝、Oneapm、听云等,他们也提供了API进行集成。

  APM这方面的开源工具有pinpoint(一个韩国团队开源的),zipkin(twitter开源),cat(大众点评开源)。

  在业务发展比较快的情况下,从几台服务器,到几十台服务器,再到几百台服务器,批量运维的需求很自然就产生了,老板也希望越少的人干越多的活。

  现在也有不少开源的批量运维工具,也都比较成熟了,比如puppet、chef、ansible、saltstack。

  puppet和chef都是ruby做的,实话实说,ruby的熟手市面上很少,比python不是难招一点。

  我个人比较推荐使用ansible或者saltstack,这两个系统都是python写的,代码质量和社区活跃度都挺不错的。

  ansible有官方的web ui——Tower,但实话实说不好用,所以我们也在重新做一套自己用起来更顺手的WEB UI。

  随着服务器的增多,日志的分析定位也成为一个难点和痛点(想象一下,系统出故障之后,要去几十甚至数百个节点去上去查日志,是有多折腾)。

  另外还有一家log insight,也是做这个领域,但产品好像还处于beta阶段。

  日志分析这个领域现在是一个热点,现在的开源方案也比较多了,比如著名的ELKStack,还有Flume+Kafka+Storm的体系。

  比较轻量级的开源日志集中采集方案有python做的Sentry,他是通过改造各种语言的日志采集框架来实现日志的集中采集,各种主流的开发语言的日志框架都支持得很完整了,比如java的log4j和logpack。

  而如何把打好的包发布至各台服务器,则可以通过批量运维工具或者脚本来完成了。

  版本发布的过程涉及到很多细节,包括了版本文件的上传、分发、版本管理、回滚等各种操作。

  对于一般不太复杂的项目,我比较推荐的做法是把打包好的文件上传到svn上,然后通过脚本在各台服务器上进行发布操作就行了,这样其实是利用了SVN来完成文件的上传、分发、版本管理、回滚等各种操作。

  一般的公司不太可能请得起专职的安全工程师,所以运维工程师最好能自己借助一些安全扫描工具来发现自己系统的漏洞。

  之前乌云网推出过一个SaaS化的漏扫平台——唐朝巡航,有对外提供漏洞扫描的API,不过最近乌云网一直在升级,所以也就暂时无法调用了。

  个人觉得,如果上述功能都有了,基本上大部分中小规模企业的日常运维工作的高频操作都覆盖到了。

  如果是比较大的互联网企业,或者还有一些特殊的业务需求,那就具体问题具体分析了。

  录入机房服务器和网络设备的各种信息,比如机器型号,硬盘大小,OS类型,所属应用,运行状态,机房名称,所在房间,机架,位置等等各种信息,这是一个最基础的数据库,最主要的目的是给每个机器从多个维度统一打上各种标签,方便其他系统的使用。

  提供各种查询API接口,并做好权限控制。目的是能够被上层的各种系统调用,一般是rest接口,xml接口。然后基于各种语言做相应的封装库。

  一个统一的数据采集模块,用于采集设备运行信息,包括磁盘IO,网络流量,CPU利用率,网络设备的Session数,PPS。这个采集模块在网络设备上一般可以通过snmp来实现,在服务器上一般通过一个定制化的Agent来实现,这个Agent最基础的能力是采集服务器运行数据,最重要的是能执行各种脚本语言并通过脚本语言实现对服务器的各种操作(如更改配置,分析应用日志并输出结果)。

  监控数据存储与可视化,数据采集模块采集到各种数据会很多,但对事务性没啥要求,可以用各种NoSQL数据库如Hbase,Cassandra等来实现。数据的可视化是一个可以做的很深且偏应用层面的东西,一般在监控系统上只实现最基本的曲线图展示,提供按时段选择和对比的功能,其他复杂的可视化操作通过各种API来实现。

  监控项添加和报警通知,监控项是一种层次结构,而不是列表结构。上层节点的配置能够被下层节点的配置覆盖掉。对网络设备来说监控项就是一些不同的oid。借助于底层的数据采集模块,对服务器来说监控项基本上就是一个脚本。可以分为标准监控项和自定义监控项,标准监控项最大化的通用,实现cpu,内存,磁盘,网络等信息的监控。自定义监控项可以用多种系统管理脚本语言(shell,python,perl)等实现,脚本的输出符合一定规范即可,一般采用行结构或json串。每个监控项设定warn,crit报警阈值和若干报警联系人,阈值一般是数值型,特殊的可以是字符串。超过阈值的监控项会发送报警给联系人,报警可以通过短信,邮件,IM软件发出。报警发送要支持合并报警,频率控制,关闭报警。要不然可能一次小故障就能发出成千上万条报警,报警就失去效果了。

  监控Api接口,并做好权限控制。做法和目的与EMDB一样。开放监控数据获取,报警消息发送,配置推送的接口。主要目的是让监控系统里面的数据能够被外界利用,可以在这些数据基础上做更加绚丽复杂的数据可视化工作,或者做一些更加个性化的监控和报警。次要目的是支持对服务器的统一操作,比如公司所有机器统一升级系统软件的版本。建议统一操作的API接口仅对少数几个人开放,并且权限严格控制。

  应用发布和依赖库版本管理,应用发布是运维与开发对接的重要环节,一般发布系统会和svn系统紧密结合,svn系统里面会有线上应用的列表,EMDB里面会有各个机器所属的应用。发布系统会用到这些数据,将svn系统里面生成的应用包及其依赖包发布到线上,并且自身对这些应用包和依赖包进行版本管理和控制,在应用发布出现问题时可以回滚到上一个版本。

  线上配置管理,类似于linux下puppet的功能,主要用于应用服务器上关键配置文件的版本控制,分发,一致性维护工作。大应用一般是若干台服务器组成集群提供服务,要求这若干台服务器的应用配置是一致的,但有时候又存在应用的灰度发布操作,或者某人误更改配置。线上配置管理系统要求提供统一的配置修改入口,对灰度发布提供支持,同时对于误更改配置情况进行纠正。执行操作可以借助于Appmonitor的接口。

  以这三个系统为基础可以做更多的自动化工作,比如说财务人员可以用EMDB里面的数据准确的计算Capex&Opex,机房管理人员可以用EMDB通过OOB远程执行各种关机,重装系统,网络设备维护等工作,不在现场也能管理机器,现场工作可以外包完成。应用开发人员可以通过svn系统调用Releasemanager自主打包,发布,回滚应用。应用维护人员可以调用监控系统获取数据和报警信息,通过编写相关脚本,实现一些简单报警的自动化处理工作,提升效率。

  不同公司对自动化运维系统的功能需求是不同的,但大家都达成的一个共识是:一个成熟的自动化运维的核心一定是智能运维,也就是现在大火的AIOps!

  运维的发展历程可以分为四个阶段:手动运维-自动运维-devops-智能运维。

  单纯从文字上我们就可以清楚的看见运维的不断进化,从宏观角度看这是整个it行业发展的结果。从业务角度看,随着公司的扩大,业务的飞速扩张,运维的场景越来越复杂,企业对运维要求也越来越高!尤其是面对超大规模业务的大型公司,做好运维成为必修课!

  于是AIOps的概念横空出世,利用平台大数据的沉淀,通过人工智能分析出算法规则,利用算法自动发现、诊断、修复IT系统运行事故,并帮助企业形成最佳事件管理流程,让业务运行更加安全可靠。

  我们推出了睿象云智能运维平台,把ai和大数据结合,基于我们丰富的运维数据,通过机器学习,搭建了更加智能、全面的跨云监控和事件管理平台。我们目前有智能告警、智能监控、智能事件等多个产品。

  以我们的智能告警系统为例,绝对是运维人的福音了。运维人堪称it界的007,由于传统救火队长似的工作方式,每天起的最早,睡的最晚,熬夜是家常便饭,全天on call是常态,一句话总结就是:一入运维深似海,从此假期是路人!

  而我们的睿象云智能告警系统,使用后告警必达,还可以大大提高效率,大幅度的解放了运维人!

  总体说是一个轻量但效果显著的产品,感兴趣的话点击下方卡片体验,还可以联系我开通试用版哦!

  直接抄袭opsware 和bladelogic就是了,本就不是多先进的东西。

  自动化运维主要是让简单的工作程序化,让重复的工作自动化。是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,目的就是实现IT运维的质量,降低成本。可以说自动化一定是IT运维最高层面的重要属性之一,但不是全部。

  1、丰富的预设脚本库,轻松搞定运维脚本:预设业界知名的SaltStack脚本库,兼容各大平台,功能强大,扩展性高,这些脚本库足以满足您日常运维的需求,您也可以发挥自己的智慧,编写适合自己业务场景的新脚本

  2、脚本/命令批量执行,降低海量主机运维复杂度:同时对海量主机批量执行脚本/命令,提高运维工作效率,再多主机也不怕

  3、文件批量分发,系统更新升级更简单:在对大量主机进行系统升级,更新补丁等业务场景中,利用行云管家文件分发功能,将所需文件批量发送到所有主机,一键完成更新升级过程

  4、文件批量收集,一键提取不同主机的同类文件:文件收集功能可将分散在大量主机上的某类文件收集到指定位置,适合分布式系统日志分析等业务场景

  5:任务编排,运维过程彻底自动化:将复杂的作业节点编排成任务,设定触发条件和时间,满足您更为灵活的应用场景。例如定期的巡检任务,只需设置好执行的时间和业务节点,自动执行,无需人工干预

  还有更多的自动化运维功能,这个页面有更详细的介绍:传送门---行云管家自动化运维