柴少鹏的官方网站 技术在分享中进步,水平在学习中升华

ipmitool总结

一、ipmitool介绍

1.1 ipmitool简介

        ipmitool 是一种可用在 linux 系统下的命令行方式的 ipmi 平台管理工具,它支持 ipmi 1.5 规范(最新的规范为 ipmi 2.0),通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。

        IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。Ipmi 最大的优势在于它是独立于 CPU BIOS 和 OS 的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。Ipmi 是一种规范的标准,其中最重要的物理部件就是BMC(Baseboard Management Controller 如下图),一种嵌入式管理微控制器,它相当于整个平台管理的“大脑”,通过它 ipmi 可以监控各个传感器的数据并记录各种事件的日志。如下图:

图片.png

#可以本地调用,利用本地操作系统接口与bmc通信。也可以远程调用,通过网络以udp报文形式与bmc通信。

1.2 IPMI工作原理

       IPMI的核心是一个专用芯片/控制器(叫做服务器处理器或基板管理控制器(BMC)),其并不依赖于服务器的处理器、BIOS或操作系统来工作,可谓非常地独立,是一个单独在系统内运行的无代理管理子系统,只要有BMC与IPMI固件其便可开始工作,而BMC通常是一个安装自爱服务器主板上的独立的板卡,现在也有服务器主板提供对IPMI支持的。IPMI良好的自治特性便克服了以往基于操作系统的管理方式所受的限制,例如操作系统不响应或未加载的情况下其仍然可以进行开关机、信息提取等操作。

      在工作时,所有的IPMI功能都是向BMC发送命令来完成的,命令使用IPMI规范中规定的指令,BMC接收并在系统事件日志中记录事件消息,维护描述系统中传感器情况的传感器数据记录。在需要远程访问系统时,IPMI新的LAN上串行(SOL)特性很有用。SOL改变IPMI会话过程中本地串口传送方向,从而提供对紧急管理服务、Windows专用管理控制台或Linux串行控制台的远程访问。BMC通过在LAN上改变传送给串行端口的信息的方向来做到这点,提供了一种与厂商无关的远程查看启动、操作系统加载器或紧急管理控制台来诊断和维修故障的标准方式。

图片.png

       当需要对系统文本控制台进行远程访问时,Serial Over LAN (SOL) 功能将非常有用。SOL 通过 IPMI 会话重定向本地串行接口,允许远程访问 Windows 的紧急事件管理控制台 (EMS) 特殊管理控制台 (SAC),或访问 LINUX 串行控制台。这个过程的步骤是 IPMI 固件截取数据,然后通过局域网重新发送定向到串行端口的信息。 这就提供了远程查看 BOOT、OS 加载器或紧急事件管理控制台以诊断并修复服务器相关问题的标准方法,而无需考虑供应商。它允许在引导阶段配置各种组件。而在命令传输的安全性方面,用户也无需担心,IPMI增强的认证(基于安全哈希算法1和基于密钥哈希消息认证)和加密(高级加密标准和Arcfour)功能有助于实现安全的远程操作。对VLAN的支持更是为设置管理专用网络提供了方便,并且可以以通道为基础进行配置。

       一般来说,BMC具有以下功能:

1.通过系统的串行端口进行访问
2.故障日志记录和SNMP警报发送
3.访问系统事件日志 (System Event Log ,SEL) 和传感器状况
4.控制包括开机和关机
5.独立于系统电源或工作状态的支持
6.用于系统设置、基于文本公用程序和操作系统控制台的文本控制台重定向

       而通过IPMI ,用户可以主动监测组件的状况,以确保不超出预置阈值,例如服务器温度。这样,通过避免不定期的断电,协助维护了 IT 资源的运行时间。 IPMI的预告故障能力也有助于 IT 周期的管理。通过检查系统事件日志 (SEL),可以更轻松的预先判定故障组件。

1.3 简单ipmi部署

# dmidecode |grep -A  9 IPMI   #出现下面的信息说明有IPMI固件,当前设备支持IPMI

IPMI Device Information
        Interface Type: KCS (Keyboard Control Style)
        Specification Version: 2.0   #可以看到版本号是2.0
        I2C Slave Address: 0x10
        NV Storage Device: Not Present
        Base Address: 0x0000000000000CA8 (I/O)
        Register Spacing: 32-bit Boundaries
        Interrupt Polarity: Active High
        Interrupt Trigger Mode: Edge
        Interrupt Number: a

# yum -y install OpenIPMI OpenIPMI-devel OpenIPMI-tools    #软件安装也很简单直接yum安装一下就可以了

# ipmitool -V

ipmitool version 1.8.18

# service ipmi start

# ipmitool -h  #查看下帮助

ipmitool version 1.8.18
usage: ipmitool [options...] <command>
-h  #打印帮助
-V  #打印版本
-v  #详细可以使用多次
-c  #以逗号分隔格式显示输出
-d N  #指定要使用的/dev/ipmiN设备(默认值= 0)
-I intf  #使用接口
-H hostname  #LAN接口的远程主机名称
-p port   #远程RMCP端口[默认= 623]
-U username  #远程会话用户名
-f file  #从文件读取远程会话密码
-z size  #更改通信渠道(OEM)的大小
-S sdr   #使用本地文件进行远程SDR缓存
-D tty:b[:s]  #指定要使用的串口设备,波特率,并可选择指定该接口是系统接口
-4   #只使用IPv4
-6   #只使用IPv6
-a   #提示输入远程密码
-Y   #提示用于IPMIv2身份验证的Kg密钥
-e char  #设置SOL转义字符
-C ciphersuite   #Lanplus接口使用的密码套件
-k key   #使用Kg键进行IPMIv2验证
-y hex_key  #使用十六进制编码的Kg密钥进行IPMIv2身份验证
-L level    #远程会话权限级别[default = ADMINISTRATOR]在RAKP1中追加“+”以使用名称/特权查找
-A authtype  #强制使用auth type NONE,PASSWORD,MD2,MD5或OEM
-P password  #远程会话密码
-E   #从IPMI_PASSWORD环境变量中读取密码
-K   #从IPMI_KGKEY环境变量中读取kgkey
-m address  #设置本地IPMB地址
-b channel  #设置桥接请求的目标信道
-t address  #桥接请求到远程目标地址
-B channel  #设置桥接请求的传输通道(dual bridge)
-T address  #设置桥接请求的传输地址(dual bridge)
-l lun   #设置原始命令的目的地lun
-o oemtype  #为OEM设置(使用“list”查看可用的OEM类型)
-O seloem   #使用文件进行OEM SEL事件描述
-N seconds  #指定lan [default = 2]/lanplus [default = 1]接口的超时时间
-R retry    #设置lan/lanplus接口的重试次数[default = 4]

Interfaces:
   open  #Linux OpenIPMI接口[默认]
   imb   #英特尔IMB接口
   lan   #IPMI v1.5 LAN Interface 
   lanplus  #IPMI v2.0 RMCP+ LAN Interface 
   serial-terminal  #串行接口,终端模式
   serial-basic   #串行接口,基本模式
   usb   #IPMI USB接口(AMI设备的OEM接口)
Commands:   
   raw   #发送RAW IPMI请求并打印响应
   i2c   #发送一个I2C主写读命令并打印响应
   spd   #从远程I2C设备打印SPD信息
   lan   #配置LAN信道
   chassis  #获取机箱状态并设置电源状态
   power    #机箱电源命令的快捷方式
   event  #向MC发送预定义的事件
   mc    #管理控制器状态和全局启用
   sdr   #打印传感器数据库条目和读数
   sensor  #打印详细的传感器信息
   fru   #打印内置FRU并扫描FRU定位器的SDR
   gendev   #与通用设备定位器sdr相关的读/写设备
   sel    #打印系统事件日志(SEL)
   pef   #配置平台事件过滤(PEF)
   sol   #配置并连接IPMIv2.0串行LAN
   tsol  #配置并连接Tyan IPMIv1.5 LAN上串行
   isol  #配置IPMI v1.5 Serial-over-LAN
   user  #配置管理控制器用户
   channel  #配置管理控制器通道
   session  #打印会话信息
   dcmi   #数据中心管理接口
   nm   #节点管理器接口
   sunoem  #Sun服务器的OEM命令
   kontronoem  #Kontron devices的OEM命令
   picmg   #运行一个PICMG/ATCA扩展命令
   fwum   #使用Kontron OEM固件更新管理器更新IPMC
   firewall  #配置固件防火墙
   delloem   #戴尔系统的OEM命令
   shell   #Launch interactive IPMI shell
   exec   #从文件运行命令列表
   set   #为shell和exec设置运行时变量
   hpm   #使用PICMG HPM.1文件更新HPM组件
   ekanalyzer  #使用FRU文件运行FRU-Ekeying analyzer
   ime   #更新英特尔管理引擎固件
   vita  #运行VITA 46.11扩展命令
   lan6  #配置IPv6 LAN信道

#详细怎么用?# man ipmitool

二、跟着man帮助说明记录一些(关于commands这块)

2.1 channel

# ipmitool channel info   #显示有关选定频道的信息。 如果没有给出频道,它将显示关于当前使用的频道的信息。

Channel 0x4 info:
  Channel Medium Type   : System Interface
  Channel Protocol Type : KCS
  Session Support       : session-less
  Active Session Count  : 0
  Protocol Vendor ID    : 7154
#用channel authcap <channel number> <max priv>  以指定的权限级别显示有关所选通道的身份验证功能的信息。

2.2 chassis

# ipmitool chassis status   #有关power, buttons, cooling, drives and faults的状态信息

System Power         : on     #系统电源
Power Overload       : false  #电源过载
Power Interlock      : inactive  #电源联锁  inactive是不活跃的
Main Power Fault     : false    #主电源故障
Power Control Fault  : false    #电源控制故障
Power Restore Policy : previous   #电源恢复策略
Last Power Event     :          #最新的电源事件
Chassis Intrusion    : inactive  #Chassis侵入
Front-Panel Lockout  : inactive  #前面板锁定
Drive Fault          : false   #驱动器故障
Cooling/Fan Fault    : false   #冷却/风扇故障
Sleep Button Disable : not allowed  #睡眠按钮禁用
Diag Button Disable  : allowed   #诊断按钮禁用
Reset Button Disable : not allowed  #重置按钮禁用
Power Button Disable : allowed   #电源按钮禁用
Sleep Button Disabled: false   #睡眠按钮禁用
Diag Button Disabled : true  #诊断按钮禁用
Reset Button Disabled: false  #重置按钮禁用
Power Button Disabled: false  #电源按钮禁用

2.3 dcmi

# ipmitool dcmi discover   #发现DCMI中支持的功能。

# ipmitool dcmi power reading  #从系统获取与功耗相关的读数。

瞬时功率读数:57瓦
采样期间的最小值:0瓦
采样期间的最大值:102瓦
样本期间的平均功率读数:59瓦
IPMI时间戳:星期五1月19日09:46:04 2018年
采样周期:00000001秒。
功率读数状态是:激活

# ipmitool dcmi sensors  #打印可用的DCMI传感器。

# ipmitool dcmi  set_asset_tag  gs_cs_123  #设置了资产标签为gs_cs_123

# ipmitool dcmi asset_tag   #打印资产标签

# ipmitool dcmi get_conf_param  #获取DCMI配置参数。

# ipmitool dcmi get_temp_reading  #获取温度传感器读数。

        Entity ID                       Entity Instance    Temp. Readings
Inlet air temperature(40h)                      1               +33 C
CPU temperature sensors(41h)                    1               +42 C
CPU temperature sensors(41h)                    2               +37 C
Baseboard temperature sensors(42h)              1               +27 C

图片.png

2.4 delloem

# ipmitool delloem lan get  #显示lan的信息

Shared LOM   :  shared with lom1    #共享LOM:与LOM1共享
Failover LOM :  None   #故障转移LOM:无

#lan set <Mode> 设置NIC选择模式

# ipmitool delloem  powermonitor getpowerbudget   #以<watt>|<btuphr>显示功率上限。

# ipmitool delloem   powermonitor powerconsumptionhistory   #以瓦特或安培显示功耗历史记录。

2.5 fru

# ipmitool fru  print  #提取有关序列号,部件号,资产标签和描述机箱,电路板或产品的短字符串等信息。

FRU Device Description : Builtin FRU Device (ID 0)
 Board Mfg Date        : Tue Jun 16 21:30:00 2015   #生产时间
 Board Mfg             : DELL      #Mfg成员
 Board Product         : PowerEdge C6320    #产品型号            
 Board Serial          :           #这里是机器主板编号
 Board Part Number     :            #主板部件号
 Product Manufacturer  : DELL    #产品制造商
 Product Name          : M     #产品名称
 Product Version       : 01    #产品版本
 Product Serial        :   #这里是产品编号

2.6 lan

# ipmitool lan  print  #打印给定通道的当前配置。 默认情况下将在第一个找到的LAN信道上打印信息。

#使用set <channel number> <command> <parameter>可以设置IP地址网关掩码等等

# ipmitool lan  alert print  #打印指定通道和目标的警报信息。 默认情况下,将在首个找到的LAN信道上打印所有警报目标的所有警报。

2.7 sdr

# ipmitool sdr info   #向BMC查询传感器数据记录(SDR)存储库信息。

#  ipmitool sdr type  #可以看到有哪些类型

Sensor Types:
Temperature   (0x01)  #温度
Current  (0x03)  
Physical Security  (0x05)  #物理安全
Processor   (0x07)  #处理器
Power Unit   (0x09) #电源单元
Other     (0x0b)  #其他
Drive Slot / Bay   (0x0d) #驱动器插糟/托架
System Firmwares   (0x0f)  #系统固件
Watchdog1     (0x11)  
Critical Interrupt  (0x13) #紧急中断
Module / Board   (0x15) #模块/电路板
Add-in Card   (0x17)  #附加卡
Chip Set     (0x19)  #芯片组
Cable / Interconnect    (0x1b)  #电缆/互连
System Boot Initiated   (0x1d)  #系统引导启动
OS Boot   (0x1f) #操作系统启动  
Slot / Connector  (0x21)#插槽/连接器
Watchdog2       (0x23)  
Entity Presence  (0x25)  
LAN      (0x27)  
Battery  (0x29) #电池 
Version Change (0x2b) #版本更改 
Voltage (0x02) #电压
Fan (0x04)  #风扇
Security (0x06)
Supply (0x08) 
Device (0x0a) #设备
Memory (0x0c) #内存
Resize (0x0e) #调整大小
Disabled (0x10) #禁用
Event (0x12) #事件
Button (0x14) #按钮
Microcontroller (0x16) #微控制器
Chassis (0x18) 
FRU (0x1a)
Terminator (0x1c)
Error (0x1e)  #错误
Stop (0x20) #停止
State (0x22) #状态
Alert (0x24) #警报
ASIC (0x26) 
Health (0x28) #健康
Audit (0x2a)  #审计
State (0x2c)  #状态

# ipmitool sdr type FAN  #比如看下风扇  ,从下面的信息可以看出有四个风扇

FAN_1            | 80h | ok  | 29.96 | 7280 RPM
FAN_2            | 81h | ok  | 29.97 | 7210 RPM
FAN_3            | 82h | ok  | 29.98 | 7280 RPM
FAN_4            | 83h | ok  | 29.99 | 7280 RPM

图片.png

# ipmitool sdr  list all  #所有SDR记录(传感器和定位器)

# ipmitool sdr elis  #列表显示sdr的记录

# ipmitool sensor list  #以宽表格式列出传感器和阈值。

# ipmitool chassis bootdev pxe  #说是让机器再次启动的时候pxe启动还是有待测试的。

#当然还有很多以后有机会再继续记录,先记录到这里.......

作者:忙碌的柴少 分类:运维工具使用 浏览:4636 评论:0
留言列表
发表评论
来宾的头像