365bet体育手机客户端:应对一石两鸟衰退 网络管理如何利用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
部门的积极辅助。更要紧的是,那么些部门对此项目标作业价值要有同样的接头,因为她们每一个都只怕会面前遭逢新的公司可视性他们在老董仪表板上的测验指标),对
有个别事物失去调整应对难题的新流程),大概吐弃二个最受迎接的工具。开头三个微型的
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…

浅谈ITIL

  TIL即IT基础架构库(Information
Technology Infrastructure Library,
ITIL,音讯才干基础框架结构库)由U.K.政党部门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)

 公布管理是指对通过测量试验后导入实际应用的剧增或改变后的布局项进行分发和宣传的田间管理流程。发表管理在此以前又称之为软件调节与分发。

指标是:在实际运作条件的发表中,交付、分发并追踪三个或多少个改换。

 

实际职业场景中自动化工具举个例子:

365bet体育手机客户端 1

 

 

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

那么,互连网大方将怎样运用他们的文化以及经验来帮衬她们的专门的学业渡过难关呢?施行音信技巧基础架构库ITIL)最优办法是支援大家的业务经受住难关的考验的最棒措施之一。全面应用ITIL将花费大批量的年月和人工。因而,大家并无需周详地配备ITIL。互联网团队能够选拔性地应用ITIL最优办法来为作业提供可度量价值,那样也推动互联网团队在这段难熬的日子中获得突破。

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

365bet体育手机客户端 2365bet体育手机客户端 3

在 /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示例

365bet体育手机客户端 4365bet体育手机客户端 5

$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命令完结

365bet体育手机客户端 6  

 

对此Agent的本子的完成思路:

  • Agent搜集硬件开销
  • API提供相关管理的接口
  • 管住平台为用户提供可视化操作

 

 

浅谈ITIL

  TIL即IT基础框架结构库(Information Technology Infrastructure Library,
ITIL,新闻本事基础架构库)由英帝国政党部门CCTA(Central Computing and
Telecommunications Agency)在20世纪80年份末制定,现由United Kingdom商务分公司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)

 公布管理是指对通过测量试验后导入实际接纳的增加产量或改换后的配备项进行分发和宣传的田管流程。发表管理此前又称为软件调整与分发。

指标是:在实质上运作意况的公布中,交付、分发并追踪二个或八个转移。

 

实则职业情景中自动化学工业具比方:

365bet体育手机客户端 7

 

 

本章是这一雨后玉兰片的率先有的,大家将追究网络大方们采取ITIL最优办法来增加援救专业同伴对裁减资金作出更加的多明智的决定并与消沉本钱相和煦的秘籍。在这一多级中,我们将探寻关于理解事情经过、调解作业经过报告、革新财务的艺术,同时与业务单位创立优秀的办事事关。

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

365bet体育手机客户端 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示例
365bet体育手机客户端 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命令完结

365bet体育手机客户端 10  

 

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

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

 

 

浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure
Library, ITIL,消息本事基础架构库)由United Kingdom政坛…

明亮事情进程

日前,大相当多高档老板都在条分缕析不一样工作区域所蒙受的经济影响。大好些个老板大概正在思考发售业务单位依旧外包成效和服务以便收缩支出。不幸的是,大好多的体量规划团队都不是从为业务决策提供实质性价值的角度实行思考的。Forrester和Gartner的钻研显得,有专门的学问的IT容积管理统一希图的集团不到二分一。并且这个规划的绝大大多也同情于思考单个IT组件,因而不可能将用法归于一个特定的作业进度照旧功能。

发表评论

电子邮件地址不会被公开。 必填项已用*标注