软件运维事件(运维事件分析)

来源网友投稿 720 2023-02-20

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈软件运维事件,以及运维事件分析对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享软件运维事件的知识,其中也会对运维事件分析进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

出现运维事故后,你会怎么办?

有一次和朋友聊天,他说他们有一次部署出事软件运维事件了,影响还挺大,那次事故后,他们公司对于部署流程增加了更多软件运维事件的审批。

当朋友说完前半句时,我已经猜到下半句,那是很多公司或个人会做出的反应。至于为什么会做出这样的反应,我也不知道。

我问:为什么那次部署会“出事”?

他说:当时部署的人忘记了那台机器上有一条 Iptable 规则,导致了事故。

我就在想,如果有人审批,那次事故就不会发生吗?审批的人就知道那台机器上有一条规则导致事故的发生?然后驳回这次部署吗?连一线的开发和运维都忘记了的 Iptable 规则,“高高在上的审批领导”就更不知道了。

题外话:增加审批流程并不能避免这次事故,只不过当出现事故时,可以更好的定责。然而我又好奇了,这种“审批”是为了解决问题,解决什么问题?,还是为了逃避责任?谁逃避了责任?谁又有责任?

对于这类问题,我心里已经有数了,但想知道这位朋友的回答,就接着问:那么怎么杜绝这类问题呢?

这位朋友说的做法,我之前待的一个团队的做法也差不多:会有一个页面专门记录下每次部署的步骤,步骤由开发人员写,然后由运维人员执行。只是我不知道他们会不会回顾之前所有针对这台机器的部署步骤。

这个团队里有某某大型互联网公司来的架构师和某财务软件公司来的运维,所以,我不负责地推测,我们这个行业很多公司对于配置的管理还没有达到足够的重视,也没有正确的看待。

我笑了,接着问朋友:那我要知道当前机器的“最终状态”,是不是要找出所有部署记录,还要过滤出对这次部署有影响的每一个细节?比如那条 Iptable 规则。

接下来的对话细节已经记不清,也不重要了。重要的是找出针对这类运维事故根本原因及解决办法。

我个人认为这类问题的根本原因在于:

以上只是我个人认为的,不一定正确,欢迎各位读者讨论。

那如何杜绝这类问题呢?

这两个原因可以看作一个,也可以看作两个。但方法都是一样的:

脚本式的配置管理是这样的:

而声明式的配置管理是这样的:

声明式的配置里写的是当前环境的“状态”,语意上,声明式的配置不论你执行多少次,你得到最终的“状态”就是你所声明的,这也就实现了《持续交付》里说的:

这样,你就不用在第1000次部署时,根据前999次部署脚本找出对这一次部署有影响的细节了。

具体实践时,我发现 Ansible 就能很好的做到这点。

将这些配置版本化的好处,就不需要重点说明了。

具体一点的说就是所有环境都使用相同的声明配置,具体到不同环境时,使用变量替换。这样就可以保证所有环境的一致性了。

具体实践方法,还需要根据所在团队调整。你也可以通过本文附录里链接,参考其他人是如何实践的。

关于配置管理

多环境配置管理

IT运维管理当前面临了哪些问题?

现在的企业几乎都是互联网办公,网络一旦出现问题,会对公司业务造成重大损失。而很多公司主业也不是IT,对网络问题不大懂,对于公司的网络问题往往都是请一个运维工程师处理。这些工程师有相应的专业能力,但管理人员的“不懂行”却让运维工作存在很多问题,主要有这五点:
1、缺乏有效的知识积累和共享,造成操作维护效率低下,类似的故障和问题仍然在不断发生,不断解决着,同时一旦某些掌握关键信息和技能的人发生意外状况(如生病,离职等),整个日常维护可能面临严峻的考验。
2、工程师的维护职责不是很清楚,每个人都大概知道自己该做什么,但是某个具体事情到底该谁负责,却没有明细定位。
3、IT网络运维人员大多没有养成记录习惯,每个月汇总报告时,对自己的工作量、所维护系统的整体情况还是一头雾水。而且纸质的故障处理报告信息要素不全,统计和查询都是头痛的问题。
4、运维人员几乎很少能准时下班,处理突发技术故障的事情也时有发生。运维人员往往像“救火队员”一样去处理故障。 在“救火式”的IT管理维护模式下,很难有效地进行服务管理,无法保证IT服务的有效性和一致性,IT管理往往处于无序状态。
5、对于运维工程师的工作绩效缺乏客观考核依据。他们到底做了哪些事情?哪些事情还没有做?工作完成的时效性怎么样?解决问题的质量怎么样?这些问题,只能凭印象得出一个个模糊的答案。
如何解决以上问题?
如何解决以上提到的问题是目前许多企业用户需要解决的问题,但首要关注的问题应是如何建立专业化分工的IT运维体系。
1、细化用户角色,力求提高运维效率
运维人力分工管理包含人员、岗位、角色等信息,如果这些信息没有统一规划,就无法进行统一配置。网络管理中的角色是根据ITIL标准进行划分的,是把IT运维各种事情(包括人员、资源、突发事故)分成不同级别和不同运维操作,以便有效的配置运维人力资源。因此,对于企业而言,IT运维的专业化分工本质上是对IT运维人力资源配置的优化。例如,明确运维事件分级处理流程,明确运维人员的职责、权限、义务和绩效考核标准。事实上许多实践也证明,明确每种运维事件的专业化分工处理流程,可以大大减少IT运维操作的随意性和混乱性,并能大大提高运维中的人力资源效率。
2、设立IT运维服务台,规范IT流程
在网管软件中,一般提供自助服务和运维服务台,自助服务台的作用是,给用户报故障,评价IT人员解决问题是否负责等。运维服务台是为了确定运维等级和引入优先处理原则。运维服务台主要承担:运行值班、故障监控、接受请求、工单派发及问题解决过程中的监测等工作内容。服务台就像是传统产业生产车间的调度分配员,它会不断的根据事件的等级进行匹配分工和调度。例如发生任何一个突发运维事件时,服务台会先检查并进行分类流转处理。运维人员可分为一线普通维护、二线技术专家和三线厂商专家。一线人员作为第一级问题处理人员,主要解决常规的运维问题;在一线人员不能解决的情况下,二线技术专家将迅速介入问题解决过程;三线技术专家来自产品供应商,由二线技术专家申请三线厂商专家的介入,使问题解决时间能够大大缩短。
3、FAQ和知识库,最大限度节省人力成本
提供FAQ和知识库两种方式,知识库是指对网络运维中的典型故障事件和常见问题解答的自助式处理流程。当出现故障时,用户先在自助式知识库寻找解决方法。如果问题没有得到解决,则用户利用服务台申请维护,用户申请将会移交给相应的负责人,负责人第一时间建立服务档案并一直实时监控,直到问题得到圆满的解决。因此,自助式知识库能帮助运维人员节省大量的时间,从而节省人力成本支出。
最后,专业的事情要用专门的人员来做,还要配合专业的方法。运维工程师是以技术为主的群体,他们往往关注于IT问题本身,主要通过提升自身技术实力来解决问题,不太关注技术之外的事情。这种情况下不可避免的会出现一些问题,这就需要管理人员来解决了。

IT运维流程如何管理?

按照ITL规范来讲,it运维流程分为:事件管理流程、问题管理流程、变更管理流程、发布流程。在日常运维中,从发现运维问题开始,提交一个新的运维事件到解决此事件。这个过程为事件流程。当运维过程中某个事件发展成为常态或发现潜在的影响面广的问题,则提交一个问题流程。在解决问题流程的过程中,需要对系统环境或软硬件设施进行修改或变动,则需要提交一个变更流程。

程序员应知应会之自动化运维那些事儿

对于一个开发人员来讲,可能运维并不是自己的职责所在。但是作为一名开发人员,却不能不了解自动化运维的整个流程。因为对于一个信息系统而言,开发和运维本质是一体的,尤其对于一些小公司来讲,可能运维人员本身就是开发人员抽空兼任的。


而自动化运维,本质上是介于开发和运维之间的,是运维和开发的交集,甚至很多时候都要写不少代码。因此,任何一个开发人员,都需要有自动化运维的相关知识。


一个了解好的开发人员,即使自己不做运维相关的工作,也能够知道自己在将项目交付给运维人员的时候,哪些东西是重要的,那些是必须配置的等等。然而在实际工作中,往往开发人员会给运维人员留下一些坑,一些只有他自己知道,而运维人员不知道的东西。导致运维人员自己试了很多次发现不行的时候,找到开发人员,开发人员研究了一下才会告诉他,在某某环境中必须用哪个端口之类的。这样不仅白白浪费了运维人员的时间,也增加了很多沟通的工作量。


反过来也是如此,一些现场的问题如果运维人员不能现场给出问题的定位。对于开发人员来讲是非常难以复现的。比如之前有某家企业,运维人员在客户现场发现问题。费了很大力气从客气的内网里面把日志导出来,发给开发人员,结果开发人员仔细研究了日志之后,发现是网不通的问题。开发人员显然是不可能知道为啥网不通的,搞不好是压根没连网线。


所以今天我们来聊一聊,对于一个程序员来讲,需要了解的自动化运维的那些事。


一、自动化运维的概念

随着信息时代的持续发展,初期的几台服务器已经发展成为了庞大的数据中心,单靠人工已经无法满足在技术、业务、管理等方面的要求。一个运维人员手工配置几台服务器还可能。配置几百上千台服务器那就累死了,还容易出错。那么就需要对运维工作进行标准化、自动化、架构优化、过程优化等。从面降低运维服务成本。其中,自动化最开始作为代替人工操作为出发点的诉求被广泛研究和应用。

所谓自 动化运维,即在最少的人工干预下,结合运用脚本与第三方工具,保证业务系统7*24小时高效稳定运行 。这是所有业务系统运维的终极目标。


按照运维的发展成熟度来看, 运维大致可分为三个阶段 :

(1)依靠纯手工,重复地进行软件的部署与运维;

(2)通过编写脚本,方便地进行软件的部署与运维;

(3)借助第三方工具,高效地进行软件的部署与运维;


二、自动化运维需要解决的问题

自动化运维通常来讲,需要解决以下几个问题: 自动部署配置、风险事前预警、故障事中解决、和故障事后管理 。


三、自动化运维的常用工具

自动化运维常用的工具包括以下几种:


1、Ansible

ansible是基于Python开发的自动化运维工具,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

ansible具有如下一些特性:

(1)模块化:调用特定的模块,完成特殊的任务。

(2)Paramiko(python对ssh的实现),PyYaml,jinja2(模块语言)三个关键模块。

(3)支持自定义模块,可使用任何编程语言写模块。

(4)基于python语言实现。

(5)部署简单,基于python和SSH(默认已安装),agentless,无需代理不依赖KPI(无需SSL)。

(6)安全,基于OpenSSH

(7)幂等性:一个任务执行一次和执行n遍效果一样,不因重复执行带来意外情况。

(8)支持playbook编排任务,YAML格式,编排任务,支持丰富的数据结构。

(9)较强大的多层解决方案role。




2、Chef

Chef是一个功能强大的自动化工具,可以部署,修复和更新以及管理服务器和应用程序到任何环境。

Chef 主要分为三个部分 Chef Server、Workstation 以及 Chef Client。用户在 Workstation 上编写 Cookbook。然后,通过 knife 命令上传到 Chef Server。最后,在 Chef Client 上面实施安装和部署工作。所以,对于 Cookbook 地编写在整个自动化部署中起到了重要的作用。


Chef Server 包含所有配置数据,并存储描述Chef-Client中每个Nodes的Recipe,Cookbook和元数据。配置详细信息通过Chef-Client提供给Nodes。所做的任何更改都必须通过Chef Server进行部署。在推送更改之前,它通过使用授权密钥来验证Nodes和Workstations是否与服务器配对,然后允许Workstations和Nodes之间进行通信。


Workstations 用于与Chef-server进行交互,还用于与Chef-nodes进行交互。它还用于创建Cookbook。Workstations是所有交互发生的地方,在这里创建,测试和部署Cookbook,并在Workstations中测试代码。


Chef命令行工具 是创建,测试和部署Cookbook的地方,并通过此策略将其上载到Chef Server。


Knife 用于与ChefNodes进行交互。


Test Kitchen 用于验证Chef代码


Chef-Repo 是一个通过Chef命令行工具在其中创建,测试和维护Cookbook的存储库。


Nodes 由Chef管理,每个Nodes通过在其上安装Chef-Client进行配置。 ChefNodes 是一台机器,例如物理云,云主机等。

Chef-Client 负责注册和认证Nodes,构建Nodes对象以及配置Nodes。Chef-Client在每个Nodes上本地运行以配置该Nodes。


Cookbook 是Chef 框架的重要基础功能之一。在 Chef Server 对目标机器做安装部署的时候,是通过 Runlist。而 Runlist 里面又包含了一个一个具体的 Cookbook,所以,最终对一个目标机器的部署任务就落到了 Cookbook 上。而对于 Cookbook 来说,其中包含了多个组件,我们可以将 Cookbook 简单地理解成一个容器或者可以理解为一个包,里面包含了 recipes、files、templates、libraries、metadata 等信息。这些信息用于配置我们的目标机器。




3、Puppet

puppet是一种Linux、Unix平台的集中配置管理系统,所谓配置管理系统,就是管理其里面诸如文件、用户、进程、软件包等资源。它可以运行在一台服务器端,每个客户端通过SSL证书连接到服务端,得到本机器的配置列表,然后根据列表来完成配置工作,所以如果硬件性能比较高,维护管理上千上万台机器是非常轻松的,前提是客户端的配置、服务器路径、软件需要保持一致。


客户端Puppet会调用本地facter,facter探测出该主机的常用变量,例如主机名、内存大小、IP地址等。然后Puppetd把这些信息发送到Puppet服务端;

Puppet服务端检测到客户端的主机名,然后会检测manifest中对应的node配置,并对这段内容进行解析,facter发送过来的信息可以作为变量进行处理;

Puppet服务器匹配Puppet客户端相关联的代码才能进行解析,其他的代码不解析,解析分为几个过程,首先是语法检查,然后会生成一个中间的伪代码,之后再把伪代码发给Puppet客户端;

Puppet客户端接收到伪代码之后就会执行,执行完后会将执行的结果发送给Puppet服务器;

Puppet服务端再把客户端的执行结果写入日志。


4、Saltstack

SaltStack是基于python开发的一套C/S自动化运维工具。部署轻松,扩展性好,很容易管理上万台服务器,速度够快。与服务器之间的交流,以毫秒为单位。SaltStack提供了一个动态基础设施通信总线用于编排,远程执行、配置管理等等。它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证书签发的方式进行认证管理,传输采用AES加密。

在saltstack架构中服务器端叫Master,客户端叫Minion。


在Master和Minion端都是以守护进程的模式运行,一直监听配置文件里面定义的ret_port(接受minion请求)和publish_port(发布消息)的端口。当Minion运行时会自动连接到配置文件里面定义的Master地址ret_port端口进行连接认证。


saltstack除了传统的C/S架构外,其实还有一种叫做masterless的架构,其不需要单独安装一台 master 服务器,只需要在每台机器上安装 Minion端,然后采用本机只负责对本机的配置管理机制服务的模式。


saltstack提供如下一些功能:

(1)远程执行:(批量执行命令)在master上执行命令时,会在所有的minion上执行。

(2)配置管理/状态管理 :(描述想到达到的状态,saltstack就会去执行)

(3)云管理(cloud):用于管理云主机

(4)事件驱动:被动执行,当达到某个值会自动触发


这四种自动化运维工具的比较如下,现在主流的基本上ansible和saltstack用的多一些:




IT运维管理包含哪些内容?

IT运维管理包含:

一、设备管理:对网络设备、服务器设备、操作系统运行状况进行监控,对各种应用支持软件如数据库、中间件、群件以及各种通用或特定服务的监控管理,如邮件系统、DNS、WEB等的监控与管理;

二、数据/存储/容灾管理:对系统和业务数据进行统一存储、备份和恢复;

三、业务管理:包含对企业自身核心业务系统运行情况的监控与管理,对于业务的管理,主要关注该业务系统的CSF(关键成功因素Critical Success Factors)和KPI(关键绩效指标Key Performance Indicators);

四、目录/内容管理:该部分主要对于企业需要统一发布或因人定制的内容管理和对公共信息的管理;

五、资源资产管理:管理企业中各IT系统的资源资产情况,这些资源资产可以是物理存在的,也可以是逻辑存在的,并能够与企业的财务部门进行数据交互;

六、信息安全管理:该部分包含了许多方面的内容,目前信息安全管理主要依据的国际标准是ISO17799,该标准涵盖了信息安全管理的十大控制方面,36个控制目标和127中控制方式,如企业安全组织方式、资产分类与控制、人员安全、物理与环境安全、通信与运营安全、访问控制、业务连续性管理等;

七、日常工作管理:该部分主要用于规范和明确运维人员的岗位职责和工作安排、提供绩效考核量化依据、提供解决经验与知识的积累与共享手段。

IT运维是IT管理的核心和重点,也是内容最多、最繁杂的部分,每一个子系统中都包含着十分丰富的内容,也因此被很多人称之为“IT运维管理就像一个什么都能装的箩筐”。但通过梳理,你会发现,其实IT运维管理也有依有据,有规律可寻。

IT 运维管理是时下 IT 界最热门的话题之一.随着 IT 建设的不断深入和完善,计算机硬软件系 统的运行维护已经成为了各行各业各单位领导和信息服务部门普遍关注和不堪重负的问题.由于这是一个随 着计算机信息技术的深入应用而产生的新课题,因此如何进行有效的 IT 运维管理,这方面的知识积累和应 用技术还刚刚起步.对这一领域的研究和探索,将具有广阔的发展前景和巨大的现实意义。

所谓 IT运维管理,是指单位 IT 部门采用相关的方法、手段、技术、制度、流程和文档 等,对IT 软硬运行环境(软件环境、网络环境等)、IT 业务系统和 IT 运维人员进行的综合管理。

企业将IT部门的职能全部或部分外包给专业的第三方IT外包公司管理,集中精力发展企业的核心业务。简单的说就是企业在内部专职IT运维人员不足或没有的情况下,将企业的IT外包服务流程,包括全部办公硬件、网络及外设的维护工作转交给专业从事IT运维的公司来进行全方位的维护。

结合实际软件系统运维,简单谈谈如何提高系统安全

重点考虑如下几个方面的内容:  

1、安全资源的统一管理    

安全策略是企业安全建设的指导性纲领。信息安全管理产品应能在安全策略的指导下,对与信息安全密切相关的各种资产进行全面的管理,包括网络安全设备产品,重要的网络资源设备服务器或网络设备,以及操作系统和应用系统等。要实现关键防护设备的健壮性检查工作。

2、安全管理可视化    

实现安全运维管理服务流程的可视化、结果可跟踪、过程可管理,支持完善的拓扑表达方式,支持可视化的设备管理、策略管理和部署,支持安全事件在网络逻辑拓扑图中显示。信息安全全景关联可视化展示方法和技术,从信息展示逻辑和操作方式上提高可视化的视觉效果,增强系统的易用性和信息的直观性。

3、信息安全全景关联模型及方法    

各种类型、不同厂家的安全设备得以大规模使用,产生难以手工处理的海量安全信息,如何统一监控、处理这些不同类型的安全信息,如何从这些海量的安全信息中整理、分析出真正对用户有价值的安全事件。

通过设计一个基于关联的信息安全事件管理框架,实现安全信息的关联及关联后事件表示,实现安全信息精简、降低误报率和漏报率以及改进报警语义描述,达到增强安全系统间的联系、建立安全信息管理标准、提供安全可视化描述和建立安全通用处理流程。支持安全检测模式深度挖掘。


4、信息安全态势评估模型和态势评估方法  

安全综合评价以及安全态势预测的最终目的是建立大型网络的宏观、统一的安全态势评估体系,提供网络安全策略、进行宏观态势评估及预测的技术手段,达到全面评价系统整体安全性的目的,为实施网络安全管理策略制定提供决策支持的工具。  

5、海量数据存储和高性能处理机制  

建立基于网格技术的分布式存储和分布式处理机制,通过网格中间件既可以实现数据的分布式存储,又可以将统一的数据库查询请求变成在各网格节点进行的分布式查询,以提高数据库操作效率,从而通过计算规模扩展实现数据存储和处理性能的提升。

关于软件运维事件和运维事件分析的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 软件运维事件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于运维事件分析、软件运维事件的信息别忘了在本站进行查找喔。
上一篇:测试cpu性能(测试CPU性能Excel表格)
下一篇:包含it运维工程师技能的词条
相关文章

 发表评论

暂时没有评论,来抢沙发吧~