1

我想实时监控 IPMI 系统事件日志 (SEL)。我想要的是,每当在 SEL 中生成事件时,应自动生成邮件警报。

我实现这一目标的一种方法是我可以编写一个脚本并将其安排在 cron 中。该脚本每天将运行 3 或 4 次,因此每当生成新事件时,都会向我发送邮件警报。

我希望监控处于活动状态。就像每当生成事件时一样,应该向我发送邮件,而不是定期检查。

SEL 日志格式如下:

server-001% sudo ipmitool 选择列表

b4 | 2009 年 5 月 27 日 | 13:38:32 | 风扇 #0x37 | 上临界走高

c8 | 2009 年 5 月 27 日 | 13:38:35 | 风扇 #0x37 | 上临界走高

直流| 2009 年 8 月 15 日 | 07:07:50 | 风扇 #0x37 | 上临界走高

因此,对于上述情况,每当生成新事件时,都会自动将邮件警报与事件一起发送给我。如何使用 bash 脚本来实现这一点。任何指针将不胜感激。

4

3 回答 3

3

我相信一些供应商在他们的固件中针对您所描述的内容进行了特殊扩展(即您只需在服务处理器中配置一个电子邮件地址),但我无法与每个供应商的支持人员交谈。您必须为此查找主板的文档。

就标准机制而言,您可能正在寻找 IPMI PET(平台事件陷阱)支持。使用 PET,当生成某些 SEL 事件时,它会生成一个 SNMP 陷阱。SNMP 陷阱一旦被 SNMP 守护程序接收到,就可以做任何您想做的事情,例如发送电子邮件。

FreeIPMI 的用户在文档中记录了他的经验并发布了他的脚本,您可以在此处找到:

http://www.gnu.org/software/freeipmi/download.html

(免责声明:我维护 FreeIPMI,所以我更了解 FreeIPMI,不确定是否支持其他 IPMI 软件。)

作为一个仅供参考,几个 IPMI SEL 日志记录守护程序(我知道,FreeIPMI 的 ipmiseld 和 ipmitool 的 ipmievtd 是两个)根据可配置的秒数轮询 SEL,并将 SEL 信息记录到 syslog。还可以在 syslog 中配置邮件警报,以便在事件发生时发送电子邮件。这些守护进程仍然是基于轮询而不是实时的,但是这些守护进程可能会处理许多您的 cron 脚本可能不知道的 IPMI 极端情况。

于 2012-09-20T17:08:05.150 回答
0

可以使用ipmievd工具来监控 IPMI SEL 事件。它是ipmitool包装的一部分。

  # rpm -qf /usr/sbin/ipmievd
   ipmitool-1.8.11-12.el6.x86_64

要将 SEL 事件发送到syslog,请执行以下命令。

   ipmievd sel daemon

现在,为了模拟SEL事件的产生,我们将执行以下命令。

   ipmitool event 2

这将生成以下事件

   ` Voltage Threshold - Lower Critical - Going Low`

要获取可以生成的 SEL 事件列表,请尝试

 # ipmitool event

 usage: event <num>
 Send generic test events
 1 : Temperature - Upper Critical - Going High
 2 : Voltage Threshold - Lower Critical - Going Low
 3 : Memory - Correctable ECC

该事件将被通知到 /var/log/messages。在日志文件中生成了以下消息。

Oct 21 15:12:32 mgthost ipmievd: Voltage sensor - Lower Critical going low
于 2014-10-21T10:26:19.420 回答
0

以防万一它帮助其他人......

我创建了一个 shell 脚本来记录这种格式的数据,我用 php 解析它并使用谷歌的图表 api 来制作一个漂亮的折线图。2016-05-25 13:33:15, 20 摄氏度, 23 摄氏度 2016-05-25 13:53:06, 21.50 摄氏度, 24 摄氏度 2016-05-25 14:34:39, 19 摄氏度, 22.50 摄氏度

#!/bin/sh

DATE=`date '+%Y-%m-%d %H:%M:%S'`
temp0=$(ipmitool sdr type Temperature | grep "CPU0 Diode" | cut -f5 -d"|")
temp1=$(ipmitool sdr type Temperature | grep "CPU1 Diode" | cut -f5 -d"|")
echo "$DATE,$temp0,$temp1" >> /events/temps.dat

我现在遇到的问题是让 cron 作业正确访问数据,即使它是在根 crontab 中设置的。

于 2016-05-25T18:38:34.127 回答