youki2008
作者youki2008·2020-04-30 22:05
系统架构师·DDT

使用ipmi进行服务器管理

字数 6327阅读 1629评论 0赞 3

使用ipmi进行服务器管理

IPMI 介绍 智能平台管理界面( IPMI , Intelligent Platform Management Interface) 是管理基于 Intel® 结构的企业系统中所使用的外围设备采用的一种工业标准,用户可以利用 IPMI 监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。该标准由美国英特尔、惠普( Hewlett-Packard )、 NEC 、美国戴尔电脑和 SuperMicro 等公司制定。新的版本是 IPMI2.0(http://www.intel.com/design/servers/ipmi/) 。 新版本的 IPMI 可以通过串口、 Modem 以及 Lan 等远程环境管理服务器系统(包括远程开关机),同时在系统发生错误时能自动发出警告。要对服务器进行 IPMI 管理,需要被监控的系统具有支持 IPMI 的硬件设备。如果服务器具有底板管理控制器 (Baseboard Management Controller , BMC) ,并且支持 IPMI 规范,则通过 BMC 与主机板上的不同传感器通信来监视系统是否有严重事件,并在某些参数超出其预置阈值时发出警报和日志事件。 BMC 具有以下功能:

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

IPMI 应用 所举应用都基于以下平台:  服务器:超毅  主板: TyanS5353  服务器监控卡( SMDC , Server Management Daughter Card ): M3291  Ipmitool 版本: ipmitool version 1.8.8  Ipmitool 版本: ipmiutil-1.7.4-1  OpenIPMI 版本: OpenIPMI-2.0.7

IPMI 可以通过本地和远程两种方式来获取被监控服务器的监测信息,两种方式都需要相关的硬件,但是软件的安装和软件命令使用稍微有所不同。 1 软件安装
1.1 本地获取软件安装 通过本地方式获取服务器相应状态信息,需要安装 ipmi 驱动程序和用于获取信息的软件。驱动程序使用 OpenIPMI , ipmi 工具软件可以安装 ipmitool 或者 ipmiutil ,或者 freeipmi 。软件下载网址为:
OpenIPMI : http://openipmi.sourceforge.net/
Ipmitool : http://ipmitool.sourceforge.net/
http://ipmitool.sourceforge.net/manpage.html
ipmiutil : http://ipmiutil.sourceforge.net/
1.2 远程获取软件安装 远程监控只需要在监控客户端上安装用于获取信息的软件: ipmitool 、 ipmiutil 或者 reeipmi 即可,而不需要在服务其上安装任何工具。 2 服务器监控信息获取
2.1 本地获取服务器监控信息 在获取本地服务器相关的监控信息之前,需要启动相应的驱动模块,可以通过以下两种命令启动驱动 :
/etc/init.d/ipmi start 或者通过以下命令:
modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_si
modprobe ipmi_poweroff
modprobe ipmi_watchdog
启动 ipmi 驱动后,通过 cat /proc/devices | grep ipmidev 获得设备号,我得到的设备号是 253 ,用 mknod -m 600 /dev/ipmi0 c 253 0 建立文件索引点。 然后就可以在本地服务器上运行各种 ipmi 工具获取相应的服务器信息了。
以下所有的命令都是我用到的,还有更多命令没有涉及,可以查看相应的帮助文档来获得所有命令的用法。 2.1.1 使用 ipmitool 本地获取信息
Ipmitool 本地监控使用命令: ipmitool – I open command ,其中 -I open 表示使用 OpenIPMI 接口, command 有以下项:
a) raw :发送一个原始的 IPMI 请求,并且打印回复信息。
b) Lan :配置网络( lan )信道 (channel)
c) chassis :查看底盘的状态和设置电源
d) event :向 BMC 发送一个已经定义的事件( event ),可用于测试配置的 SNMP 是否成功
e) mc : 查看 MC ( Management Contollor )状态和各种允许的项
f) sdr :打印传感器仓库中的所有监控项和从传感器读取到的值。
g) Sensor :打印详细的传感器信息。
h) Fru :打印内建的 Field Replaceable Unit (FRU) 信息
i) Sel : 打印 System Event Log (SEL)
j) Pef : 设置 Platform Event Filtering (PEF) ,事件过滤平台用于在监控系统发现有 event 时候,用 PEF 中的策略进行事件过滤,然后看是否需要报警。
k) Sol/isol :用于配置通过串口的 Lan 进行监控
l) User :设置 BMC 中用户的信息 。
m) Channel :设置 Management Controller 信道。

Ipmitool – I open sensor list 命令可以获取传感器中的各种监测值和该值的监测阈值,包括( CPU 温度,电压,风扇转速,电源调制模块温度,电源电压等信息)
Ipmitool – I open sensor get “ CPU0Temp ”可以获取 ID 为 CPU0Temp 监测值, CPU0Temp 是 sensor 的 ID ,服务器不同, ID 表示也不同。
Ipmitool – I open sensor thresh 设置 ID 值等于 id 的监测项的各种限制值。
Ipmitool – I open chassis status 查看底盘状态,其中包括了底盘电源信息,底盘工作状态等
Ipmitool – I open chassis restart_cause 查看上次系统重启的原因
Ipmitool – I open chassis policy list 查看支持的底盘电源相关策略。
Ipmitool – I open chassis power on 启动底盘,用此命令可以远程开机
Ipmitool – I open chassis power off 关闭底盘,用此命令可以远程开机
Ipmitool – I open chassis power reset 实现硬重启,用此命令可以远程开机
Ipmi 还可以设置系统启动 boot 的设备,具体见 ipmitool 帮助文档。
Ipmitool – I open mc reset 使 BMC 重新硬启动
Ipmitool – I open mc info 查看 BMC 硬件信息
Ipmitool – I open mc getenables 列出 BMC 所有允许的选项
Ipmitool – I open mc setenables ,设置 bmc 相应的允许 / 禁止选项。
Ipmitool-I open event 1 发送一个温度过高的消息到 System Event Log 中,可以发送的 Event 有:
1 Temperature: Upper Critical: Going High
2 Voltage Threshold: Lower Critical: Going Low
3 Memory: Correctable ECC Error Detected
Ipmitool-I open event 命令可以用测试配置的 IPMI 中的 snmp 功能是否成功。
Ipmitool -I open lan print 1 打印现咱 channel 1 的信息 。
Ipmitool -I open lan set 1 ipaddr 10.10.113.95 设置 channel 1 的地址为 10.10.113.95
Ipmitool -I open lan set 1 snmp public 设置 channel 1 上 snmp 的 community 为 public 。
Ipmitool -I open lan set 1 access on 设置 channel 1 允许访问。
Ipmitool -I open pef info 打印 Platform Event Filtering ( pef )信息
Ipmitool -I open pef status 查看 Platform Event Filtering ( pef )状态
Ipmitool -I open pef policy 查看 Platform Event Filtering ( pef )策略设置
Ipmitool -I open sdr list fru 读取 fru 信息并显示。 (但我的服务器有问题,该项读取不到) 备注:
PEF 由 BMC 厂商的 FIRMWARE 设置, ipmitool ( V1.8.8 )不能进行设置,也可以使用 ipmiutil 来进行初始设置。
2.1.2 使用 ipmiutil 本地获取信息
Ipmiutil 安装完成后,会包含以下可执行命令: • alarms –显示和设置 Telco alarms 报警( LED 显示和延迟) • bmchealth – 测试 BMC 是否工作正常。 • fruconfig – 显示 FRU 的产品信息,写入有用信息 • getevent – 接收一个 IPMI event ,并显示。 • hwreset – 用于使 firmware 硬重新启动或者关掉系统 • pefconfig – 用于显示和配置 LAN 端口,配置 Platform Event Filter 表,来通过 firmare event 产生 BMC Lan 提示 • sensor – 显示 Sensor Data Records, 值和阈值。 • showsel – 显示 System Event Log 记录。 • tmconfig – 显示和配置 BMC 串口。 • wdt – 显示和设置看门狗时间 . 以上命令种中最为常用的是 sensor 命令和 pefconfig 命令。 使用 sensor 命令可以获取各种监测信息。使用 pefconfig 命令设置 BMC ,使得 BMC 可以在系统有 event 时候,进行报警。
Sensor 命令显示服务器状态信息。
Pefconfig – e 命令用于设置 BMC 硬件,该命令将从操作系统收集相应的信息,并对 bmc 进行设置,使得 BMC 能够在有 event 时候报警( alert )。
Pefconfig – d 命令将设置 bmc 不报警。
2.2 远程获取服务器监控信息 远程获取服务器监控信息时,需要系统硬件支持 ipmiV1.5 和 IPMIV2.0 。获取信息时,不需要在服务器上安装其他软件,只需要在监控的客户端上安装 ipmi 工具软件,如 ipmitool 、 ipmiutil 或者 freeipmi ,并需要在相应命令中加入远端服务器的名字或者地址。 Ipmitool 和 ipmiutil 可以通过 LAN 远程监控系统,同时 BMC 中保存有一序列用户名和密码,通过 LAN 进行远端访问需要用户名和密码。 2.2.1 使用 ipmitool 获取远程服务器信息
Ipmitool 命令需要通过相应的 interface 来访问 BMC ,在本地获取信息时候采用的是 -I open ,即为 OpenIPMI 接口, IPMItool 命令包含的接口有 open 、 lan 、 lanplus 。其中 open 是指的是 OpenIPMI 与 BMC 通信, Lan 是通过 Ethernet LAN 网用 IPV4 的 udp 协议与 BMC 通信。 UDP 的数据段包含了 IPMI request/resoponse 消息,消息具有一个 IPMI session 头和 RMCP 头。 IPMI 使用 Remote Management Control Protocol (RMCP) 版本 1 支持操作系统关闭( pre-OS 和 OS-absent ), RMCP 把把数据发送到 UDP 的 623 端口。 象 lan 接口一样, lanplus 同样使用 Ethernet LAN 的 UDP 协议与 BMC 通信,但是 lanplus 使用 RMCP +协议(在 IPMIV20 中描述)来同新, RMCP+ 允许使用改经的认证方式和数据完整性检查。 Open 端口用于本地监控系统使用的; Lan/lanplus 通过网络进行远程监控。 远程获取服务器监控信息时,需要加上远程服务器的地址。使用以下的命令格式:
ipmitool -H 10.6.77.249 -U root -P changeme -I lan command 。其中 -H 表示后面跟的是服务器的地址, -U 表示后面跟着用户名, -P 表示后面跟着用户密码, command 与本地获取信息相同。 2.2.2 使用 ipmiutil 获取远程服务器信息
Ipmiutil 的 sensor 命令格式如下:
Sensor -N nodename – U user – R passwd , 其中 -N 后面跟的是被监控服务器名字, -U 后是用户名, -R 后是用户密码。
Pefconfig -e -N nodename – U user – R passwd 命令用于设置 BMC 硬件,该命令将从操作系统收集相应的信息,并对 bmc 进行设置,使得 BMC 能够在有 event 时候报警。
Pefconfig -d -N nodename – U user – R passwd 将不允许报警

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

3

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广