我想在无头 CentOS6 服务器上监控一些与硬件相关的数据。更具体地说,电压、风扇速度、热数据等...
由于服务器是无头的,我发现最好的方法是通过一个能够ipmitool
以良好的方式格式化结果的 php 脚本。
当然,如果 Web 服务器用户不是 root,那就糟糕了。遗憾的是,非 root 用户似乎无权访问/dev/ipmi*
,这也是有道理的。
运行后,ipmitool -U "someUser" -P "somePassword" sdr
我以 root 身份获得了预期的读数,但返回
Could not open device at /dev/ipmi0 or /dev/ipmi/0 or /dev/ipmidev/0: No such file or directory
Get Device ID command failed
Unable to open SDR for reading
当我以网络服务器身份登录时。
我到处搜索了一下,对 很感兴趣,但它似乎不存在于 CentOS6 上,而且我对安装相关的东西也不devfs.rules
熟悉。/dev
有人能给我指明正确的方向吗?
答案1
/dev/ipmi*
通常仅限于 root 用户,正如您所发现的。ipmitool
以非 root 用户身份运行的选项如下(按我个人偏好大致排序):
使用
sudo
(如果您不想授予他们不受限制的 sudo 访问权限,则可以在 sudoers 中专门为应该只允许运行 ipmitool 的人创建一个条目)修改
udev
规则,以便其他用户/组可以访问该设备(我不知道 CentOS 6 上的 udev 规则保存在哪里,但在 /etc 下寻找符合要求的内容)。这与编辑的方法相同devfs.rules
- CentOS 文档将引导您找到正确的方向,并且这一页(或者一些有创意的谷歌搜索)将帮助您了解 udev 语法。(我会给您指点,但我自己对此并不熟悉 :x)通过网络连接到 IPMI 接口(如果您的 IPMI 接口支持此功能)。
这可能需要烧录网络接口和交叉电缆,或将 IPMI 卡连接到您的网络,这就是它在列表中排名如此靠后的原因。设置
ipmitool
setuid-root。
(是的。不要这么做。这通常是一个坏主意和糟糕的建议 - 假装我没有提到它。)