哪些挑选ITIL监察和控制工具

Infrastructure Technology Infrastructure Library
(ITIL)承诺能够提高员工生产力,缩短解决问题时间,以及将IT运营更加紧密地向业务目标看齐。但为了实现ITIL和使它投入运行,您必须首先找到正确的ITIL监控工具以便详细且精确地了解网络组件以及它们之间的数据流。

 ITIL:Information Technology Infrastructure Library
信息技术基础架构库,主要适用于IT服务管理(ITSM)。ITIL为企业的IT服务管理实践提供了一个客观、严谨、可量化的标准和规范。

大多数监控工具都依靠映射工具来收集网络设备和连接的信息;然后再测量和显示每个连接和设备层的使用汇总。但是,用来支持ITIL的监控工具并不只是用来测试总吞吐量,它还能显示每个应用的网络使用状态和最终用户可见的性能。

CMDB(Configuration Management Database 配置管理数据库)

这意味着ITIL监控工具也可以在7层协议上运行,并且提供关于用户发送请求之后多长时间才能获得响应的信息。这些工具将测量数据在网络中的传输时间,应用处理输入的时间,以及响应在网络上按原路返回到最终用户所需要的时间。例如,如果用户需要在1秒钟内得到响应,但是却必须等待10秒钟,那么网络团队就能够辨别出问题是出在网络还是应用本身。

存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密相联,支持这些流程的运转、发挥配置信息的价值,同时依赖于相关流程保证数据的准确性。在实际的项目中,CMDB常常被认为是构建其它ITIL流程的基础而优先考虑,ITIL项目的成败与是否成功建立CMDB有非常大的关系。
70%~80%的IT相关问题与环境的变更有着直接的关系。实施变更管理的难点和重点并不是工具,而是流程。即通过一个自动化的、可重复的流程管理变更,使得当变更发生的时候,有一个标准化的流程去执行,能够预测到这个变更对整个系统管理产生的影响,并对这些影响进行评估和控制。而变更管理流程自动化的实现关键就是CMDB。

有许多的供应商提供ITIL监控工具,包括CA
Technologies、EMC和HP以及其他一些小型供应商,如Infoblox和Ipswitch。

  • 整合是指能够充分利用来自其他数据源的信息,对CMDB中包含的记录源属性进行存取,将多个数据源合并至一个视图中,生成连同来自CMDB和其他数据源信息在内的报告
  • 调和能力是指通过对来自每个数据源的匹配字段进行对比,保证CMDB中的记录在多个数据源中没有重复现象,维持CMDB中每个配置项目数据源的完整性;自动调整流程使得初始实施、数据库管理员的手动运作和现场维护支持工作降至最低
  • 同步指确保CMDB中的信息能够反映联合数据源的更新情况,在联合数据源更新频率的基础上确定CMDB更新日程,按照经过批准的变更来更新
    CMDB,找出未被批准的变更
  • 应用映射与可视化,应用间的关系以及应用和其他组件之间的依存关系,变更造成的影响等
  • 配置项:纳入配置管理范畴的工作成果都是配置项(CI)
  • 配置项名称:配置项根据生成规则自动生成的名称信息
  • 设备名称:该设备的hostname
  • 设备序列号:设备的出厂S/N号码
  • 主管人员:设备/系统主管人员
  • 维护人员:设备/系统维护人员
  • 系统名称:该设备/应用/系统的标准名称(地市的系统名称则添加前缀地市名称,如:广州统一信息平台)
  • 区域:设备/系统/软件所使用公司划分,如:省公司、广州、深圳等
  • 网元状态:工程、退网、退网待删除、现网(不承载业务)、现网(承载业务)
  • 设备类型:使用设备的类型,即交换机、路由器、防火墙、小型机等
  • 品牌:设备的品牌,一般国外的厂商用英文大标识,国内的厂商用中文标识;虚拟机的品牌为虚拟技术实现的品牌,如Vmware等
  • 管理IP:设备的实际管理IP
  • 标准名:统一标准命名规范化;地市_业务系统_设备类型_编号
    。如:省公司_综合网管系统_防火墙_001

ITIL监控工具:购买时必须考虑什么

目前CMDB资产管理的实现有如下方式:
1.SSH类

网络配置信息必须保持更新并且能被ITIL监控工具访问。这意味着需要创建配置数据库,但是在ITIL
v3中这种方法已经发生了变化。ITIL v2需要使用一个Configuration Management
Data Base
(CMDB)保存网络各个方面的配置信息。这就包括了关于网络设备、服务器、OS软件和应用软件方面的详细信息。这个CMDB包括所有一般称为配置信息的信息,同时还包括软件版本级别、支持合同状态等信息。但是,使用单个CMDB在实际操作中比较不灵活。ITIL
v3建议创建多数据库,其中一个用于保存网络设备信息,一个用于保存服务器硬件信息,一个用于保存应用信息,等等。

基于CMDB中控机和SSH对远程服务器执行命令实现

1.
在做出选择之前,要先了解ITIL工具是如何交互的。在指定的ITIL数据库之间必须有恰当接口。例如,监控工具全天候地更新专门记录性能的数据库,从而记录关于网络使用状况变化的信息。如果一个设备或者连接重新配置或者出错了,那么必须在网络配置数据库中使用一个接口通知监控工具。

 1 # 基于paramiko模块, pip3 install paramiko
 2 import requests
 3 import paramiko
 4 
 5 # ################## 获取今日未采集主机名 ##################
 6 #result = requests.get('http://www.127.0.0.1:8000/assets.html')
 7 # result = ['c1.com','c2.com']
 8 
 9 
10 # ################## 通过paramiko连接远程服务器,执行命令 ##################
11 # 创建SSH对象
12 ssh = paramiko.SSHClient()
13 # 允许连接不在know_hosts文件中的主机
14 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
15 # 连接服务器
16 ssh.connect(hostname='192.168.179.130', port=22, username='root', password='')
17 
18 # 执行命令
19 stdin, stdout, stderr = ssh.exec_command('ifconfig')
20 
21 # 获取命令结果
22 result = stdout.read()
23 
24 # 关闭连接
25 ssh.close()
26 print(result)
27 
28 # data_dict = {result}
29 
30 # ##################  发送数据 ##################
31 # requests.post('http://www.127.0.0.1:8000/assets.html',data=data_dict)

如果从单一的供应商购买全套工具设备,兼容性是不会有问题的,但是如果要整合多个供应商的工具,兼容性就可能是一个问题。为了解决兼容性问题,有些供应商开发了支持更广泛地使用的其它供应商的产品的接口,或者将开放API添加到它们的产品中。

去api取今天未采集资产的主机列表,把主机名拿过来,远程连接服务器,执行命令,把结果拿回来,给中控机再汇报给api–负责入库。

2.
选择能够让您专注于导致性能降低的问题根源的ITIL工具。在重要的应用中,对降低的性能作出反应需要能够快速地确定问题根源所在。虽然价格较低的监控工具可以显示网络上的所有活动,但是却很难专注于重要的流量。由于网络中的情况非常复杂,因此很难屏闭屏幕上所有的不重要的信息而只关注于您特别需要的信息。工具必须能够适时地监控最重要的应用。

优点是无agent,缺点是慢

3.
选择一个可以测量单个事务持续时间的ITIL监控工具。虽然吞吐率是重要的,但是最终用户关心的是在发出请求之后事务执行的时间。如果事务执行时间对于关键应用来说是可以接受的,那么就无须担心底层的事务细节了。

2.Agent 基于shell命令实现

如何为ITIL映射网络

import subprocess
import requests
# pip3 install requests

# ################## 采集数据 ##################
result = subprocess.getoutput('ipconfig')
# result正则处理获取想要数据

# 整理资产信息
data_dict ={
    'nic': {},
    'disk':{},
    'mem':{}
}

##################  发送数据 ##################
requests.post('http://www.127.0.0.1:8000/assets.html',data=data_dict)

首先是使用这些工具来映射网络。最初的网络扫描通常是识别可删除的设备。如果交换机有不用的端口,那么可以将激活的连接整合到较少的交换机上而减少一台交换机。扫描也可能检测出非法的设备,如果雇员将他们自己购买的Wi-Fi接入端连接到网络上,就会造成严重的安全漏洞。

对于Agent的版本的实现思路:

定期重新扫描网络。虽然网络修改必须记录在配置数据库上,但并不是随时进行记录。要根据您过去的经验,确定需要多久时间才重新对未记录的更改进行扫描。

  • Agent采集硬件资产
  • API提供相关处理的接口
  • 管理平台为用户提供可视化操作

ITIL网络监控:选择监控哪种应用

3.saltstack

分析网络应用的过程一般是从详细分析网络设备性能开始的。虽然这是非常有用的信息,但是要选择一种应用开始分析,最理想的是选择产生问题最多的那一个应用开始分析。要使用映射和监控工具来了解哪些服务器在使用,它们之间的路径,预期的数据传输速率和所需要的延迟。要确定整体应用中哪个部分导致了问题的发生——可能是服务器问题、磁盘争夺或者网络阻塞。要专注于这个问题并解决它。这样最终用户将很快看到应用的改进。这种正面的反馈恰恰证明了在ITIL中投入的时间和精力都是值得的。

# 1. 安装saltstack
#       rpm --import https://repo.saltstack.com/yum/redhat/6/x86_64/latest/SALTSTACK-GPG-KEY.pub
#

        Master: yum install salt-master
       Master准备:
            a. 配置文件,监听本机IP
                vim /etc/salt/master
                interface: 本机IP地址
            b. 启动master
                /etc/init.d/salt-master start


        Slave:  yum install salt-minion
        Slave准备:
            a. 配置文件,连接那个master
                vim /etc/salt/minion 16行
                master: 远程master地址
            b. 启动slave
                /etc/init.d/salt-minion start

2. 创建关系
    查看
    Master:salt-key -L
        Accepted Keys:
        Denied Keys:
        Unaccepted Keys:
            c1.com
            c2.com
            c3.com
        Rejected Keys:
    接受
    Master:salt-key -a c1.com
        Accepted Keys:
            c1.com
            c2.com
        Denied Keys:
        Unaccepted Keys:
            c3.com
        Rejected Keys:

3. 执行命令
    master:
        salt 'c1.com' cmd.run  'ifconfig'
    import salt.client
    local = salt.client.LocalClient()
    result = local.cmd('c2.salt.com', 'cmd.run', ['ifconfig'])

    vim /usr/bin/salt

import requests
################## 获取今日未采集主机名 ##################
result = requests.get('http://www.127.0.0.1:8000/assets.html')
result = ['c1.com','c2.com']


################## 远程服务器执行命令 ##################
import subprocess
result = subprocess.getoutput("salt 'c1.com' cmd.run  'ifconfig'")

import salt.client
local = salt.client.LocalClient()
result = local.cmd('c2.salt.com', 'cmd.run', ['ifconfig'])

##################  发送数据 ##################
requests.post('http://www.127.0.0.1:8000/assets.html',data=data_dict)

在全面地检查初始应用之后,接下来是处理其它的应用。要通过每个分析得到的信息继续监控应用性能,检测问题,并估计将来由于业务需求变化引起的流量级别变化而带来的容量问题。

4.Puppet
基于Puppet的factor和report功能实现

虚拟化:主要的挑战

优点是自动汇报,缺点是使用ruby语言

在组件和设备上大量的端口都是固定的情况下,了解应用和网络流量都已经很困难了。但是在引进了可以在物理服务器之间迁移的虚拟服务器之后,再加上虚拟网络接口是可以实时地创建或删除,使得监控网络健康状态的难度急剧加大。系统和网络管理工具之间的接口必须允许虚拟环境中的修改可以快速的生效。

 

之前关于服务器的描述包括了其物理部分、OS、数据库和应用,在虚拟化中还必须包括不断更新的虚拟软件记录,及其中运行的大量的VM和一整套应用。

 

其中最重要的是,网络和系统人员必须一起协作,以便了解每个应用可能的物理服务器范围,同时配置服务器和网络来提供稳定的性能来支持应用的运行。

Technology Infrastructure Library
(ITIL)承诺能够提高员工生产力,缩短解决问题时间,以及将IT运营更加紧密地向业务目标看齐。但为了…

相关文章