https://www.cnblogs.com/gaoyuechen/p/8506930.html

这两天,配置了一堆500来个节点的大型集群,被ipmi的问题困扰了一天半,到下午16:40,终于解决了。这里来总结一下:

智能平台管理界面(IPMI,Intelligent Platform Management Interface)是管理基于 Intel结构的企业级系统中所使用的外围设备采用的一种工业标准,用户能够利用IPMI监控服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。该标准由美国英特尔、惠普(Hewlett-Packard)、NEC、美国戴尔电脑和SuperMicro等公司定制。新的版本是 IPMI2.0(http://www.intel.com/design/servers/ipmi/)。

先谈谈使用 ipmi 的先决条件——想要实现对服务器的 ipmi 管理,必须在硬件、OS、管理工具等几个方面都满足:

1、服务器硬件本身提供对 ipmi 的支持

目前惠普、戴尔和 NEC 等大多数厂商的服务器都支持 IPMI 2.0,但并不是所有服务器都支持,所以应该先通过产品手册或在 BIOS 中确定服务器是否支持 ipmi,也就是说服务器在主板上要具有 BMC 等嵌入式的管理微控制器。

2、操作系统提供相应的 ipmi 驱动

通过操作系统监控服务器自身的 ipmi 信息时需要系统内核提供相应的支持,linux 系统通过内核对 OpenIPMI(ipmi 驱动)的支持来提供对 ipmi 的系统接口。在使用驱动之前,请先启动该驱动:

service ipmi start

或者启动模块:

modprobe ipmi_msghandler
modprobe ipmi_devintf
modprobe ipmi_si
modprobe ipmi_poweroff
modprobe ipmi_watchdog

3、ipmi 管理工具

我们的集群选择的是 Linux 下的命令行方式的 ipmi 平台管理工具 ipmitool。没有的同志可以去“http://ipmitool.sourceforge.net/”下,开源滴......

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本地监控使用命令: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温度,电压,风扇转速,电源调制模块温度,电源电压等信息)
[root@oss11 chenys]# ipmitool -I open sensor list
CPU1 Temp        | 0.000      | unspecified | ok    | 0.000     | na        | 0.000     | 0.000     | na        | na        
CPU2 Temp        | 0.000      | unspecified | ok    | 0.000     | na        | 0.000     | 0.000     | na        | na        
System Temp      | 39.000     | degrees C  | ok    | 0.000     | 0.000     | 0.000     | 81.000    | 82.000    | 83.000    
CPU1 Vcore       | 1.048      | Volts      | ok    | 0.808     | 0.816     | 0.824     | 1.384     | 1.392     | 1.400     
CPU2 Vcore       | 1.048      | Volts      | ok    | 0.808     | 0.816     | 0.824     | 1.384     | 1.392     | 1.400     
+5V              | 5.040      | Volts      | ok    | 4.280     | 4.320     | 4.360     | 5.240     | 5.280     | 5.320     
+12V             | 11.904     | Volts      | ok    | 10.464    | 10.560    | 10.656    | 13.344    | 13.440    | 13.536    
CPU1DIMM         | 1.544      | Volts      | ok    | 1.320     | 1.328     | 1.336     | 1.656     | 1.664     | 1.672     
CPU2DIMM         | 1.544      | Volts      | ok    | 1.320     | 1.328     | 1.336     | 1.656     | 1.664     | 1.672     
+1.5V            | 1.512      | Volts      | ok    | 1.320     | 1.328     | 1.336     | 1.656     | 1.664     | 1.672     
+3.3V            | 3.240      | Volts      | ok    | 2.880     | 2.904     | 2.928     | 3.648     | 3.672     | 3.696     
+3.3VSB          | 3.336      | Volts      | ok    | 2.880     | 2.904     | 2.928     | 3.648     | 3.672     | 3.696     
VBAT             | 3.336      | Volts      | ok    | 2.880     | 2.904     | 2.928     | 3.648     | 3.672     | 3.696     
Fan1             | 7072.000   | RPM        | ok    | 340.000   | 408.000   | 476.000   | 17204.000 | 17272.000 | 17340.000 
Fan2             | 7072.000   | RPM        | ok    | 340.000   | 408.000   | 476.000   | 17204.000 | 17272.000 | 17340.000 
Fan3             | na         | RPM        | na    | 340.000   | 408.000   | 476.000   | 17204.000 | 17272.000 | 17340.000 
Fan4             | na         | RPM        | na    | 340.000   | 408.000   | 476.000   | 17204.000 | 17272.000 | 17340.000 
PS Status        | 0.000      | unspecified | ok    | 0.000     | na        | 0.000     | 0.000     | na        | na    

ipmitool -I open sensor get "CPU1 Temp" 能够获取ID为CPU1 Temp监测值,CPU1 Temp是sensor的ID,服务器不同,ID表示也不同。
[root@oss11 chenys]# ipmitool -I open sensor get "CPU1 Temp"
Locating sensor record...
Sensor ID              : CPU1 Temp (0x1)
 Entity ID             : 7.1
 Sensor Type (Analog)  : Unknown (0xC0)
 Sensor Reading        : 0 (+/- 0) unspecified
 Status                : ok
 Lower Non-Recoverable : 0.000
 Lower Critical        : na
 Lower Non-Critical    : 0.000
 Upper Non-Critical    : 0.000
 Upper Critical        : na
 Upper Non-Recoverable : na
 Assertion Events      : 
 Assertions Enabled    : lcr- 
 Deassertions Enabled  : lcr-

具体的命令自己去查,这里只讲关键的:

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实现硬重启,用此命令能够远程重启

ipmitool -I open mc reset 使BMC重新硬启动 

ipmitool -I open mc info 查看BMC硬件信息

ipmitool -I open mc setenables =[on|off],配置bmc相应的允许/禁止选项。

ipmitool -I open mc getenables 列出BMC任何允许的选项

ipmitool -I open lan print 1 打印现咱channel 1的信息 。这个channel是太重要了,困扰我的问题也出在它身上,下面我们就来详细讲解:

远程获取服务器监控信息

远程获取服务器监控信息时,需要系统硬件支持ipmiV1.5和IPMIV2.0。获取信息时,不需要在服务器上安装其他软件,只需要在监控的客户端上安装ipmi工具软件——ipmitool,并需要在相应命令中加入远端服务器的名字或者地址。Ipmitool可以通过LAN远程监控系统,同时BMC中保存有一序列用户名和密码,通过LAN进行远端访问需要用户名和密码。

远程获取服务器监控信息时,需要加上远程服务器的地址。使用以下的命令格式:

ipmitool -H 10.6.77.249 -U root -P changeme -I lan command。 

其中-H表示后面跟的是服务器的地址,-U表示后面跟着用户名,-P表示后面跟着用户密码,command和本地获取信息相同。

那么,怎么设置本地BMC的IP和用户名密码呢:

ipmitool -I open lan print 1                           显示BMC通道的信息,如果不知道BMC使用的是哪个通道,请使用下面的命令确认:

ipmitool -I open channel info 1

ipmitool -I open lan set 1 ipsrc static                设置本地BMC地址为静态,才能设置IP

ipmitool -I open lan set 1 ipaddr 10.53.11.113         设置本地BMC的IP地址
 
ipmitool -I open lan set 1 netmask 255.255.255.0       子网掩码,别忘了设

ipmitool -I open lan set 1 defgw ipaddr 10.53.11.254   网关,可设可不设,不过一定要确保监控它的机器位于同一路由

ipmitool user list 1     查看BMC的用户列表

ipmitool user set name 1 username 对BMC的1号用户设置用户名username

ipmitool user set password 1 123456 对BMC的1号用户设置密码123456

下面讲讲我今天遇到的问题:

我在被监控端设置好了IPMI地址、子网掩码、用户名、密码等,但是,在监控端却死活连不上,返回下面的信息:

Error: Unable to establish LAN session
Get Device ID command failed

搞了半天,才在MAC地址上发现了破绽:

[root@localhost ~]# ipmitool -I open lan print 1
Set in Progress         : Set Complete
Auth Type Support       : NONE MD2 MD5 OEM 
Auth Type Enable        : Callback : NONE MD2 MD5 OEM 
                        : User     : NONE MD2 MD5 OEM 
                        : Operator : NONE MD2 MD5 OEM 
                        : Admin    : NONE MD2 MD5 OEM 
                        : OEM      : 
IP Address Source       : DHCP Address
IP Address              : 10.53.11.61
Subnet Mask             : 255.255.255.0
MAC Address             : 00:30:48:c9:61:60
SNMP Community String   : AMI
IP Header               : TTL=0x00 Flags=0x00 Precedence=0x00 TOS=0x00
BMC ARP Control         : ARP Responses Enabled, Gratuitous ARP Disabled
Gratituous ARP Intrvl   : 0.0 seconds
Default Gateway IP      : 10.53.11.254
Default Gateway MAC     : 00:00:00:00:00:00
Backup Gateway IP       : 0.0.0.0
Backup Gateway MAC      : 00:00:00:00:00:00
802.1q VLAN ID          : Disabled
802.1q VLAN Priority    : 0
RMCP+ Cipher Suites     : 1,2,3,6,7,8,11,12,0
Cipher Suite Priv Max   : aaaaXXaaaXXaaXX
                        :     X=Cipher Suite Unused
                        :     c=CALLBACK
                        :     u=USER
                        :     o=OPERATOR
                        :     a=ADMIN
                        :     O=OEM

所以,得在监控端加入这个MAC地址的arp解析:

arp -s 10.53.11.28 00:30:48:c9:61:60

[转帖]集群监控之 —— ipmi操作指南的更多相关文章

  1. 集群监控之 —— ipmi操作指南

    http://blog.csdn.net/yunsongice/article/details/5408802 智能平台管理界面(IPMI,Intelligent Platform Managemen ...

  2. DB监控-Riak集群监控

    公司的Riak版本是2.0.4,目前已根据CMDB三级业务部署了十几套集群,大部分是跨机房部署.监控采集分为两个大的维度,第一个维度是单机,也就是 「IP:端口」:第二个维度是集群,也就是所有节点指标 ...

  3. 集群监控系统Ganglia应用案例

    集群监控系统Ganglia应用案例 --我们把集群系统投入生产环境后,这时就需要一套可视化的工具来监视集群系统,这将有助于我们迅速地了解机群的整体配置情况,准确地把握机群各个监控节点的信息,全面地察看 ...

  4. redis sentinel 集群监控 配置

    环境: ip  172.16.1.31 26379  redis sentinel ip  172.16.1.30 6379   主 1 ip  172.16.1.31 6380   从 1 ip   ...

  5. Hbase集群监控

    Hbase集群监控 Hbase Jmx监控 监控每个regionServer的总请求数,readRequestsCount,writeRequestCount,region分裂,region合并,St ...

  6. 改造断路器集群监控Hystrix Turbine实现自动注册消费者、实时监控多个服务

    在上一篇文章中,我们搭建了Hystrix Dashoard,对指定接口进行监控.但是只能对一个接口进行监听,功能比较局限: Turbine:汇总系统内多个服务的数据并显示到 Hystrix Dashb ...

  7. 分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比

    分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. JMX是用来远程监控Java应用的框架,这个也可以用来监控其他的J ...

  8. 理解OpenShift(7):基于 Prometheus 的集群监控

    理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...

  9. MongoDB高可用集群+MMS集群监控搭建

    备注: mongodb学习资料 http://www.runoob.com/mongodb/mongodb-tutorial.html 一. 集群的三个组件: mongos(query routers ...

  10. 完美集群监控组合ganglia和nagios

    Ganglia是伯克利开发的一个集群监控软件.可以监视和显示集群中的节点的各种状态信息,比如如:cpu .mem.硬盘利用率, I/O负载.网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈 ...

随机推荐

  1. [Python急救站]回文数的判断

    回文数判断:回文数是指这个数颠倒后,与原数一致,如32223.12221等. 第一个程序是由用户输入,并判断是否是回文数. a = eval(input("请输入一个五位数")) ...

  2. Linux系统快速入门

    LINUX基础知识 I.Linux概述 linux是啥? 一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的Un ...

  3. 性能之巅:定位和优化程序CPU、内存、IO瓶颈

    摘要:性能优化指在不影响系统运行正确性的前提下,使之运行得更快,完成特定功能所需的时间更短,或拥有更强大的服务能力. #一.思维导图 #二.什么是性能优化? 性能优化指在不影响系统运行正确性的前提下, ...

  4. 探索SaaS产业发展新机遇|鲁班会贵安首秀圆满收官

    摘要:2021年12月28日-12月29日,华为云·核心伙伴开发者训练营(第八期)-SaaS应用构建实践专场在华为贵安数据中心召开. 当前,在数字化新兴技术和数字化转型的热潮的引领下,SaaS业务应用 ...

  5. 被灵魂问倒:这个BUG为什么没测出来?

    摘要:为什么没测出来!测试怎么测得?到底会不会测?这对测试来说是灵魂拷问级别不好回答的问题了. 本文分享自华为云社区<被问:这个BUG为什么没测出来?该如何回答>,作者: 曲鸟. 一.前言 ...

  6. Weex原理及架构剖析

    早期H5和Hybrid方案的本质是,利用客户端App的内置浏览器(也就是webview)功能,通过开发前端的H5页面满足跨平台需求.比如PhoneGap cordova ionic -- 该方案提升开 ...

  7. 如何通过appuploader把ipa文件上传到App Store教程步骤​

    iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store!​ 下面进行步骤介绍!​ 利用Appuploader这个软件,可以在Windows.Linux或Mac系统中 ...

  8. 用 ChatGPT 写一篇《ChatGPT 会取代我们的工作吗》

    自从 ChatGPT 火爆以后,最常谈到的话题就是 ChatGPT 会取代我们的工作吗?在写这篇内容时我有个大胆的想法,那就是让 ChatGPT 来取代我的工作. 首先,我决定直接让 ChatGPT ...

  9. 《深入理解计算机系统》(CSAPP)读书笔记 —— 第五章 优化程序性能

    写程序最主要的目标就是使它在所有可能的情况下都正确工作.一个运行得很快但是给出错误结果的程序没有任何用处.程序员必须写出清晰简洁的代码,这样做不仅是为了自己能够看懂代码,也是为了在检査代码和今后需要修 ...

  10. 深度学习基础课:“判断性别”Demo需求分析和初步设计(上)

    大家好~我开设了"深度学习基础班"的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序 线上课程资料: 本节课录像回放 扫码加QQ群, ...