戴尔R740服务器获取cpu、内存、硬盘参数信息。

戴尔R740服务器获取cpu、内存、硬盘参数信息。使用redfish协议,只使用了system的一个总URL即可获取所有参数。


import requests
import json
requests.packages.urllib3.disable_warnings()

##使用一个system总的URL分别获取到cpu、内存、存储三个url.所以只修改system的URL即可
##sel日志单独使用URL获取

class GetHostInfo(object):
    def __init__(self,ipaddr,username,password):
        self.URLprefix=‘https://‘+ipaddr.strip()
        self.username=username.strip()
        self.password=password.strip()
        global token    ##同时存在4-5个token链接,每个token链接时间为5分钟,可以自己设置。
        token=0
        tokenurl=self.URLprefix+‘/redfish/v1/Sessions‘  ##dell获取token的ID
        print(tokenurl)
        data={
            "UserName":self.username,
            "Password":self.password
            }
        header={
            "Content-Type":"application/json"
            }
        re1=requests.post(tokenurl,json.dumps(data),headers=header,verify=False)
        #re1=requests.post(tokenurl,auth=(self.username,self.password),headers=header,verify=False)
        print (re1.status_code)
        if re1.status_code == 201:
            #print (re1.json())
            #print (re1.headers)
            print (re1.headers[‘X-Auth-Token‘])
            token=re1.headers[‘X-Auth-Token‘]
        else:
            pass
    def GetInfo(self,URL_suffix):  #定义总获取函数,传参url的后半部分。如‘/redfish/v1/Systems/1/Memory‘
        urlset=self.URLprefix+URL_suffix
        if token !=0:
            header = {
                "Content-Type":"application/json",
                "X-Auth-Token":token
                }
            re1=requests.get(urlset,headers=header,verify=False)
            print(re1.status_code)
            return re1.json()
        else:
            pass

def Collect_Info(ipaddr,username,password):
    dell740=GetHostInfo(ipaddr,username,password)
    ####total_system_URL收集/redfish/v1/Systems/System.Embedded.1
    select_system_total = ‘/redfish/v1/Systems/System.Embedded.1‘
    #print(‘cpu_total‘, hw2288HV5.GetInfo(select_cpu_total))
    temp_system_result1= dell740.GetInfo(select_system_total)
    if isinstance(temp_system_result1,dict) and (‘error‘ not in  temp_system_result1.keys() ):
        ##处理cpu
        cpu = temp_system_result1[‘Processors‘][‘@odata.id‘]  ##获取CPU的URL
        #print (‘Processors‘,dell740.GetInfo(cpu))
        cpu_result1 = dell740.GetInfo(cpu)
        cpu_count = cpu_result1[‘[email protected]‘]
        cpu_URLsuffix_list = [x[‘@odata.id‘] for x in cpu_result1[‘Members‘]]
        print(‘CPU count:‘, cpu_count)
        for single_cpuurl in cpu_URLsuffix_list:
            singlecpu_result2= dell740.GetInfo(single_cpuurl)
            if isinstance(singlecpu_result2, dict) and (‘error‘ not in singlecpu_result2.keys()):
                #print (‘singlecpu_result2‘,singlecpu_result2)
                print(‘CPU single name:‘, singlecpu_result2[‘Name‘])
                print(‘CPU single ID:‘, singlecpu_result2[‘Id‘])
                print(‘CPU single TotalCores(cpus):‘, singlecpu_result2[‘TotalCores‘])
                print(‘CPU single Model(cpus):‘, singlecpu_result2[‘Model‘])

        ###处理内存
        memory = temp_system_result1[‘Memory‘][‘@odata.id‘]  ##获取内存的URL
        memory_result1 = dell740.GetInfo(memory)
        memory_count = memory_result1[‘[email protected]‘]
        memory_URLsuffix_list = [x[‘@odata.id‘] for x in memory_result1[‘Members‘]]
        print (‘Memory count:‘,memory_count)
        for single_memoryurl in memory_URLsuffix_list:
            singlememory_result2 = dell740.GetInfo(single_memoryurl)
            if isinstance(singlememory_result2, dict) and (‘error‘ not in singlememory_result2.keys()):
                #print(‘singlecpu_result2‘, singlememory_result2)
                print(‘Memory name:‘, singlememory_result2[‘Name‘])
                print(‘Memory ID:‘, singlememory_result2[‘Id‘])
                print(‘Memory Size:‘, singlememory_result2[‘CapacityMiB‘])
                print(‘Memory Type:‘, singlememory_result2[‘MemoryDeviceType‘])

        ##处理存储
        storage = temp_system_result1[‘Storage‘][‘@odata.id‘]  ##获取存储URL
        #print (‘storage‘,dell740.GetInfo(storage))
        storage_result1 = dell740.GetInfo(storage)
        storage_URLsuffix_list = [x[‘@odata.id‘] for x in storage_result1[‘Members‘]]
        for single_storageurl in storage_URLsuffix_list:
            singlestorage_result2 = dell740.GetInfo(single_storageurl)
            if isinstance(singlestorage_result2, dict) and (‘error‘ not in singlestorage_result2.keys()):
                #print(‘singlecpu_result2‘, singlestorage_result2)
                disk_count=singlestorage_result2[‘[email protected]‘]
                print(‘disk count:‘,disk_count)
                print(‘storage name:‘,singlestorage_result2[‘Id‘])
                if disk_count >0: ##有的URL中disk为0,不需要去获取值
                    single_disk_URLsuffix_list = [x[‘@odata.id‘] for x in singlestorage_result2[‘Drives‘]]
                    for disk_single in single_disk_URLsuffix_list:
                        single_disk_result1 = dell740.GetInfo(disk_single)
                        if isinstance(single_disk_result1, dict) and (‘error‘ not in single_disk_result1.keys()):
                            #print (‘single_disk_result1‘,single_disk_result1)
                            print(‘disk name:‘, single_disk_result1[‘Name‘])
                            print(‘disk ID:‘, single_disk_result1[‘Id‘])
                            print(‘disk CapacityBytes:‘, single_disk_result1[‘CapacityBytes‘])
                            print(‘disk MediaType:‘, single_disk_result1[‘MediaType‘])
                        else:
                            pass
    ##获取sel日志
    logurlsuffix = ‘/redfish/v1/Managers/iDRAC.Embedded.1/Logs/Sel‘  ##日志sel
    sellog=dell740.GetInfo(logurlsuffix)
    if isinstance(sellog,dict) and (‘error‘ not in  sellog.keys() ):
        print(‘SEL log:‘,sellog)

if __name__ == ‘__main__‘:
    Collect_Info(‘10.252.209.7‘, ‘username‘, ‘password‘)

原文地址:https://blog.51cto.com/chier11/2459788

时间: 2024-10-24 15:07:38

戴尔R740服务器获取cpu、内存、硬盘参数信息。的相关文章

戴尔iDRAC服务器远程控制设置

对于远程的服务器,我们不能经常性的去机房维护,所以远程控制对于服务器来说就显得至关重要.那么你是用什么方式对服务器进行远程控制呢?远程桌面?还是KVM切换器?NO,你OUT了!如果你用的是戴尔的服务器,那么iDRAC功能不使用的话就是个极大的浪费哦. 那么什么是iDRAC呢?iDRAC又称为IntegratedDell Remote Access Controller,也就是集成戴尔远程控制卡,这是戴尔服务器的独有功能,iDRAC卡相当于是附加在服务器上的一计算机,可以实现一对一的服务器远程管理

Linux 查看机器配置,及cpu/内存/硬盘使用率

Linux下怎样查看机器配置啊?cpu/内存/硬盘 dmesg显示开机信息.kernel会将开机信息存储在ring buffer中.您若是开机时来不及查看信息,可利用dmesg来查看.开机信息亦保存在/var/log目录中,名称为dmesg的文件里 dmesg|grep hd硬盘dmesg|grep cpucpudmesg|grep proc内存dmesg|grep redhat操作系统dmesg|more更多信息uname -a操作系统版本 查看linux cpu和内存利用率2008-07-1

Windows 性能监视器的基本指标(CPU,内存,硬盘参数)

转载:http://kms.lenovots.com/kb/article.php?id=7045 Windows 性能监视器的基本指标(CPU,内存,硬盘参数) 作为一个系统工程师来说,要看懂监控的数据至关重要,关系着优化和分析出现的问题,因此,今天给出Windows 性能监视器的一些基本指标(CPU,内存,硬盘参数),希望对大家将来优化和分析问题提供帮忙. Windows -Processor 指标名称 指标描述 指标范围 指标单位 CPU利用率(% Processor Time) % Pr

VPS性能测试:CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试

现在便宜的VPS主机越来越多了,一些美国的VPS主机甚至给出1美元一月的VPS,堪比虚拟主机还要便宜,巨大的价格优势吸引不少人购买和使用,而近些年来国内的主机商也开始意识到便宜的VPS对草根站长的诱惑力,纷纷推出了低价VPS,其中突出的代表就是阿里云. 所谓“一分钱一分货”,把VPS当成虚拟主机来卖的如果不是做慈善事业就是超售严重,买回来的VPS到底值不值这个价钱,我们一般需要对VPS主机进行一番性能测试,涉及的项目主要有CPU内存,硬盘IO读写,带宽速度,UnixBench和压力测试等等. 本

系统出现bootmgr is missing解决方案,戴尔dell服务器装系统需要特别注意的问题

系统出现bootmgr is missing解决方案,戴尔dell服务器装系统需要特别注意的问题 欢迎关注http://blog.csdn.net/aaa123524457 转载请注明出处: http://blog.csdn.net/aaa123524457/article/details/47058013 本文章针对戴尔r530服务器.仅作备忘使用. 装系统,直接按着提示来就好.这里只列一下装系统的过程中需要特别注意的几个问题:也是系统出现bootmgr is missing的解决方案. 前几

戴尔PowerEdge服务器RAID控制卡的配置

示例演示环境:PowerEdge R620 + H710p Raid控制卡  + 9 x 300G 10k SAS 硬盘 H310.H710.H810的配置方法与H710P大致相同,在此不再累述. 特别说明,本文相关RAID的操作,仅供网友在测试环境里学习和理解戴尔PowerEdge服务器RAID控制卡的功能和使用方法.切勿直接在生产服务器上做相关实验,这可能有误操作并造成数据丢失的风险! 一.PERC卡RAID配置信息的初始化: 戴尔PowerEdge服务器RAID控制卡的配置,可以使用戴尔提

java获取cpu,内存,磁盘等信息

原文:java获取cpu,内存,磁盘等信息 源代码下载地址:http://www.zuidaima.com/share/1550463331306496.htm package com.zuidaima.util; import java.io.File; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.util.ArrayList; import java.util.List; imp

一个统计 CPU 内存 硬盘 使用率的shell脚本

一个统计 CPU 内存 硬盘 使用率的shell脚本,供大家学习参考 #!/bin/bash #This script is use for describle CPU Hard Memery Utilization total=0 idle=0 system=0 user=0 nice=0 mem=0 vmexec=/usr/bin/vmstat which sar > /dev/null 2>&1 if [ $? -ne 0 ] then ver=`vmstat -V | awk

linux系统下获取cpu、硬盘、内存使用率

1.linux上安装snmp服务 第一步:在公司192.168.100.171 Linux虚拟机上安装snmp服务. 第二步:通过HOST-RESOURCES-MIB库中的节点获取对应的值. 第三步:只能通过:1.3.6.1.2.1.25.1.1.0节点对象获取到系统运行时间,无法获取到其他节点的值. 第四步:修改/etc/snmp/snmpd.conf文件 添加一行:view    systemview    included   .1 第五步:修改完配置之后重启snmp服务. 2.cpu.硬