应对经济衰退 互连网管理怎么样利用ITIL

在19世纪80年间之初,ITIL已经思量到体积管理的价值。三种版本都思考到了分歧类型的体量管理:组件、服务和事务。

ITIL推行解读:端到端APM应用品质的管理观(1)

标题和事件管理是 APM 的四个核心 ITIL新闻能力基础框架结构库,简称
ITIL)流程。事件管理Incident Management)是当IT
出现难点的时候消除它们,作为对劳务质量下滑的一种响应。事件管理的对象是恢复服务,对作业变成尽大概小的熏陶。难题管理Problem
Management)重申识别和排除难点的源于。它经过转移服务和 APM
消除方案,扩张了服务品质改进的定义。

端到端选用品质管理End-to-end Application Performance
Management,简称APM)指的是 一种 IT
服务章程,满含识别、区分优先次序以及化解影响职业应用的天性和可用性难点。APM
正在变得越来越重要,因为终端用户依赖日益复杂的运用来促成主要作业交易。应用品质低下将稳中有降生产力,影响客户满足度,并有损
IT 声誉,进而导致开支攀升、收入减弱、IT
变得效能低下——这几个标题普通比可用性难题特别严重。

守旧的监测化解方案经常不能够分辨和消除使用
质量难点的来源。事实上,近来在极端用户体验监测、倚重性映射和相关性方面包车型客车最新进展,已让
IT
运转经营能够更实用地监测和缓慢解决不满意服务水平的主题素材。这么些工夫支援进步对任何互联网、服务器遍布式和重型主机)和别的应用层的可视性,借帮手艺剖析因果
关系,从事情的角度鲜明怎么着响应该先行开展。实际上,尽管基础架构衡量目的依然提供至关首要的故障和体量数据,强调首要也已从基础架构衡量指标产生了专门的学问衡量指标。

大家将小说一雨后鞭笋应用品质处理最好施行的稿子,从难点和事件管理的见地剖判APM。

本文将首先回顾地陈诉 APM 设计、实施和平运动营的基本要素,将端到端
APM作为叁个流水生产线来张开追究。

一、APM 设计

APM 消除方案日常是用作草根、基础架构监测实行初始的,由IT
机构的有个别独立业务部门推行,紧缺一致的靶子。比方,互联网团队或然要配置四个开源互连网工具,以获得基础网络的可视性,而web
服务器团队则恐怕会从贰个主流的服务器厂家那里安排一个服务器监测工具。然则,自上而下地安顿三个APM
方案要切合实际得多。使用这种措施,您先思索结果,然后将它选拔于您选拔的消除方案组件。

你怎么样入手开端吧?在 ITIL 的社会风气里,最后援助服务等级协商service level
agreement,简称 SLA)的运营品级指标operational level
target,简称OLT)是一个好的起源;那些将早就缓和了预期的职业出现和本金限制,何况应该完毕三个高水准的规划。不与
ITIL
相关?您还可以够运用适合你需求的一对最好实施。从与业务部门探讨、精晓事情目的起先,确定APM
预算,使用对运用交付基础架构的敞亮和它的性质敏感性,并草拟二个方案。您很恐怕想把那么些作为二个练兵,测验什么只怕会出错,尽或然布满地扩张范围;成本和任何的实在思索将快捷专注于这一安排。您当然不会是首先个使用这种办法的人,您可丰裕利用与供应商的涉及、用户群和提问合营伙伴,来驾驭类似尝试只怕会
有的打响和停业。

供销合作社高层提供的财富帮助和参预对于别的 APM
项目标打响都甚尤为重要的,因为那将要求来自四个 IT
部门的积极协助。更重要的是,那么些机关对于项目标作业价值要有雷同的敞亮,因为她们每个都或者会面对新的市廛可视性他们在CEO仪表板上的测量检验目的),对
某个事物失去调节应对题指标新流程),大概放任二个最受迎接的工具。初阶二个小型的
APM 项目,选拔二个战略的采纳,为职业全数者和 IT
机构申明价值,大大多机关将会从中受益。那样七个类别的打响,将能够被一个更完善、受益更分明的化解方案利用。

唯独,大家大 多数人并非从一时拼凑起来设计 APM
消除方案;我们已经具有相当多直接服务于大家的指标的基础架构工具。那么,是怎么着将一密密麻麻“结合平台的”platform-aligned)工具调换成
APM
消除方案的啊?就算对于那些难点也许会有多数技术回答,可是,这里有多个最要害的宗旨:

·业务一致性business
alignment)。全新的要紧设计目的依旧应该从尊重专门的学业出现初阶。对作业以来,首要的将是极端用户的体会——那几个可透过品质和可用性实行衡量。

·相关性和故障隔绝correlation and fault
isolation)。对来源的可视性,是将基础架构提高至
APM、真正驾驭基础架构度量目标怎么着影响专门的学问生产力的关键。

很 轻易精晓诸如终端用户体验end-user experience,简称
EUE)和基础架构衡量目的等作业有关的衡量指标的相关性为啥如此重大。将终端用户体验到的属性难点与基础架构衡量目的组成起来,隔绝首要的来源于,那能让
IT
小组急忙准确地留神于难题的来自,同期制止对不相干的组件选用行动。通过适当的阈值调节,那为持续工作创新奠定了基础。同样地,通过
EUE
的相关性,以及受影响的用户数量和所在地方、每日交易的次数和作业价值,能够找到标题对事情的熏陶。

透过一文山会海上军基础架构工具 营造 APM
化解方案,会带来集成和相关性方面包车型地铁挑战;您须要对重大的单一供应商single-vendor)消除方案打开评估权衡,因为供应商和定制化的多供应商
multi-vendor)化解方案营造和交由了集成。对于越来越小片段的安插,定制化的减轻方案也许会更积累零钱,然而对于非常大的执行,可扩大性和保险方面的思虑将会快捷退换价格。

在统一希图流程里,保持对极端用户交易响应时间的专注很关键。那有八个原因。第一,质量分析和主题材料化解是
为越来越好的问询以工作为导向的条件并建议重点意见。固然在守旧上,基础架构度量指标是知足事件和难题管理的数目,然则,那几个基础度量目的和它们的阈值驱动警
报在未曾事情相关性的情事下能够变得差不离毫无意义。比如,对于一个 2 M
广域网连接来讲,十分之二的利用率终归是好可能坏呢?一个被告知的交易质量难点是由 SAN 里长度为 8
的度量磁盘阵列引起的吧?当使用的天性降级时,那几个零部件级的衡量还将总会被出色?其次,从对作业影响的角度来讲,IT
能够先行对事件作出响应是有价值的,它意味着了向专门的职业一致性迈出的第一一步。

同样任重先生而道远的是,与技艺和 IT 能源的资金有关的安插范围。好些个 APM
项目不成功,是因为贫乏关爱和支撑,因为无法保证这一缓和方案、不也许适应基础架构的成形并不能够定义基于实际新华网告的流水生产线。

)
难点和事件管理是 APM 的七个基本 ITIL消息才干基础架构库,简称
ITIL)流程。事件管理Incident…

CMDB

  CMDB –Configuration Management
Database
配置管理数据库, CMDB存款和储蓄与治本集团IT架构中设备的各类配置消息,它与持有服务支撑和劳务交由流程都紧凑相联,帮忙那些流程的运作、发挥配置消息的股票总值,同期依靠于有关流程保证数据的正确性

在实际的花色中,CMDB经常被认为是营造另外ITIL流程的底蕴而优先考虑,ITIL项目标胜负与是还是不是中标建立CMDB有十分大的涉及。

五分四~百分之九十的IT相关难题与遭逢的变动有着直接的涉嫌。实行改造处理的难题和注重并不是工具,而是流程。即经过三个自动化的、可重新的流水生产线管理改变,使妥贴改换发出的时候,有贰个标准的流程去推行,能够预测到这一个改换对任何系统管理发生的震慑,并对这么些耳熏目染实行业评比估和决定。而改动管理流程自动化的落到实处重大正是CMDB。

CMDB工具中足足含有那二种入眼的功用:整合、调和、同步、映射和可视化。

结缘是指能够足够利用来自别的数据源的消息,对CMDB中包括的记录源属性进行存取,将八个数据源合併至一个视图中,生成连同来自CMDB和其余数据源消息在内的报告;

调解本领是指通过对来自每一种数据源的卓越字段张开自己检查自纠,保险CMDB中的记录在三个数据源中未有重新现象,维持CMDB中种种配置项目数据源的完整性;自动调节流程使得起始实行、数据库管理员的手动运作和现场保卫安全援助理工科程师作降至最低;

协助进行指确定保证CMDB中的音信可见反映联合数据源的换代情状,在联合数据源更新频率的基础上规定CMDB更新日程,按照经过批准的转移来更新
CMDB,寻觅未被批准的改观;

利用映射与可视化,表达应用间的涉嫌并反馈应用和别的零件之间的依存关系,精通改造产生的影响并支援检查判断难题。

时下CMDB资金财产管理的完毕有如下方式:

1、Paramiko类

基于CMDB中央调节机和SSH对长距离服务器试行命令实现

import paramiko

# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='c1.salt.com', port=22, username='wupeiqi', password='123')

# 执行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read()

# 关闭连接
ssh.close()

2、SaltStack

依附SaltStack的master上的pillar以及远程执行命令完毕

import salt.client
local = salt.client.LocalClient()
local.cmd('*', 'cmd.run', ['whoami'])

3、Puppet

puppet中默认自带了5个report,放置在【/usr/lib/ruby/site_ruby/1.8/puppet/reports/】路径下。如果需要执行某个report,
那么就在puppet的master的配置文件中做如下配置:

######################## on master ###################
/etc/puppet/puppet.conf
[main]
reports = store #默认
#report = true #默认
#pluginsync = true #默认


####################### on client #####################

/etc/puppet/puppet.conf
[main]
#report = true #默认

[agent]
runinterval = 10
server = master.puppet.com
certname = c1.puppet.com

如上述设置之后,每次执行client和master同步,就会在master服务器的 【/var/lib/puppet/reports】路径下创建一个文件,主动执行:puppet agent  --test

图片 1图片 2

在 /etc/puppet/modules 目录下创建如下文件结构: 

modules
└── cmdb
    ├── lib
    │   └── puppet
    │       └── reports
    │           └── cmdb.rb
    └── manifests
        └── init.pp

################ cmdb.rb ################
# cmdb.rb
require 'puppet'
require 'fileutils'
require 'puppet/util'

SEPARATOR = [Regexp.escape(File::SEPARATOR.to_s), Regexp.escape(File::ALT_SEPARATOR.to_s)].join

Puppet::Reports.register_report(:cmdb) do
  desc "Store server info
    These files collect quickly -- one every half hour -- so it is a good idea
    to perform some maintenance on them if you use this report (it's the only
    default report)."

  def process
    certname = self.name
    now = Time.now.gmtime
    File.open("/tmp/cmdb.json",'a') do |f|
      f.write(certname)
      f.write(' | ')
      f.write(now)
      f.write("\r\n")
    end

  end
end


################ 配置 ################
/etc/puppet/puppet.conf
[main]
reports = cmdb
#report = true #默认
#pluginsync = true #默认 

自定义factor示例

图片 3图片 2

$LOAD_PATH.unshift(File.dirname(__FILE__)) unless $LOAD_PATH.include?(File.dirname(__FILE__))
require "rubygems"
require 'pp'
require 'json'
require 'utils'

def dmi_get_ram(cmd)

    ram_slot = []

    key_map = {
        'Size' => 'capacity',
        'Serial Number' => 'sn',
        'Type' => 'model',
        'Manufacturer' => 'manufactory',
        'Locator' => 'slot',
    }

    output = Utils.facter_exec(cmd)
    devices = output.split('Memory Device')

    devices.each do |d|
      next if d.strip.empty?
      segment = {}
      d.strip.split("\n\t").each do |line|
        key, value = line.strip.split(":")
        if key_map.has_key?(key.strip)
          if key.strip == 'Size'
            segment[key_map['Size']] = value.chomp("MB").strip.to_i / 1024.0 # unit GB
          else
            segment[key_map[key.strip]] =  value ? value.strip : ''
          end
        end
      end

      ram_slot.push(segment) unless segment.empty?
    end

    return ram_slot

end

Facter.add("ram") do
  confine :kernel => "Linux"
  setcode do

    ram_slot = []
    cmd = "dmidecode -q -t 17 2>/dev/null"
    ram_slot = dmi_get_ram(cmd)

    JSON.dump(ram_slot)

  end
end


Facter.add("ram") do
  confine :kernel => 'windows'
  setcode do

    ram_slot = []

    if Facter.value(:manufacturer)  =~ /.*HP.*/i
      cli = 'C:\cmdb_report\dmidecode.exe'
      cmd = "#{cli} -q -t 17"
      ram_slot = dmi_get_ram(cmd) if File.exist?(cli)

    else

      require 'facter/util/wmi'
      Facter::Util::WMI.execquery("select * from Win32_PhysicalMemory").each do | item |

        if item.DeviceLocator
          slot = item.DeviceLocator.strip
        else
          slot = ''
        end

        if item.PartNumber
          model = item.PartNumber.strip
        else
          model = ''
        end

        if item.SerialNumber
          sn = item.SerialNumber.strip
        else
          sn = ''
        end

        if item.Manufacturer
          manufactory = item.Manufacturer.strip
        else
          manufactory = ''
        end

        ram_slot.push({
         'capacity' => item.Capacity.to_i / (1024**3), # unit GB
         'slot' => slot,
         'model' => model,
         'sn' => sn,
         'manufactory' => manufactory,
       })

      end
    end

    JSON.dump(ram_slot)

  end
end

内部存储器消息

4、Agent

依靠shell命令实现

图片 5  

 

对此Agent的本子的落实思路:

  • Agent搜聚硬件费用
  • API提供有关管理的接口
  • 管制平台为用户提供可视化操作

 

 

浅谈ITIL

  TIL即IT基础框架结构库(Information Technology Infrastructure Library,
ITIL,音讯本事基础架构库)由大不列颠及苏格兰联合王国政党部门CCTA(Central Computing and
Telecommunications Agency)在20世纪80年份末拟订,现由U.K.际商业信用贷款银行务部OGC(Office
of Government
Commerce)负担管理,主要适用于IT服务管理(ITSM)。ITIL为集团的IT服务处理实行提供了二个靠边、严厉、可量化的行业内部和规范。

1、事件管理(Incident Management)

事故管理担负记录、归类和安排专家处总管故并监督整个处理进程直至事故赢得解决和停歇。事故处理的指标是在玩命最小地震慑客户和用户业务的景色下使IT系统苏醒到劳动等第协商所定义的劳务等级。

目的是:在不影响工作的事态下,尽大概急速的还原服务,从而确定保证最棒的频率和劳动的可持续性。事件处理流程的确立富含事件分类,分明事件的优先级和创设事件的进步体制。

2、难点管理(Problem Management)

标题管理是指通超过实际验钻探和解析IT基础架构的软弱环节、查明事故产生的地下原因,并拟定化解事故的方案和防止事故再一次爆发的方法,将出于难题和事故对职业产生的负面影响减小到最低的劳动管理流程。与事故管理重申事故复苏的进程区别,难点管理重申的是寻找事故产生的根源,进而制定适合的解决方案或堤防其再度爆发的防止措施。

对象是:调查基础设备和全体可用消息,包含事件数据库,来明显引起轩然大波时有发生的确实潜在原因,一同提供的劳动中也许存在的故障。

3、配置管理(Configuration Management)

配备处理是甄别和承认系统的布署项,记录和告诉安顿项意况和转移乞求,查验配置项的不错和完整性等运动结合的进程,其指标是提供IT基础架构的逻辑模型,支持任何服务管理流程极度是更改管理和揭橥管理的周转。

对象是:定义和操纵服务与功底设备的部件,并维持典型的配备音讯。

4、改变管理(Change Management)

改造管理是指为在最短的间歇时间内造成基础架构或劳务的任一方面包车型大巴改换而对其开始展览支配的劳动管理流程。更改管理的对象是保险在更换实施进度中运用规范的办法和手续,尽快地实施退换,以将由退换所导致的事务暂停对事情的熏陶减小到最低。

目的是:以受控的艺术,确认保证全部退换获得评估、批准、实行和评定检查核对。

5、发表管理(Release Management)

 公布管理是指对通过测量试验后导入实际应用的剧增或改造后的布署项进行分发和宣传的田间管理流程。发布管理从前又称为软件调控与分发。

目的是:在实际运作碰着的发布中,交付、分发并跟踪八个或七个转移。

 

实质上中国人民解放军海军工程大学业作情况中自动化学工业具譬如:

图片 6

 

 

◆业务级体积规划从作业经过的角度管理IT基础架构能源、会集帮助单个业务单位的劳务和零部件视图。

浅谈ITIL

  TIL即IT基础架构库(Information
Technology Infrastructure Library,
ITIL,音信技术基础架构库)由United Kingdom政坛部门CCTA(Central Computing and
Telecommunications Agency)在20世纪80时代末拟订,现由大不列颠及英格兰联合王国际商业信贷银行务部OGC(Office
of Government
Commerce)担任管理,首要适用于IT服务管理(ITSM)。ITIL为铺面包车型大巴IT服务管理推行提供了二个客观、严刻、可量化的行业内部和专门的学业。

1、事件管理(Incident
Management)

事故管理担当记录、归类和布署专家处总管故并监察和控制整个管理进程直至事故赢得缓和和安息。事故管理的目标是在尽量最小地震慑客户和用户业务的状态下使IT系统恢复生机到服务等级协商所定义的劳动等第。

对象是:在不影响职业的情况下,尽大概连忙的回涨服务,进而保障最棒的功能和劳动的可持续性。事件管理流程的树立包括事件分类,明确事件的优先级和确立事件的升官机制。

2、难点管理(Problem
Management)

标题处理是指通过考查和解析IT基础架构的虚弱环节、查明事故发生的心腹原因,并制订化解事故的方案和防护事故再一次发生的点子,将出于难点和事故对事情产生的负面影响减小到低于的劳动管理流程。与事故管理强调事故恢复生机的进程不一致,难点处理重申的是搜索事故爆发的源点,进而制定适合的消除方案或防御其再一次爆发的堤防措施。

目的是:考察基础设备和享有可用音讯,包含事件数据库,来规定引起平地风波时有发生的真的潜在原因,一同提供的劳动中恐怕存在的故障。

3、配置管理(Configuration
Management)

布局管理是甄别和认可系统的布置项,记录和报告铺排项景况和改变央求,查验配置项的正确性和完整性等运动结合的历程,其指标是提供IT基础架构的逻辑模型,帮忙别的服务管理流程特别是改造管理和布告管理的运营。

对象是:定义和垄断服务与功底设备的预制构件,并保持规范的安顿新闻。

4、更动管理(Change
Management)

转移管理是指为在最短的间歇时间内做到基础架构或劳务的任一方面包车型客车改动而对其打开调节的劳动管理流程。更动管理的指标是保险在改造试行进度中央银行使标准的法子和手续,尽快地进行改动,以将由改动所导致的事体暂停对事情的熏陶减小到低于。

指标是:以受控的艺术,确认保证全体改换获得评估、批准、施行和评审。

5、发表管理(Release
Management)

 发表管理是指对经过测量检验后导入实际利用的新扩展或涂改后的陈设项进行分发和宣扬的治本流程。发表管理从前又称作软件调控与分发。

对象是:在实际上运营条件的公布中,交付、分发并追踪二个或四个退换。

 

骨子里职业意况中自动化学工业具比方:

图片 7

 

 

CMDB

  CMDB –Configuration Management Database
配置管理数据库, CMDB存款和储蓄与治本公司IT架构中设备的各个配置音信,它与所有服务支撑和服务付出流程都紧凑相联,帮衬那些流程的运作、发挥配置消息的股票总值,同不常候借助于相关流程有限支持数据的准确性

在实质上的品种中,CMDB常常被以为是创设其余ITIL流程的根底而优先考虑,ITIL项目的成败与是或不是成功建设构造CMDB有一点都十分大的涉及。

五分之四~百分之九十的IT相关难点与情状的改换有着直接的涉及。实行改变管理的困难和首要性而不是工具,而是流程。即透过二个自动化的、可另行的流程管理改变,使稳妥更换发生的时候,有一个标准的流水生产线去实施,可以预测到那一个退换对整个系统管理发生的震慑,并对这个默化潜移实行业评比估和决定。而退换管理流程自动化的完成重大便是CMDB。
CMDB工具中足足含有那二种重大的作用:整合、调养、同步、映射和可视化。

结合是指能够丰盛利用来自另外数据源的新闻,对CMDB中带有的笔录源属性实行存取,将四个数据源合併至三个视图中,生成连同来自CMDB和其他数据源音讯在内的告知;

调治技能是指通过对来自种种数据源的合作字段进展对照,保障CMDB中的记录在三个数据源中未有重新现象,维持CMDB中各种配置项目数据源的完整性;自动调度流程使得初叶施行、数据库管理员的手动运作和现场维护援助职业降至最低;

协助举办指确定保证CMDB中的消息能够展现联合数据源的翻新意况,在一块儿数据源更新频率的根基上规定CMDB更新日程,依据经过批准的改变来更新
CMDB,找寻未被批准的改动;

采纳映射与可视化,表达应用间的涉及并影响应用和别的零件之间的依存关系,明白改动产生的影响并扶持会诊难题。

日前CMDB资产管理的兑现成如下方式:

1、Paramiko类

遵照CMDB中央调控机和SSH对长途服务器实施命令完成

import paramiko

# 创建SSH对象
ssh = paramiko.SSHClient()
# 允许连接不在know_hosts文件中的主机
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接服务器
ssh.connect(hostname='c1.salt.com', port=22, username='wupeiqi', password='123')

# 执行命令
stdin, stdout, stderr = ssh.exec_command('df')
# 获取命令结果
result = stdout.read()

# 关闭连接
ssh.close()

2、SaltStack

听大人讲SaltStack的master上的pillar以及远程实施命令完结

import salt.client
local = salt.client.LocalClient()
local.cmd('*', 'cmd.run', ['whoami'])

3、Puppet

puppet中默认自带了5个report,放置在【/usr/lib/ruby/site_ruby/1.8/puppet/reports/】路径下。如果需要执行某个report,
那么就在puppet的master的配置文件中做如下配置:

######################## on master ###################
/etc/puppet/puppet.conf
[main]
reports = store #默认
#report = true #默认
#pluginsync = true #默认


####################### on client #####################

/etc/puppet/puppet.conf
[main]
#report = true #默认

[agent]
runinterval = 10
server = master.puppet.com
certname = c1.puppet.com

如上述设置之后,每次执行client和master同步,就会在master服务器的 【/var/lib/puppet/reports】路径下创建一个文件,主动执行:puppet agent  --test

图片 8

在 /etc/puppet/modules 目录下创建如下文件结构: 

modules
└── cmdb
    ├── lib
    │   └── puppet
    │       └── reports
    │           └── cmdb.rb
    └── manifests
        └── init.pp

################ cmdb.rb ################
# cmdb.rb
require 'puppet'
require 'fileutils'
require 'puppet/util'

SEPARATOR = [Regexp.escape(File::SEPARATOR.to_s), Regexp.escape(File::ALT_SEPARATOR.to_s)].join

Puppet::Reports.register_report(:cmdb) do
  desc "Store server info
    These files collect quickly -- one every half hour -- so it is a good idea
    to perform some maintenance on them if you use this report (it's the only
    default report)."

  def process
    certname = self.name
    now = Time.now.gmtime
    File.open("/tmp/cmdb.json",'a') do |f|
      f.write(certname)
      f.write(' | ')
      f.write(now)
      f.write("\r\n")
    end

  end
end


################ 配置 ################
/etc/puppet/puppet.conf
[main]
reports = cmdb
#report = true #默认
#pluginsync = true #默认 

自定义factor示例
图片 9

$LOAD_PATH.unshift(File.dirname(__FILE__)) unless $LOAD_PATH.include?(File.dirname(__FILE__))
require "rubygems"
require 'pp'
require 'json'
require 'utils'

def dmi_get_ram(cmd)

    ram_slot = []

    key_map = {
        'Size' => 'capacity',
        'Serial Number' => 'sn',
        'Type' => 'model',
        'Manufacturer' => 'manufactory',
        'Locator' => 'slot',
    }

    output = Utils.facter_exec(cmd)
    devices = output.split('Memory Device')

    devices.each do |d|
      next if d.strip.empty?
      segment = {}
      d.strip.split("\n\t").each do |line|
        key, value = line.strip.split(":")
        if key_map.has_key?(key.strip)
          if key.strip == 'Size'
            segment[key_map['Size']] = value.chomp("MB").strip.to_i / 1024.0 # unit GB
          else
            segment[key_map[key.strip]] =  value ? value.strip : ''
          end
        end
      end

      ram_slot.push(segment) unless segment.empty?
    end

    return ram_slot

end

Facter.add("ram") do
  confine :kernel => "Linux"
  setcode do

    ram_slot = []
    cmd = "dmidecode -q -t 17 2>/dev/null"
    ram_slot = dmi_get_ram(cmd)

    JSON.dump(ram_slot)

  end
end


Facter.add("ram") do
  confine :kernel => 'windows'
  setcode do

    ram_slot = []

    if Facter.value(:manufacturer)  =~ /.*HP.*/i
      cli = 'C:\cmdb_report\dmidecode.exe'
      cmd = "#{cli} -q -t 17"
      ram_slot = dmi_get_ram(cmd) if File.exist?(cli)

    else

      require 'facter/util/wmi'
      Facter::Util::WMI.execquery("select * from Win32_PhysicalMemory").each do | item |

        if item.DeviceLocator
          slot = item.DeviceLocator.strip
        else
          slot = ''
        end

        if item.PartNumber
          model = item.PartNumber.strip
        else
          model = ''
        end

        if item.SerialNumber
          sn = item.SerialNumber.strip
        else
          sn = ''
        end

        if item.Manufacturer
          manufactory = item.Manufacturer.strip
        else
          manufactory = ''
        end

        ram_slot.push({
         'capacity' => item.Capacity.to_i / (1024**3), # unit GB
         'slot' => slot,
         'model' => model,
         'sn' => sn,
         'manufactory' => manufactory,
       })

      end
    end

    JSON.dump(ram_slot)

  end
end

内部存款和储蓄器音讯

4、Agent

据说shell命令落成

图片 10  

 

对于Agent的本子的兑现思路:

  • Agent搜聚硬件费用
  • API提供有关管理的接口
  • 治本平台为用户提供可视化操作

 

 

浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure
Library, ITIL,新闻技能基础架构库)由United Kingdom政坛…

在商讨进度中,分明工作单元使用的IT服务的具体方法是相当重大的。要保险关于现实际效果果用途的对话。不要抱怨。大家的靶子是精通事情实际上是怎么着使用IT应用的。除了普通移动,大家平素在寻觅特定岗位和循环业务进度,因为它们或然与一般的借使分化等。譬如,大大多零售业务都遭遇一定事件的震慑,举例圣诞节和开学。相对应的,非常多看病服务集团都境遇突发流感恐怕管理入学时代的熏陶。

Python开发【Django】:CMDB开发,djangocmdb

那么,互联网大方将什么使用他们的学问以及经验来扶持他们的事体渡过难关呢?施行消息技术基础架构库ITIL)最优办法是帮忙我们的作业经受住难关的考验的最棒法子之一。周详使用ITIL将耗费多量的时刻和人工。由此,我们并无需全面地配置ITIL。互连网团队能够采取性地应用ITIL最优办法来为业务提供可度量价值,那样也许有利于网络团队在这段忧伤的生活中获得突破。

采摘每一种事情单元,搜集各类信息,并它们举办文书档案化。初始绘制一幅进程流和相关性的图。一旦我们将那么些新闻搜集到了一块儿,大家就足以圆满明白事情是怎么样利用IT服务的,特别是那么些影响网络利用的事体。现在我们早就足以进去首个步骤了:业务经过和功能的告诉。

相关文章