我有一台带有 HP Smart Array 硬件 RAID 控制器的服务器。为了监视其状态,我使用 cpqarrayd。/etc/default/cpqarrayd
包含DAEMON_OPTS="-t localhost:162"
在发生某些情况时发送 SNMP 陷阱。陷阱由 snmptrapd 处理,/etc/snmp/snmptrapd.conf
包含
disableAuthorization yes
traphandle default mailx -s "SNMP Trap" [email protected]
通过这种方式收到的电子邮件包含 SNMP 陷阱,但它们不是人类可读的,并且无法判断它们的内容,或者它们是否由 cpqarrayd 发出。当 RAID 状态发生变化时,是否可以发送人类可读的电子邮件?
解决方案
以下脚本放置在 cron.hourly 中:
#!/bin/sh
CCISS_DEVICE=/dev/cciss/c0d1
STATUS_FILE=/var/cciss_vol_status
TMP_FILE=$TMPDIR/status-$$.$RANDOM
mv $STATUS_FILE $TMP_FILE
cciss_vol_status $CCISS_DEVICE >$STATUS_FILE
if ! cmp -s $STATUS_FILE $TMP_FILE ; then
mailx -s "CCISS status changed" [email protected] <$STATUS_FILE
fi
rm $TMP_FILE
答案1
首先,请看:当驱动器出现故障时,如何让我的 HP 服务器向我发送电子邮件?
简而言之,作为ProLiant 服务包或者管理组件包(Debian) 将为您提供有关系统健康状况的适当警报。这包括磁盘、阵列控制器、风扇、温度、电源、ILO、NIC 等的陷阱。
Debian 完全支持此功能。您可以在HP 软件交付存储库。
分为两部分(自动配置的安装程序):
在您的snmpd.conf
文件中:
# Following entries were added by HP Insight Management Agents at
# Thu Mar 18 04:14:43 PDT 2010
dlmod cmaX /usr/lib64/libcmaX64.so
使用 SNMP 注册 HP 健康代理。
以及/opt/hp/hp-snmp-agents/cma.conf
文件:
############################################################
#
# cma.conf: HP Insight Management Agents configuration file
#
############################################################
########################################################################
# trapemail is used for configuring email command(s) which will be
# executed whenever a SNMP trap is generated.
# Multiple trapemail lines are allowed.
# Note: any command that reads standard input can be used. For example:
# trapemail /usr/bin/logger
# will log trap messages into system log (/var/log/messages).
########################################################################
trapemail /bin/mail -s 'HP Insight Management Agents Trap Alarm' [email protected]
典型的 RAID 警报电子邮件如下:
Trap-ID=3040
Accelerator Board Battery status change, slot number: 1.
Battery failed. Status: Failed..
或者
Trap-ID=3034
Logical Drive Status Change: Slot 1, Drive: 2.Status is now Rebuilding.
或者
Trap-ID=3034
Logical Drive Status Change: Slot 1, Drive: 1.Status is now OK.
编辑:
看来您在使用 100 系列 ProLiant、HP Health 代理和 Debian 时遇到了困难。这是一个受支持的解决方案,但取决于您安装和配置解决方案的方式,你可能会有问题。鉴于此,您可能只需安装cciss_vol_status实用程序并通过 cron 运行定期检查。
答案2
snmptt(SNMP 陷阱转换器)是一款很棒的小工具。您可以教它典型的 OID 和消息,并将它们转换为一些合理的消息。看看它是否能满足您的需求。
编辑:哦,如果你还没有,那就去吧下载 SNMP MIB为您的设备创建一个新目录并将其放入/usr/share/snmp/mibs
目录中。然后重新启动 snmpd 和 snmptrapd。