界面1

api,cli,gui,tui,dmi(smbios),ipmi,bios,efi,uefi

http://www.gnu.org/software/freeipmi/documentation.html

smbios/dmi

SMBIOS(System Management BIOS)是主板或系统制造者以标准格式显示产品管理信息所需遵循的统一规范。
SMBIOS和DMI是由行业指导机构Desktop Management Task Force (DMTF)起草的开放性的技术标准,其中DMI设计适用于任何的平台和操作系统。
DMI(Desktop Management Interface, DMI)就是帮助收集电脑系统信息的管理系统,DMI信息的收集必须在严格遵照SMBIOS规范的前提下进行。
DMI(Desktop Management Interface, DMI)的主要组成部分是Management Information Format (MIF)数据库
这个数据库包括了所有有关电脑系统和配件的信息。通过DMI,用户可以获取序列号、电脑厂商、串口信息以及其它系统配件信息。

对于符合 SMBIOS 规范的计算机,可以通过访问 SMBIOS 的结构获得系统信息,共有两种办法可以访问:
1. 通过即插即用功能接口访问 SMBIOS 结构,这个在 SMBIOS2.0 标准里定义了,从 SMBIOS 2.1 开始这个访问方法不再被推荐使用。
2.基于表结构的方法,表内容是 table entry point 的数据,这个访问方法从 SMBIOS 2.1 以后开始被使用,从 2.1 开始,以后的版本都推荐使用这种访问方式。在 2.1 版本中允许支持这两种方法中的任意一种和两种都支持,但在 2.2 以后的版本,必须支持方法 2 。在最新的 2.7.0 版中第一种方法已经废弃。
鉴于市场上计算机已经均支持 SMBIOS2.3 标准,所以只考虑方法 2 ,基于表结构的访问方式。基于表结构访问 SMBIOS 的过程是先找到 Entry Point Structure ( EPS )表,然后通过 Entry Point Structure ( EPS )表的数据找到 SMBIOS 结构表。

从 SMBIOS 2.3 版本开始,兼容 SMBIOS 的实现必须包含以下 10 个数据表结构: BIOS 信息 (Type 0) 、系统信息 (Type 1) 、系统外围或底架(Type 3) 、处理器信息 (Type 4) 、高速缓存信息 (Type 7) 、系统插槽 (Type 9) 、物理存储阵列 (Type 16) 、存储设备 (Type 17) 、存储阵列映射地址(Type 19) 、系统引导信息 (Type 32) 。

其他的结构表则可根据实际来决定是否需要实现。最新的 SMBIOS 2.7.0 版中定义的所有结构表包括 Type 0-Type 42 ,其中 Type 5 、 Type 6 和Type 10 已经废弃。另外还有 Type 126 和 Type 127 两个特殊结构表。如下:

BIOS 信息 (Type 0) 、系统信息 (Type 1) 、基板(或模块)信息 (Type 2) 、系统外围或底架 (Type 3) 、处理器信息 (Type 4) 、存储控制器信息(Type 5, 已 废弃 ) 、存储模块信息 (Type 6, 已废弃 ) 、调整缓存信息 (Type 7) 、端口连接器信息 (Type 8) 、系统插槽 (Type 9) 。

板载设备信息 (Type 10) 、 OEM 字符串 (Type 11) 、系统配置选项 (Type 12) 、 BIOS 语言信息 (Type 13) 、组相联 (Type 14) 、系统事件日志(Type 15) 、物理存储阵列 (Type 16) 、存储设备 (Type 17) 、 32-bit 内存错误信息 (Type 18) 、存储阵列映射地址 (Type 19) 。

存储设备映射地址 (Type 20) 、内建指针设备 (Type 21) 、便携式电池 (Type 22) 、系统重置 (Type 23) 、硬件安全 (Type 24) 、系统电源控制 (Type 25) 、电压探针 (Type 26) 、冷却设备 (Type 27) 、温度传感器 (Type 28) 、电流探头 (Type 29) 。

越界远程访问 (Type 30) 、引导完整性服务 (BIS) 入口点 (Type 31) 、系统引导信息 (Type 32) 、 64-bit 内存错误信息 (Type 33) 、管理设备 (Type 34) 、管理设备组件 (Type 35) 、管理设备门槛数据 (Type 36) 、存储信道 (Type 37) 、 IPMI 设备信息 (Type 38) 、系统供电电源 (Type 39) 。

附加信息 (Type 40) 、板载设备扩展信息 (Type 41) 、管理控制器主机接口 (Type 42) 。

不活动指示 (Type 126) 、表格结束指示 (Type 127) 。

SMBIOS 的大部分结构表数据在 CIM 模型中都有对应的实现,比如底架信息对应 CIM_Chassis ,处理器信息对应 CIM_Processor ,内存信息对应CIM_Memory 等。

=====================================

linux下读取dmi信息,需要依赖dmidecode工具。
https://blog.csdn.net/tody_guo/article/details/23708527
Dmidecode 遵循 SMBIOS/DMI 标准,其输出的信息包括 BIOS、系统、主板、处理器、内存、缓存等等。

dmidecode - DMI table decoder

dmidecode is a tool for dumping a computer’s DMI (some say SMBIOS) table contents in a human-readable format. This table contains a description
of the system’s hardware components, as well as other useful pieces of information such as serial numbers and BIOS revision. Thanks to this
table, you can retrieve this information without having to probe for the actual hardware.

SMBIOS stands for System Management BIOS, while DMI stands for Desktop Management Interface. Both standards are tightly related and developed by the DMTF (Desktop Management Task Force).

=====================================

linux下读取ipmi信息,需要依赖ipmitool工具。

http://blog.csdn.net/lanyang123456/article/details/51712878
简介
安装
使用
    配置用户
    配置网络

==============================
IPMI协议被广泛用于服务器监控中,包括采集CPU温度、风扇转速、主板温度,以及远程开关机等等。而且IPMI独立于硬件和操作系统,无论是CPU、BIOS,还是OS出现故障,都不会影响IPMI的工作。因为IPMI的硬件设备BMC(Baseboard Management Controller)是一个独立的板卡,独立供电。

智能平台管理接口(IPMI)

跟snmp类似,都是udp的

ipmi是一个标准,用的协议是rmcp

smbios是一个标准,dmi

相信大家都用过一些系统检测软件 , 或者至少用过 Windows 优化大师里面的系统检测。实际上,应用程序程序就可以通过访问 SMBIOS 来获得这些信息。

ipmitool - utility for controlling IPMI-enabled devices

This program lets you manage Intelligent Platform Management Interface (IPMI) functions of either the local system

-----------------------------------------------

ipmitool这个程序能够使你通过一个kernel设备驱动或者一个远程系统,利用IPMIv1.5或IPMIv2.0 来 管理本地系统的任何一个智能平台管理接口(IPMI)功能。这些功能包括打印FRU(现场可替换装置)信息、LAN配置、传感器读数、以及远程机架电源控制。
一个本地系统接口的IPMI管理功能需要一个兼容IPMI的kernel驱动程序被安装以及配置。在Linux中,这个驱动叫做OpenIPMI,他被包括在了标准化分配中。在Solaris系统中,这个驱动叫做BMC,他被包括在了Solaris 10中。远程控制的管理需要授权以及配置IPMI-over-LAN接口。根据每个系统独特的需要,它可以通过系统接口来使LAN接口使用 ipmitool。

-----------------------------------------------

Ipmitool的open接口利用openipmi的内核设备驱动程序。该驱动存在于所有的现代2.4和所有2.6核心中,以及它应该出现在最新的 Linux发行版的内核中。在OpenIPMI的主页中同样有各种针对于使不同版本的核心可用的IPMI驱动核心补丁。

Ipmitool的lan接口在IPv4下利用UDP通过一个以太局域网连接与BMC相关联。UDP数据报被格式化,通过一个IPMI会话头与RMCP(远程管理控制协议)头 来包含IPMI请求/回复。
       IPMI-over-LAN利用了1版本的远程管理控制协议(RMCP)来支持预操作系统和操作系统缺失的管理。RMCP是一个在623端口上利用UDP数据报的一个请求-回复传输协议。
       LAN接口是一个自动的多会话连接;移交给BMC的信息可以用一个 攻击/回应 协议来认证,使用一个直密码/key或 消息摘要算法。Ipmitool将会尝试着使用administrator权限级别来连接 从而来执行机架电源功能。
       你可以让ipmitool使用lan接口通过“-I lan”操作:
           ipmitool -I lan -H<hostname> [-U <username>] [-P <password>] <command>
       当使用ipmitool的lan接口时,在命令行中必须要主机名。密码部分是可选的;如果在命令行中没有提供密码,ipmitool将会在无验证的情况下去连接。如果你指定了密码,他将使用MD5认证。

-----------------------------------------------


本地监控:
需要安装:
    IPMI驱动(硬件设备被操作系统识别)
    ipmitool或其他工具(通过驱动获取服务器信息)

远程监控:
只需要在客户端安装ipmitool或其他工具
远程模式下,IPMI使用RMCP,RMCP基于UDP协议实现。
远程监控也就是基于UDP的网络通信。
服务器IPMI使用的端口一般是623.

==============================
在centos上安装工具包
yum install ipmitool
ipmitool这个工具能工作的前提是,主机上要有bmc这块嵌入式芯片,才能进行探测

==============================

[root@kvm2 ~]# ipmitool -h
ipmitool version 1.8.15

usage: ipmitool [options...] <command>

       -h             This help
       -V             Show version information
       -v             Verbose (can use multiple times)
       -c             Display output in comma separated format

[root@kvm2 ~]# ipmitool shell

ipmitool> sdr help
ipmitool> fru
FRU Device Description : Builtin FRU Device (ID 0)
 Chassis Type          : Other
 Chassis Serial        : 06HENEK
 Chassis Extra         : 7dd6d49e957a11e5ae8f0894ef09d46a
 Board Mfg Date        : Mon Nov  2 20:00:00 2015
 Board Mfg             : IBM
 Board Product         : System Board

===============================
使用IPMI监控服务器主要有两种模式:本地和远程。

===============================
配置用户
通道,用户,密码,权限
一个通道上可以有13个用户

[root@kvm2 ~]# ipmitool channel info
Channel 0x8 info:
  Channel Medium Type   : System Interface
  Channel Protocol Type : KCS
  Session Support       : session-less
  Active Session Count  : 0
  Protocol Vendor ID    : 7154

[root@kvm2 ~]# ipmitool user summary 1
Maximum IDs         : 13
Enabled User Count  : 1
Fixed Name Count    : 1
[root@kvm2 ~]# ipmitool user summary 2
Maximum IDs         : 13
Enabled User Count  : 1
Fixed Name Count    : 1


[root@kvm2 ~]# ipmitool user list 1
ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
2   USERID           true    true       true       ADMINISTRATOR

[root@kvm2 ~]# ipmitool user set name 2 aab

[root@kvm2 ~]# ipmitool user list 1
ID  Name             Callin  Link Auth  IPMI Msg   Channel Priv Limit
2   aab              true    true       true       ADMINISTRATOR

[root@kvm2 ~]# ipmitool user set password 2 test

channel 为1,user ID为2,privilege为4

得到通道访问权限
[root@kvm2 ~]# ipmitool channel getaccess 1 1
Maximum User IDs     : 13
Enabled User IDs     : 1

User ID              : 1
User Name            :
Fixed Name           : Yes
Access Available     : call-in / callback
Link Authentication  : disabled
IPMI Messaging       : disabled
Privilege Level      : NO ACCESS

[root@kvm2 ~]# ipmitool channel getaccess 1 2
Maximum User IDs     : 13
Enabled User IDs     : 1

User ID              : 2
User Name            : aab
Fixed Name           : No
Access Available     : call-in / callback
Link Authentication  : enabled
IPMI Messaging       : enabled
Privilege Level      : ADMINISTRATOR


这是远程的通道

ipmitool> channel info
Channel 0x1 info:
Channel Medium Type : 802.3 LAN
Channel Protocol Type : IPMB-1.0
Session Support : multi-session
Active Session Count : 1
Protocol Vendor ID : 7154
Volatile(active) Settings
Alerting : enabled
Per-message Auth : enabled
User Level Auth : enabled
Access Mode : always available
Non-Volatile Settings
Alerting : enabled
Per-message Auth : enabled
User Level Auth : enabled
Access Mode : always available


===============================
配置网络
这个地方配置的IP没有什么限制,只要不与其他机器IP冲突,符合IP规则即可。

ipmitool lan set 1 ipaddr 192.168.60.45
ipmitool lan set 1 netmask *.*.*.*
ipmitool lan set 1 defgw ipaddr *.*.*.*
ipmitool lan set 1 access on
ipmitool lan print 1

如果没有-I选项,ipmitool默认使用open,即Linux OpenIPMI
lanplus是lan的增强版
lan及lanplus主要用于远程监控

==================================
采用entity id + sensor id 就可以唯一确定一个数据

远程监控一例
获取远程主机10.10.228.118的传感器列表,端口623,用户为test,密码为test
ipmitool -I lanplus -H 10.10.228.118 -p 623 -U test -P "test" sdr list
ipmitool -H 192.168.60.10 -U test -P "test" sdr list

远程监控用下面这个命令最合适,然后看帮助。

ipmitool -I lanplus -H 172.17.0.4 -p 623 -U USERID -P "PASSW0RD" shell

ipmitool>sdr help
================================

ipmitool sdr entity
ipmitool sdr help
[root@kvm2 ~]# ipmitool sdr info
SDR Version                         : 0x51
Record Count                        : 323
Free Space                          : 20242 bytes
Most recent Addition                :
Most recent Erase                   :
SDR overflow                        : no
SDR Repository Update Support       : non-modal
Delete SDR supported                : yes
Partial Add SDR supported           : yes
Reserve SDR repository supported    : yes
SDR Repository Alloc info supported : yes

[root@kvm1 ~]# ipmitool sdr entity 35
OS RealTime Mod  | 15h | ok  | 35.1 |
[root@kvm1 ~]# ipmitool -v sdr entity 35
Sensor ID              : OS RealTime Mod (0x15)
 Entity ID             : 35.1 (Operating System)
 Sensor Type (Discrete): System Event (0x12)
 Sensor Reading        : 0h
 Event Message Control : Per-threshold
 Assertions Enabled    : Digital State
                         [State Deasserted]
 Deassertions Enabled  : Digital State
                         [State Deasserted]
 OEM                   : 0

原文地址:https://www.cnblogs.com/createyuan/p/8359766.html