Sledování stavu Areca řadiče Nagiosem
Na některých serverech používáme řadiče Areca ARC-1680, pro klidný spánek monitorujeme stav diskových svazků Nagiosem.
Pro sledování stavu využíváme utilitu od výrobce, program arecacli
:
[root@server ~]# /usr/local/sbin/arecacli vsf info # Name Raid Name Level Capacity Ch/Id/Lun State =============================================================================== 1 ARC-1680-VOL#000 RS# Dat1 Raid1+0 750.0GB 00/00/00 Normal 2 ARC-1680-VOL#001 RS# Dat2 Raid1+0 750.0GB 00/00/01 Normal 3 ARC-1680-VOL#002 RS# Dat3 Raid1+0 1466.0GB 00/00/02 Normal 4 ARC-1680-VOL#003 RS# Dat4 Raid6 3750.0GB 00/00/03 Normal =============================================================================== GuiErrMsg<0x00>: Success.
Na některých serverech používáme řadiče Areca ARC-1680, pro klidný spánek monitorujeme stav diskových svazků Nagiosem.
Pro sledování stavu využíváme utilitu od výrobce, program arecacli
:
[root@server ~]# /usr/local/sbin/arecacli vsf info # Name Raid Name Level Capacity Ch/Id/Lun State =============================================================================== 1 ARC-1680-VOL#000 RS# Dat1 Raid1+0 750.0GB 00/00/00 Normal 2 ARC-1680-VOL#001 RS# Dat2 Raid1+0 750.0GB 00/00/01 Normal 3 ARC-1680-VOL#002 RS# Dat3 Raid1+0 1466.0GB 00/00/02 Normal 4 ARC-1680-VOL#003 RS# Dat4 Raid6 3750.0GB 00/00/03 Normal =============================================================================== GuiErrMsg<0x00>: Success.
Program arecacli je třeba spouštět pod vyšším oprávněním, nechtělo se mi měnit práva k zařízení v /dev, tak jsem použil SUDO, zápis v /etc/sudoers:
Cmnd_Alias ARECA = /usr/local/sbin/arecacli nrpe ALL= NOPASSWD: ARECA
#!/bin/bash VOLUMES="1 2 3 4" STATE_OK=0 # define the exit code if status is OK STATE_WARNING=1 # define the exit code if status is Warning (not really used) STATE_CRITICAL=2 # define the exit code if status is Critical STATE_UNKNOWN=3 # define the exit code if status is Unknown PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin for cmd in arecacli awk sed sudo [ do if ! `which ${cmd} 1>/dev/null` then echo "UNKNOWN: ${cmd} does not exist, please check if command exists and PATH is correct" exit ${STATE_UNKNOWN} fi done RESULT="" ERROR=0 for volume in $VOLUMES; do volstate=$(/usr/bin/sudo /usr/local/sbin/arecacli vsf info vol=${volume} | awk -F: '/Volume\ State/{str=$2; sub("[ \t]*","",str); print str}') if [ "${volstate}" != "Normal" ]; then ERROR=1 fi RESULT="${RESULT}Vol$volume: ${volstate} " done if [ $ERROR -gt 0 ]; then echo "ERROR: ${RESULT}" exit ${STATE_CRITICAL} else echo "OK: ${RESULT}" exit ${STATE_OK} fi
Arecacli pro kontrolu svazku potřebuje skoro jednu sekundu. U nás celkem pro běh skriptu potřebujeme 4s:
[root@server ~]# time /usr/local/sbin/check_areca OK: Vol1: Normal Vol2: Normal Vol3: Normal Vol4: Normal real 0m3.973s user 0m0.015s sys 0m0.044s
Zařazení do NRPE je snadné, /etc/nagios/nrpe.cfg
:
... command[check_areca]=/usr/local/sbin/check_areca ...