리눅스, 자료실, 성경검색, 추억의게임, 고전게임, 오락실게임, rootman, http://www.rootman.co.kr
* 3.234.214.113 *
| Home | Profile | Linux | 자료실 | zabbix | Mysql 5.6 | 갤러리 | 성경검색 | 해피니스 | 자유게시판 | 게시물검색 | L | O | R |    

 
[Shell] [nagios] HP MSA60 P800 스카시 컨트롤러 펌웨어 체크 plugin
 작성자 : rootman
Date : 2009-04-16 17:02  |  Hit : 10,362  

#!/bin/bash
#
# Usage: ./check_P800firm
#
# 2009/04/13 11:00
#
# JeongChanHo(
[email protected])
#
#-----------------------------------------------------------------------
#
# You may have to change this, depending on where you installed your Nagios plugins
#
PATH="/usr/bin:/usr/sbin:/bin:/sbin"
LIBEXEC="/usr/local/nagios/libexec"
. $LIBEXEC/utils.sh

TmpHPraid="/tmp/tmpRaid.txt";

### DEBUGGING SETUP ###
# Cause you never know when you'll need to squash a bug or two
DEBUG="0"
DEBUGFILE="/tmp/foobar"

_EXEC_hpaducli="/usr/sbin/hpaducli";
_EXEC_hpacucli="/usr/sbin/hpacucli";

### REQUISITE NAGIOS COMMAND LINE STUFF ###

print_usage() {
echo "Usage: $PROGNAME --help"
}

print_help() {
echo ""
print_usage
echo ""
echo "Semi-intelligent uptime for Nagios"
echo ""
echo "This plugin not developped by the Nagios Plugin group."
echo "Please do not e-mail them for support on this plugin, since"
echo "they won't know what you're talking about :P"
echo ""
echo "For contact info, read the plugin itself..."
}

while test -n "$1"
do
case "$1" in
--help) print_help; exit $STATE_OK;;
-h) print_help; exit $STATE_OK;;
*) print_usage; exit $STATE_UNKNOWN;;
esac
done

_EXEC_hpaducli="/usr/sbin/hpaducli";

if [ ! -f ${_EXEC_hpaducli} ] || [ ! -f ${_EXEC_hpaducli} ]
then
echo "CRIT alert - It isn't exist $_EXEC_hpaducli} utility!!";
exit ${STATE_WARNING};
else
${_EXEC_hpacucli} ctrl all show config | grep -i "slot" |tail -n 1 > ${TmpHPraid}

while read line
do
Model=`echo $line |cut -d" " -f3`;
Slot=`echo $line | cut -d" " -f6`;
done < ${TmpHPraid}<BR>
if [ ! -f ${TmpHPraid} ];
then
echo "Warn alert - It exist ${_EXEC_hpaducli} but it can't make dump file !!";
exit ${STATE_WARNING};
else

if [ ${Model} != 'P800' ];
then
echo "This plugin is For P800";
exit ${STATE_WARNING};
fi

HPVersion=`${_EXEC_hpacucli} ctrl slot=${Slot} show config detail | grep "Firmware Version" |awk -F "Firmware Version: " '{print $2}'`;

if [ ${HPVersion} == "5.26" ];
then
echo "This Firmware is OK.(${HPVersion})";
exit ${STATE_OK};
else
echo "It needs to Upgrade.(${HPVersion})";
exit ${STATE_CRITICAL};
fi
fi
fi
exit;




-----------------------------------------------------------------
대상)
- P800 레이드 카드를 사용하는 서버군(only SATA)

증상)
- HP MSA60 모델에서 RAID Array로 인한 다운되는 현상이 발생됨.
- xpbigbox41 ~ 50 까지 스카시 레이드 컨트롤러 firmware 업그레이드 및 하드디스크 교체
- 하드디스크에 에러가 발생하면 레이드 카드가 이를 감지하여 degrade 또는 fail을 할당해야 하는데
- MSA60에서 사용되고 있는 P800 모델에서 나타남.

원인)
- P800 카드 문제
- 현재 Firmware 5.20에서 나타남

해결 방법)
- Firmware 5.20에서 5.26으로 업그레이드
- HP 디버그 유틸로 확인 시 하드디스크에 에러가 발생되어 있으면 하드디스크 교체해야함

nagios detect 방법)
hpacucli에서 P800 사용 여부와 현재 사용중인 slot을 조사함
[[email protected] ~]# /usr/sbin/hpacucli ctrl all show config
....
Smart Array P400 in Slot 1 (sn: PAFGK0M9SWH3WA)
....
Smart Array P800 in Slot 4 (sn: PAFGF0M9SWK258)
....
....
-----------------------------------------------------------------
(*) 레포팅 유형
+ 비정상
It needs to Upgrade.(5.20)


+ 정상
This Firmware is OK.(5.26)


 
 

Total. 25
번호 분류 제목 작성자 등록일 조회수
25 Shell [날짜] awk를 이용하여 unixtime의 시간 차 구하기 rootman 01-27 8221
24 Shell 쉘배열 (shell array) rootman 05-15 12755
23 Shell [날짜] date 함수로 unixtime의 시간 차 구하기 rootman 12-07 7098
22 Shell [squid] proxy 서버의 캐시 데이터 추출 rootman 03-24 6291
21 Shell [nagios] HP MSA60 P800 하드디스크 에러 검출 스크립트 rootman 06-26 10104
20 Shell [nagios] HP MSA60 P800 스카시 컨트롤러 펌웨어 체크 plugin rootman 04-16 10363
19 Shell Positional Parameter(위치변수) rootman 02-17 8725
18 Shell lynx를 통한 내부 링크와 외부 링크 return rootman 03-14 9459
17 Shell 입력 값은 값이 숫자인지 체크하기 rootman 11-13 8175
16 Shell [공유메모리] critical_create(): semget() failed 발생 시 rootman 01-30 8115
15 Shell [예제] 입력받은 문자열 대문자로 모두 변경하기 (1) rootman 09-12 7876
14 Shell 데이터 베이스 일괄(table 별도)로 전체 백업하기 (101) rootman 07-03 14198
13 Shell [최종수정 : 2005/09/12] 서버 상태 값 주기적으로 메일로 발송… 루트맨 01-27 11163
12 Shell mysql Database 테이블 모두 최적화하기 (7) rootman 03-21 15347
11 Shell [예제] 변수 할당과 치환 (17) rootman 10-14 8570
 1  2  
AND OR