Intelligent Platform Management Interface (IPMI) - технология, позволяющая мониторить и управлять Solaris-сервером (включать, выключать, перегружать, снимать показания сенсоров). В Solaris для доступа к удаленному или локальному интерфейсу IPMI можно воспользоваться утилитой ipmitool.
Вот примеры вывода статуса сервера с поддержкой IPMI с помощью
ipmitool:
Кроме высокоуровневой информации, можно использовать опции "sensor" и "sdr" для вывода статуса для каждого устройства сервера:
Также можно вывести информацию о Field Replaceable Units (FRU):
Для более полной информации об опциях утилиты см.
man ipmitool.
Крис Мэй написал скрипт на ruby для мониторинга статуса сервера, вывод которого он передает позже nagios:
#!/opt/csw/bin/ruby
# isn't there a built-in for this?
def higher_of(a,b)
if (a > b): return a
else return b
end
end
$ok=0
$warn=1
$crit=2
$status_names = {$ok=>:ok,$warn=>:warn,$crit=>:critical}
def parse_status(sensor)
ipmitool = '/usr/sfw/bin/ipmitool -I bmc -U root sdr type'
status = $ok;
temp=`#{ipmitool} #{sensor}`
temp.each_line do |line|
#puts line
line =~ /cr/ && status = $crit;
line =~ /nr/ && status = $crit;
line =~ /nc/ && status = higher_of(status, $warn)
# other matches (ns, ok, ...) are deemed OK
end
return status
end
result = $ok
info_line = ""
sensors = ['temperature','fan','voltage']
sensors.each do | sensor|
#puts "checking #{sensor}, currently result is #{result}"
st = parse_status(sensor)
info_line ="#{info_line} #{sensor} #{$status_names[st]}"
result=higher_of(result, st)
end
info_line="#{$status_names[result]}: #{info_line}"
puts info_line
exit result