IPMITool 工具使用详细教程

一、IPMI 与 IPMITool 简介

1. IPMI 概述

智能平台管理接口(Intelligent Platform Management Interface,简称 IPMI)是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。它独立于系统的 CPU、BIOS 和操作系统,能够在系统未开机的状态下,对系统进行监控、管理和维护。通过 IPMI,管理员可以远程监控服务器的硬件状态(如温度、电压、风扇转速等)、控制服务器的电源状态、进行系统日志记录等操作。

2. IPMITool 概述

IPMITool 是一个开源的命令行工具,用于与支持 IPMI 标准的系统进行交互。它提供了丰富的功能,允许用户通过 IPMI 接口执行各种管理任务。IPMITool 可以运行在多种操作系统上,如 Linux、Windows 等,为管理员提供了一种方便、灵活的方式来管理和监控服务器硬件。

二、IPMITool 安装

1. Linux 系统安装

Debian/Ubuntu 系统

在终端中执行以下命令进行安装:

sudo apt-get update
sudo apt-get install ipmitool

Red Hat/CentOS 系统

使用以下命令进行安装:

sudo yum install ipmitool

2. Windows 系统安装

  • 访问 IPMITool 的官方下载页面或相关软件源,下载适用于 Windows 的 IPMITool 安装包。
  • 运行安装包,按照安装向导的提示完成安装。安装完成后,需要将 IPMITool 的安装目录添加到系统的环境变量中,以便在命令提示符中可以直接使用。

三、IPMITool 基本使用

1. 连接到目标服务器

在使用 IPMITool 之前,需要先与支持 IPMI 的目标服务器建立连接。连接服务器需要知道服务器的 IPMI 接口的 IP 地址、用户名和密码。使用以下命令进行连接:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> <命令>
  • -I lanplus:指定使用 LAN 协议进行连接,这是最常用的连接方式。
  • -H <IP 地址>:指定目标服务器 IPMI 接口的 IP 地址。
  • -U <用户名>:指定登录 IPMI 接口的用户名。
  • -P <密码>:指定登录 IPMI 接口的密码。

例如,连接到 IP 地址为 192.168.1.100,用户名为 admin,密码为 password 的服务器,并查看服务器的系统信息:

ipmitool -I lanplus -H 192.168.1.100 -U admin -P password chassis status

2. 查看服务器硬件状态信息

查看传感器信息

传感器信息可以反映服务器的硬件状态,如温度、电压、风扇转速等。使用以下命令查看传感器信息:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> sensor

该命令将输出服务器上所有传感器的详细信息,包括传感器名称、当前值、状态等。例如:

CPU Temp         | 32.000     | degrees C  | ok    | na        | 5.000     | 10.000    | 80.000    | 85.000    | 90.000
MB Temp | 28.000 | degrees C | ok | na | 5.000 | 10.000 | 70.000 | 75.000 | 80.000
Fan1 | 3000 | RPM | ok | na | 1000 | 1500 | 8000 | 8500 | 9000

查看系统事件日志(SEL)

系统事件日志记录了服务器硬件的各种事件信息,如硬件故障、传感器告警等。使用以下命令查看系统事件日志:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> sel list

该命令将输出系统事件日志的详细信息,包括事件发生的时间、事件类型、事件描述等。例如:

1 | 01/01/2025 | 12:00:00 | Temperature Sensor | CPU Temp | Going High
2 | 01/01/2025 | 12:05:00 | Temperature Sensor | CPU Temp | Going Normal

3. 控制服务器电源状态

查看电源状态

使用以下命令查看服务器的电源状态:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> chassis power status

该命令将输出服务器的电源状态,如 Power is onPower is off

开机

使用以下命令开启服务器电源:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> chassis power on

关机

使用以下命令关闭服务器电源:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> chassis power off

重启

使用以下命令重启服务器:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> chassis power reset

4. 远程控制台(SOL)功能

远程控制台(Serial over LAN,简称 SOL)允许用户通过网络远程访问服务器的串口控制台。使用以下命令启用 SOL 功能:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> sol activate

启用 SOL 功能后,用户可以在终端中像操作本地串口控制台一样操作服务器。要退出 SOL 会话,可以按下 Ctrl + ] 组合键。

四、高级使用

1. 设置 IPMI 接口参数

可以使用 IPMITool 来设置服务器 IPMI 接口的参数,如 IP 地址、子网掩码、网关等。以下是设置 IPMI 接口 IP 地址的示例:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> lan set 1 ipsrc static
ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> lan set 1 ipaddr <新 IP 地址>
ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> lan set 1 netmask <子网掩码>
ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> lan set 1 defgw ipaddr <网关地址>

2. 批量操作

如果需要对多台服务器进行相同的操作,可以编写脚本实现批量操作。以下是一个使用 Bash 脚本批量查看多台服务器传感器信息的示例:

#!/bin/bash

# 定义服务器列表
servers=(
"192.168.1.100"
"192.168.1.101"
"192.168.1.102"
) # 定义用户名和密码
username="admin"
password="password" # 遍历服务器列表
for server in "${servers[@]}"
do
echo "查看服务器 $server 的传感器信息:"
ipmitool -I lanplus -H $server -U $username -P $password sensor
echo "------------------------------"
done

将上述脚本保存为 batch_sensor.sh,并赋予执行权限:

chmod +x batch_sensor.sh

然后运行脚本:

./batch_sensor.sh

3. 用户管理

创建用户

可以使用 IPMITool 创建新的 IPMI 用户,以便不同的管理员使用不同的账号进行管理操作。创建用户的命令如下:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> user set name <用户 ID> <新用户名>
ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> user set password <用户 ID> <新密码>
ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> user enable <用户 ID>
  • <用户 ID>:是一个唯一的数字,用于标识用户,范围通常是 1 - 16。
  • <新用户名>:指定要创建的新用户的名称。
  • <新密码>:指定新用户的登录密码。

例如,创建一个用户 ID 为 3,用户名为 newuser,密码为 newpassword 的新用户:

ipmitool -I lanplus -H 192.168.1.100 -U admin -P password user set name 3 newuser
ipmitool -I lanplus -H 192.168.1.100 -U admin -P password user set password 3 newpassword
ipmitool -I lanplus -H 192.168.1.100 -U admin -P password user enable 3

修改用户权限

创建用户后,可以根据需要为用户分配不同的权限。权限分为不同的级别,如 CALLBACKUSEROPERATORADMINISTRATOR 等。使用以下命令修改用户权限:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> channel setaccess <通道 ID> <用户 ID> privilege=<权限级别>
  • <通道 ID>:通常为 1,表示 LAN 通道。
  • <权限级别>:可以是 CALLBACKUSEROPERATORADMINISTRATOR 等。

例如,将用户 ID 为 3 的用户权限设置为 ADMINISTRATOR

ipmitool -I lanplus -H 192.168.1.100 -U admin -P password channel setaccess 1 3 privilege=ADMINISTRATOR

删除用户

如果某个用户不再需要,可以使用以下命令删除用户:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> user disable <用户 ID>
ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> user delete <用户 ID>

例如,删除用户 ID 为 3 的用户:

ipmitool -I lanplus -H 192.168.1.100 -U admin -P password user disable 3
ipmitool -I lanplus -H 192.168.1.100 -U admin -P password user delete 3

4. 修改 IPMI 接口密码

可以使用 IPMITool 修改 IPMI 接口的管理员密码。使用以下命令修改密码:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <旧密码> user set password <用户 ID> <新密码>

例如,将用户 ID 为 1(通常为管理员用户)的密码从 oldpassword 修改为 newpassword

ipmitool -I lanplus -H 192.168.1.100 -U admin -P oldpassword user set password 1 newpassword

5. 传感器阈值设置

可以使用 IPMITool 设置传感器的阈值,当传感器的值超过或低于阈值时,系统会触发相应的告警。以下是设置 CPU 温度传感器高阈值的示例:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> sensor thresh <传感器名称> upper <高阈值>

例如,将 CPU 温度传感器的高阈值设置为 85 摄氏度:

ipmitool -I lanplus -H 192.168.1.100 -U admin -P password sensor thresh "CPU Temp" upper 85

6. 远程固件升级

部分支持 IPMI 的服务器可以通过 IPMITool 进行远程固件升级。固件升级通常需要先下载最新的固件文件,然后使用 IPMITool 上传并执行升级操作。不同服务器的固件升级命令可能有所不同,一般需要参考服务器的用户手册。以下是一个简单的示例:

ipmitool -I lanplus -H <IP 地址> -U <用户名> -P <密码> raw <升级命令> <固件文件路径>

五、常见问题及解决方法

1. 连接失败

  • 原因:可能是 IP 地址、用户名或密码错误,或者目标服务器的 IPMI 接口未开启。
  • 解决方法:检查 IP 地址、用户名和密码是否正确,确保目标服务器的 IPMI 接口已开启。可以通过服务器的 BIOS 或 BMC 管理界面进行检查和设置。

2. 命令执行无响应

  • 原因:可能是网络问题或服务器负载过高。
  • 解决方法:检查网络连接是否正常,尝试使用 ping 命令测试与目标服务器的网络连通性。如果服务器负载过高,可以等待一段时间后再尝试执行命令。

3. 权限不足

  • 原因:可能是使用的用户名没有足够的权限执行相应的命令。
  • 解决方法:使用具有更高权限的用户名登录 IPMI 接口,或者在服务器的 BMC 管理界面中为当前用户分配相应的权限。

4. 用户创建或权限修改失败

  • 原因:可能是用户 ID 已被使用,或者权限级别指定错误。
  • 解决方法:检查用户 ID 是否可用,确保权限级别指定正确。可以使用 ipmitool user list 命令查看已有的用户信息。

六、总结

IPMITool 是一个功能强大的工具,通过它可以方便地对支持 IPMI 标准的服务器进行管理和监控。本文详细介绍了 IPMITool 的安装、基本使用、高级使用以及常见问题的解决方法。希望通过本文的介绍,你能够熟练掌握 IPMITool 的使用,提高服务器管理的效率。

IPMITool 工具使用详细教程的更多相关文章

  1. 阿里云运维部署工具AppDeploy详细教程

    AppDeploy是一个通过SSH实现的命令行工具,可完成应用部署和远程运维管理.当前工具实现为两个版本:普通版(伪代码描述语言)和Python版.Python版使用Python语法规则,可实现您的各 ...

  2. Java搭建环境和工具安装详细教程

    .一.搭建java运行环境 总体分为两个步骤 1.下载JDK( java  dovelop kit 简称 java 开发工具) 首先我们直接下载java开发工具包JDK,转到Oracle官网 下载链接 ...

  3. 信息收集工具recon-ng详细使用教程

    前言: 最近在找Recon-ng详细一点的教程,可是Google才发现资料都很零散而且不详细,所以我打算具体写一下.Recon-ng在渗透过程中主要扮演信息收集工作的角色,同时也可以当作渗透工具,不过 ...

  4. Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程)

    Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程) 声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级 ...

  5. [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 )

    [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 ) billcheung 发表于 2011-10-23 00:07:49 https://www.itsk.com ...

  6. git详细教程

    Table of Contents 1 Git详细教程 1.1 Git简介 1.1.1 Git是何方神圣? 1.1.2 重要的术语 1.1.3 索引 1.2 Git安装 1.3 Git配置 1.3.1 ...

  7. WebRTC VideoEngine超详细教程(三)——集成X264编码和ffmpeg解码

    转自:http://blog.csdn.net/nonmarking/article/details/47958395 本系列目前共三篇文章,后续还会更新 WebRTC VideoEngine超详细教 ...

  8. GitHub详细教程(转载)

    1 Git详细教程 1.1 Git简介 1.1.1 Git是何方神圣? 1.1.2 重要的术语 1.1.3 索引 1.2 Git安装 1.3 Git配置 1.3.1 用户信息 1.3.2 高亮显示 1 ...

  9. fiddler2抓包工具使用图文教程

    fiddler2抓包工具使用图文教程 三.fiddler实用功能使用说明: 1.fiddler捕获浏览器的会话: 能支持http代理的任意程序都能被fiddler捕获到,由于fiddler的运行机制就 ...

  10. draw9patch超详细教程

    这篇文章是android开发人员的必备知识,内容摘选自网络,友我为大家整理和总结,不求完美,但是有用. 视频教程地址:http://player.youku.com/player.php/sid/XM ...

随机推荐

  1. 微服务-SpringBoot

    基础知识 微服务主旨就是将一个大型系统拆分为多个小型服务. 多个服务之间可以是异构的.单体服务在大型项目下很难维护. 智能端点与哑管道:就是消息之间通信只传送消息,而不做校验. SpringCloud ...

  2. ThreeJs-06详解灯光与阴影

    一.gsap动画库 1.1 基本使用和原理 首先直接npm安装然后导入 比如让一个物体,x轴时间为5s 旋转同理 动画的速度曲线,可以在官网的文档找到 1.2 控制动画属性与方法 当然这里面也有一些方 ...

  3. 探索Matplotlib-Gallery:Python数据可视化的游乐园

    探索matplotlib-gallery:Python数据可视化的游乐园 在数据科学的世界里,数据可视化是一个不可或缺的工具,它帮助我们理解数据.发现模式.并传达信息.Matplotlib是Pytho ...

  4. LSTM学习三维轨迹的Python实现

    一.引言 长短期记忆网络(LSTM)是一种强大的递归神经网络(RNN),广泛应用于时间序列预测.自然语言处理等任务.在处理具有时间序列特征的数据时,LSTM通过引入记忆单元和门控机制,能够更有效地捕捉 ...

  5. 【前端】白天/黑夜主题切换:JS读取XML预设主题实现黑白主题切换

    上扩展实现多主题选择,切换主题) 先看一下XML文档 id值不能重复,一套主题的name要相同,亮色type1,暗色type0 <?xml version="1.0" enc ...

  6. docker 1.13版本修改默认存储路径及添加私有registry

    1.服务器安装dockeryum install docker -y12.修改配置文件方法1: 编辑 `/etc/sysconfig/docker`文件 修改`OPTION`选项 添加 --insec ...

  7. Unity 3D简单使用C#脚本,脚本的执行顺序

    Unity3D脚本间执行顺序 Unity3D中一个场景有时候需要多个脚本,可以挂在同一物体上执行,也可以挂在不同物体上执行 那么执行顺序是怎样的?我们来测试下 在上个项目基础上,再建一个Test2脚本 ...

  8. Qt/C++音视频开发75-获取本地有哪些摄像头名称/Qt内置函数方式

    一.前言 在需要打开本地摄像头的场景中,有个需求绕不开,那就是如何获取本地有哪些摄像头设备名称,这样可以提供下拉框给用户选择,不然你让用户去填设备名,你觉得用户会知道是啥,他会操作吗?就算你提供了详细 ...

  9. Mac系统Obsidian和Typora更换霞鹜文楷字体

    在github上发现了一款非常好看的字体LXGW WenKai / 霞鹜文楷,这里记录下Mac电脑如何安装这个字体,以及我用到的笔记软件更换字体的过程. Mac安装字体 # 增加代理,不加代理下载速度 ...

  10. DVWA靶场搭建及错误解决教程

    前言 DVWA(Damn Vulnerable Web Application)靶场是一个旨在帮助安全人员和开发人员学习和提高网络安全技能的开源项目.它是一个故意存在多种安全漏洞的 PHP/MySQL ...