我想实时监控IPMI系统事件日志(SEL)。我想要的是,无论何时在SEL中生成事件,都应自动生成邮件警报。
我实现这一目标的一种方法是,我可以编写脚本并在cron中安排它。该脚本每天运行3到4次,因此每当生成新事件时,都会向我发送邮件警报。
我希望监控处于活动状态。就像生成事件时一样,应该向我发送邮件,而不是定期检查。
SEL Log格式如下:
server-001%sudo ipmitool sel list
b4 | 05/27/2009 | 13:38:32 |粉丝#0x37 |上临界高位
c8 | 05/27/2009 | 13:38:35 |粉丝#0x37 |上临界高位
dc | 08/15/2009 | 07:07:50 |粉丝#0x37 |上临界高位
因此,对于上述情况,无论何时生成新事件,都应自动向我发送邮件警报。 如何使用bash脚本实现此目的。任何指针都将受到高度赞赏。
答案 0 :(得分:3)
我认为某些供应商的固件中有特殊的扩展名,正是您所描述的内容(即您只是在服务处理器中配置了一个电子邮件地址),但我不能说服每个供应商的支持。您必须为此查找主板的文档。
就标准机制而言,您可能正在寻找IPMI PET(平台事件陷阱)支持。使用PET,当生成某些SEL事件时,它将生成SNMP陷阱。 SNMP陷阱一旦被SNMP守护程序接收,就可以执行任何操作,例如发送电子邮件。
FreeIPMI的用户在一个文档中写下了自己的经历并发布了他的脚本,你可以在这里找到:
http://www.gnu.org/software/freeipmi/download.html
(免责声明:我维护FreeIPMI,因此我更了解FreeIPMI,不确定其他IPMI软件是否支持。)
作为一个FYI,几个IPMI SEL日志守护进程(FreeIPMI的ipmiseld和ipmitool的ipmievtd是我知道的两个)根据可配置的秒数轮询SEL并将SEL信息记录到syslog。还可以在syslog中配置邮件警报,以便在发生事件时发送电子邮件。这些守护进程仍然是基于轮询而不是实时的,但守护进程可能会处理许多您的cron脚本可能不知道的IPMI极端情况。
答案 1 :(得分: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
答案 2 :(得分:0)
以防它帮助其他人......
我创建了一个shell脚本来记录这种格式的数据,然后我用php解析它并使用google的图表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作业正确访问数据,即使它是在root crontab中设置的。