summaryrefslogtreecommitdiffstats
path: root/abs/core/xymon
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/xymon')
-rwxr-xr-xabs/core/xymon/PKGBUILD43
-rwxr-xr-xabs/core/xymon/clientlaunch.cfg.patch30
-rwxr-xr-xabs/core/xymon/graphs.cfg.diff (renamed from abs/core/xymon/graph.cfg.diff)23
-rwxr-xr-xabs/core/xymon/hbnotes.py1
-rw-r--r--abs/core/xymon/hobbit-myth-orphan.sh51
-rwxr-xr-xabs/core/xymon/hobbit_myth_data.py3
-rw-r--r--abs/core/xymon/hobbit_notify.sh42
-rwxr-xr-xabs/core/xymon/tasks.d.mv14
-rw-r--r--abs/core/xymon/xymon-client.rules3
-rwxr-xr-xabs/core/xymon/xymon-hddtemp.sh62
-rw-r--r--abs/core/xymon/xymon-server.rules1
-rwxr-xr-xabs/core/xymon/xymon-smart.sh75
-rwxr-xr-xabs/core/xymon/xymonserver.cfg.diff19
13 files changed, 283 insertions, 84 deletions
diff --git a/abs/core/xymon/PKGBUILD b/abs/core/xymon/PKGBUILD
index e8908cc..787ce61 100755
--- a/abs/core/xymon/PKGBUILD
+++ b/abs/core/xymon/PKGBUILD
@@ -1,7 +1,7 @@
pkgbase=xymon
pkgname=('xymonserver' 'xymonclient')
pkgver=4.3.17
-pkgrel=11
+pkgrel=23
pkgdesc="Xymon is a system for monitoring of hosts and networks"
license="GPL"
arch=('i686' 'x86_64')
@@ -9,7 +9,7 @@ url="http://www.xymon.com/"
source=("https://downloads.sourceforge.net/project/xymon/Xymon/$pkgver/$pkgbase-$pkgver.tar.gz"
'hobbitadd.py'
'xymon_ghost_check'
- 'graph.cfg.diff'
+ 'graphs.cfg.diff'
'xymonserver.cfg.diff'
'tasks.d.mv'
'clientlaunch.cfg.patch'
@@ -25,14 +25,17 @@ source=("https://downloads.sourceforge.net/project/xymon/Xymon/$pkgver/$pkgbase-
'alerts.cfg'
'hobbit_myth_data.py'
'xymon-gputemp.sh'
+ 'xymon-hddtemp.sh'
+ 'xymon-smart.sh'
'logrotate-server.xymon'
'logrotate-client.xymon'
'log_list.sh'
'client-local.cfg.patch'
'led_themes.tar.gz'
'xymon-server.rules'
+ 'xymon-client.rules'
'hosts.cfg.patch')
-depends=('rrdtool' 'fping' 'pcre' 'python2' 'graphviz')
+depends=('rrdtool' 'fping' 'pcre' 'python2' 'graphviz' 'smartmontools')
install=xymon.install
build() {
@@ -81,6 +84,8 @@ package_xymonserver(){
install -D -m755 ${srcdir}/hobbit_myth_data.py ${pkgdir}/home/xymon/server/ext/hobbit_myth_data.py
install -D -m755 ${srcdir}/hobbit-mem-myth.sh ${pkgdir}/home/xymon/server/ext/hobbit-mem-myth.sh
install -D -m755 ${srcdir}/xymon-gputemp.sh ${pkgdir}/home/xymon/server/ext/xymon-gputemp.sh
+ install -D -m755 ${srcdir}/xymon-hddtemp.sh ${pkgdir}/home/xymon/server/ext/xymon-hddtemp.sh
+ install -D -m755 ${srcdir}/xymon-smart.sh ${pkgdir}/home/xymon/server/ext/xymon-smart.sh
install -D -m755 ${srcdir}/log_list.sh ${pkgdir}/home/xymon/client/bin/log_list.sh
install -m755 analysis.cfg ${pkgdir}/home/xymon/etc/analysis.cfg
@@ -94,8 +99,9 @@ package_xymonserver(){
install -D -m644 ${srcdir}/logrotate-server.xymon ${pkgdir}/etc/logrotate.d/xymon-server
- # fix env for mythtb bindingds
+ # fix env for mythtv bindings
echo "MYTHCONFDIR=/usr/share/mythtv" >> ${pkgdir}/home/xymon/etc/xymonserver.cfg
+ echo "MYTHCONFDIR=/usr/share/mythtv" >> ${pkgdir}/home/xymon/client/etc/xymonclient.cfg
#copy in replacment icon set
DOCDIR=${pkgdir}/data/srv/httpd/htdocs/xymon
@@ -107,7 +113,7 @@ package_xymonserver(){
#apply patches to conf file
install -D -m775 ${srcdir}/tasks.d.mv ${pkgdir}/home/xymon/etc/tasks.d/mv.cfg
cd ${pkgdir}/home/xymon/etc
- patch -p0 < ${srcdir}/graph.cfg.diff || return 1
+ patch -p0 < ${srcdir}/graphs.cfg.diff || return 1
patch -p0 < ${srcdir}/xymonserver.cfg.diff || return 1
patch -p3 < ${srcdir}/client-local.cfg.patch || return 1
patch -p3 < ${srcdir}/hosts.cfg.patch || return 1
@@ -134,14 +140,18 @@ package_xymonserver(){
package_xymonclient(){
#create client package as well
- depends=()
+ depends=('smartmontools')
backup=('data/srv/xymon/client/etc/xymonclient.cfg')
install=xymon-client.install
+ install -D -m400 ${srcdir}/xymon-client.rules ${pkgdir}/etc/sudoers.d/xymon_client
install -D -m755 ${srcdir}/log_list.sh ${pkgdir}/home/xymon/client/bin/log_list.sh
install -D -m644 ${srcdir}/logrotate-client.xymon ${pkgdir}/etc/logrotate.d/xymon-client
+ install -D -m755 ${srcdir}/hobbit_myth_data.py ${pkgdir}/home/xymon/client/ext/hobbit_myth_data.py
install -D -m755 ${srcdir}/hobbit-mem-myth.sh ${pkgdir}/home/xymon/client/ext/hobbit-mem-myth.sh
install -D -m755 ${srcdir}/xymon-gputemp.sh ${pkgdir}/home/xymon/client/ext/xymon-gputemp.sh
+ install -D -m755 ${srcdir}/xymon-hddtemp.sh ${pkgdir}/home/xymon/client/ext/xymon-hddtemp.sh
+ install -D -m755 ${srcdir}/xymon-smart.sh ${pkgdir}/home/xymon/client/ext/xymon-smart.sh
cp -rp ${pkgdir}/../xymonserver/home/xymon/client/ ${pkgdir}/home/xymon/
cd -
@@ -153,28 +163,31 @@ package_xymonclient(){
md5sums=('d8d119a777e7b7204d1292fb27314312'
'a0fbb9cbeb3600a40943e6205790f22f'
'c60b0d59bb39505ee3d62c6dd65429c5'
- '53f1af1054d3c70f4d6b6fe952cf7e11'
- 'b2f404913400a25f13c63b27f064ad2e'
- 'e40c31eb53ef17c0c544389a525de957'
- '3ad3ce12b84cca82dd34ef97984c315e'
+ '92bd5e8279c688fd854d514443bc733c'
+ 'f0fca78520f434918bd1be717d165073'
+ 'a19c8c546dcd95049476bb19f9d4e3ae'
+ 'c9a31ea9ae131fb351db913e922c25aa'
'b2f98ac0df013332deedc1efae0a270d'
- '4a8244c1bb44fe35ca7372355b01cec4'
- '526c169e020b570b5b02661a831aa4e6'
+ 'df77d1de72157d23a301a72288fbf7e5'
+ '2a509d81ee1655130ce40bf970719e0a'
'166279c006c3ef7bf0c21537cf89fc83'
'80d9cfac86c6d96836e6f406e35e7cf5'
'd210c43fb9ee9ad6cd7648e0c2e0efea'
'0c808fa12672289f86b0651545381308'
'0469d775db9fdd18ea95dd41937ada82'
'0757294eec13771f8e63da23cf066796'
- '270e13da6cbc9d49079d994edaa71e64'
+ 'b1d5592fa92ef71303621964e84c2b9e'
'22d4c9065fd959efe82f121dcb511305'
'9af2ad60ac4c3cb653754618f603e311'
- 'a9b7f0a22f29f55b2928160bc44f2c14'
+ '313b11e7a22c3c08fb2afaadbfb46d87'
'6452d891d88bb46d07bcf7790a523ad0'
+ 'b49e7de696c1a0678ad198bab926266c'
+ 'e071c387deac6b896b20db19903b7794'
'b4e8641e97e6b689dbc634af785e6799'
'e2844513e2c92e8b5084818f3b2a478d'
'98e9242ae346f729b14cb195786571f2'
'31ac5c1f6dcc9408b64c4107b325a9a6'
'c7178bbf384bbe86c318b60fef6faf10'
- '72bf7caf0f53928d97ff5cd9810d6d4d'
+ '2871c53627e9e125922118013a868a95'
+ 'cdfbca43dbae4ce0ca72dd002ec22af1'
'606f535a49f32b35802ed9d46bd7d068')
diff --git a/abs/core/xymon/clientlaunch.cfg.patch b/abs/core/xymon/clientlaunch.cfg.patch
index 8c1915a..dba5876 100755
--- a/abs/core/xymon/clientlaunch.cfg.patch
+++ b/abs/core/xymon/clientlaunch.cfg.patch
@@ -1,17 +1,35 @@
---- clientlaunch.cfg.orig 2014-10-25 11:56:01.947006791 -0500
-+++ clientlaunch.cfg 2014-10-25 11:57:02.632312788 -0500
-@@ -26,3 +26,14 @@
- LOGFILE $XYMONCLIENTLOGS/xymonclient.log
- INTERVAL 5m
-
+--- clientlaunch.cfg.orig 2015-02-19 22:50:43.102571615 +0000
++++ clientlaunch.cfg 2015-03-06 19:23:04.010103917 +0000
+@@ -26,3 +26,32 @@
+ LOGFILE $XYMONCLIENTLOGS/xymonclient.log
+ INTERVAL 5m
+
+[memmyth]
+ ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg
+ CMD /home/xymon/client/ext/hobbit-mem-myth.sh
+ LOGFILE $XYMONCLIENTLOGS/mythmem.log
+ INTERVAL 5m
+
++[mtc]
++ ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg
++ CMD /home/xymon/client/ext/hobbit_myth_data.py
++ LOGFILE $XYMONCLIENTLOGS/mtc.log
++ INTERVAL 5m
++
+[gputemp]
+ ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg
+ CMD /home/xymon/client/ext/xymon-gputemp.sh
+ LOGFILE $XYMONCLIENTLOGS/xymon-gputemp.log
+ INTERVAL 5m
++
++[hddtemp]
++ ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg
++ CMD /home/xymon/client/ext/xymon-hddtemp.sh
++ LOGFILE $XYMONCLIENTLOGS/xymon-hddtemp.log
++ INTERVAL 5m
++
++[smart]
++ ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg
++ CMD /home/xymon/client/ext/xymon-smart.sh
++ LOGFILE $XYMONCLIENTLOGS/xymon-smart.log
++ INTERVAL 30m
diff --git a/abs/core/xymon/graph.cfg.diff b/abs/core/xymon/graphs.cfg.diff
index a105bd7..8b1b438 100755
--- a/abs/core/xymon/graph.cfg.diff
+++ b/abs/core/xymon/graphs.cfg.diff
@@ -1,15 +1,15 @@
---- graphs.cfg.orig 2014-10-25 12:01:22.209825001 -0500
-+++ graphs.cfg 2014-10-25 21:55:22.065856064 -0500
-@@ -2100,4 +2100,50 @@
+--- graphs.cfg.orig 2015-03-04 21:46:31.493387574 +0000
++++ graphs.cfg 2015-03-04 21:47:26.972936010 +0000
+@@ -2100,4 +2100,60 @@
GPRINT:qlen@RRDIDX@:AVERAGE: %6.1lf (avg)\n
-
+
########### end of ifmib graphs ###########
+[storage]
+ TITLE Storage Groups
+ YAXIS recordings
+ DEF:storage1=storage.rrd:rectvtotal:AVERAGE
+ LINE2:storage1#00CCCC:current recorded
-+
+
+ DEF:rectime=storage.rrd:rectvtime:AVERAGE
+ LINE2:rectime#000000:current recorded time
+
@@ -50,5 +50,14 @@
+ GPRINT:gputemp:MAX: \: %5.1lf (max)
+ GPRINT:gputemp:MIN: \: %5.1lf (min)
+ GPRINT:gputemp:AVERAGE: \: %5.1lf (avg)\n
-
-
++
++[hddtemp]
++ FNPATTERN ^hddtemp.(.*).rrd
++ TITLE Hard Drive Temperatures
++ YAXIS Celsius
++ DEF:p@RRDIDX@=@RRDFN@:lambda:AVERAGE
++ LINE2:p@RRDIDX@#@COLOR@:@RRDPARAM@\n
++ GPRINT:p@RRDIDX@:LAST: %5.1lf °C (cur)
++ GPRINT:p@RRDIDX@:MAX: \: %5.1lf °C (max)
++ GPRINT:p@RRDIDX@:MIN: \: %5.1lf °C (min)
++ GPRINT:p@RRDIDX@:AVERAGE: \: %5.1lf °C (avg)\n
diff --git a/abs/core/xymon/hbnotes.py b/abs/core/xymon/hbnotes.py
index d14d62a..d18a606 100755
--- a/abs/core/xymon/hbnotes.py
+++ b/abs/core/xymon/hbnotes.py
@@ -40,6 +40,7 @@ def create_dot_file():
for row in result:
hostname = row[0]
dot_hostname = row[0].replace('.','_')
+ dot_hostname = row[0].replace('-','__')
#Find the system type
cursor.execute("select value,data from settings where hostname=%s and value in ('HostSystemType','HostRunFrontend');",(row))
hostvalues=cursor.fetchall()
diff --git a/abs/core/xymon/hobbit-myth-orphan.sh b/abs/core/xymon/hobbit-myth-orphan.sh
index cc4ca30..5f7c7ba 100644
--- a/abs/core/xymon/hobbit-myth-orphan.sh
+++ b/abs/core/xymon/hobbit-myth-orphan.sh
@@ -1,48 +1,43 @@
#!/bin/bash
-TMPFILE=/tmp/oprhan.result
+TMPFILE=/tmp/orphan.result
MYTHCONFDIR=/usr/share/mythtv /usr/LH/bin/find_orphans.py --printonly > $TMPFILE
-
COLUMN=orphan # Name of the column
COLOR=green # By default, everything is OK
-MSG="No Orphans Found."
-
-
+MSG="No Orphans Found."
#yellow
for i in "Orphaned video files" "Orphaned snapshots" "Database backups" "Other files" "Recordings with missing files" "Zero byte recordings"
do
grep -q "$i" $TMPFILE
status=$?
- if [ $status -eq 0 ]
+ if [[ $status -eq 0 ]] && [[ $i == "Database backups" ]]
+ then
+ MSG="$i"
+ elif [ $status -eq 0 ]
then
COLOR="yellow"
- MSG="Problems with $i"
+ MSG="Problems with"
fi
done
-#red
-#for i in "Recordings with missing files" "Zero byte recordings"
-#do
-# grep -q "$i" $TMPFILE
-# status=$?
-# if [ $status -eq 0 ]
-# then
-# COLOR="red"
-# MSG="Problems with $i"
-# fi
-#done
-
+if [[ $MSG == "Database backups" ]]
+then
MSG="
- ${MSG}
- `cat $TMPFILE` "
-# Tell Hobbit about it
-$BB $BBDISP "status $MACHINE.$COLUMN $COLOR `date`
- ${MSG}
- "
-exit 0
-
-
+`cat $TMPFILE`
+"
+elif [[ $MSG != "No Orphans Found." ]]
+then
+MSG="
+${MSG} `cat $TMPFILE`
+<b>From <a href="/shell/" target="_blank">System >> Terminal</a> run find_orphans.py to clean up these issues.</b>
+"
+fi
+# Tell Hobbit about it
+$BB $BBDISP "status $MACHINE.$COLUMN $COLOR Results from find_orphans.py
+ ${MSG}
+ "
+exit 0
diff --git a/abs/core/xymon/hobbit_myth_data.py b/abs/core/xymon/hobbit_myth_data.py
index ec16818..618e2ac 100755
--- a/abs/core/xymon/hobbit_myth_data.py
+++ b/abs/core/xymon/hobbit_myth_data.py
@@ -7,7 +7,7 @@ import urllib2
import string
import time , datetime
import sys,os
-from MythTV import MythBE,MythDB,MythLog
+from MythTV import MythDB,MythLog
#0=green
@@ -77,7 +77,6 @@ def find_data_left():
days_left = 0
today = datetime.datetime.today()
try:
- be=MythBE()
db = MythDB()
cursor = db.cursor()
except:
diff --git a/abs/core/xymon/hobbit_notify.sh b/abs/core/xymon/hobbit_notify.sh
index 26b789f..39e4d43 100644
--- a/abs/core/xymon/hobbit_notify.sh
+++ b/abs/core/xymon/hobbit_notify.sh
@@ -40,40 +40,50 @@ function msg_func_out() {
}
function msg_local_out() {
-
/usr/LH/bin/msg_client.py --msg "${1}"
-
- }
+}
case x$BBSVCNAME in
xdisk)
- case $BBCOLORLEVEL in
+ case $BBCOLORLEVEL in
red )
- msg_func_out "$BBHOSTNAME disk is at 95% full or greater|alert"
+ if [[ $BBALPHAMSG == *"&red / ("* ]]
+ then
+ msg_func_out "The OS (/) partition on $BBHOSTNAME is over 99% full|alert"
+ fi
+ if [[ $BBALPHAMSG == *"&red /home ("* ]]
+ then
+ msg_func_out "The home (/home) partition on $BBHOSTNAME is over 99% full|alert"
+ fi
+ if [[ $BBALPHAMSG == *"&red /data/srv/mysql ("* ]]
+ then
+ msg_func_out "The mysql (/data/srv/mysql) partition on $BBHOSTNAME is over 99% full|alert"
+ fi
;;
yellow )
- msg_func_out "$BBHOSTNAME disk is almost full"
+ msg_func_out "A disk on $BBHOSTNAME is almost full"
;;
- esac
- ;;
-
- xfunc)
- if [ "x$hostname" = "x$BBHOSTNAME" ]
+ esac
+ ;;
+
+ xmemory)
+ #do nothing for memory
+ ;;
+
+ xfunc)
+ if [ "x$hostname" = "x$BBHOSTNAME" ]
then
- msg_local_out "System can not communicate with itself (func) |alert"
+ msg_local_out "System can not communicate with itself (func)|alert"
else
msg_func_out "$hostname can not communicate with $BBHOSTNAME (func)|alert"
fi
;;
- *)
+ *)
#catch all for everything else
msg_func_out "Condition $BBCOLORLEVEL $BBSVCNAME on $BBHOSTNAME\nSee the system health webpage.|alert"
;;
esac
-
-
-
diff --git a/abs/core/xymon/tasks.d.mv b/abs/core/xymon/tasks.d.mv
index 02afc14..2cdaebb 100755
--- a/abs/core/xymon/tasks.d.mv
+++ b/abs/core/xymon/tasks.d.mv
@@ -42,4 +42,16 @@
ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg
CMD /home/xymon/server/ext/xymon-gputemp.sh
LOGFILE $BBSERVERLOGS/xymon-gputemp.log
- INTERVAL 5m \ No newline at end of file
+ INTERVAL 5m
+
+[hddtemp]
+ ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg
+ CMD /home/xymon/server/ext/xymon-hddtemp.sh
+ LOGFILE $BBSERVERLOGS/xymon-hddtemp.log
+ INTERVAL 5m
+
+[smart]
+ ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg
+ CMD /home/xymon/server/ext/xymon-smart.sh
+ LOGFILE $BBSERVERLOGS/xymon-smart.log
+ INTERVAL 30m
diff --git a/abs/core/xymon/xymon-client.rules b/abs/core/xymon/xymon-client.rules
new file mode 100644
index 0000000..f13b3f6
--- /dev/null
+++ b/abs/core/xymon/xymon-client.rules
@@ -0,0 +1,3 @@
+#These rules are used by xymon-client
+nobody ALL = NOPASSWD:/usr/bin/smartctl
+
diff --git a/abs/core/xymon/xymon-hddtemp.sh b/abs/core/xymon/xymon-hddtemp.sh
new file mode 100755
index 0000000..7084abc
--- /dev/null
+++ b/abs/core/xymon/xymon-hddtemp.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+
+# NOTE: Must be run as root, so you probably need to setup sudo for this.
+
+ls /dev/disk/by-id/* | grep -ve '-part' -ve '/wwn-' |
+while read DISK
+do
+ DISKDEV=`ls -l $DISK | awk -F/ '{print $NF}'`
+ DISKNAME=`echo $DISK | awk -F/ '{print $5}' | tr ":" "_"`
+
+ #check if device is optical
+ if [[ $DISKDEV == "sr"* ]]
+ then
+ continue
+ fi
+
+ #check if device is mounted
+ if ! mount | grep -q /dev/$DISKDEV
+ then
+ continue
+ fi
+
+ #check if SMART is disabled and enable
+ DRES=`sudo /usr/bin/smartctl -A $DISK`
+ if [[ $DRES == *"SMART Disabled. Use option -s with argument 'on'"* ]]
+ then
+ sudo /usr/bin/smartctl -s on $DISK
+ DRES=`sudo /usr/bin/smartctl -A $DISK`
+ fi
+
+ hddtemp=`echo "$DRES" | grep Temperature_Celsius | awk '{print $10}'`
+
+ TEMP=": $hddtemp"
+ if [[ $hddtemp == "" ]]
+ then
+ TEMP="- No Temp Sensor Found"
+ COLOR="4&clear"
+ elif test $hddtemp -gt 55
+ then
+ COLOR="1&red"
+ elif test $hddtemp -ge 50
+ then
+ COLOR="2&yellow"
+ else
+ COLOR="3&green"
+ fi
+
+ echo "${COLOR} $DISKNAME $TEMP"
+
+done > /tmp/hddcheck
+
+COLOR=`cat /tmp/hddcheck | awk '{print $1}' | sort | uniq | head -1 | cut -c3-`
+
+# Report status to Xymon Server
+$XYMON $XYMSRV "status ${MACHINE}.hddtemp ${COLOR} Hard Drive Temperatures (in &degC)
+
+`cat /tmp/hddcheck | cut -c2-`
+"
+
+rm -f /tmp/hddcheck
+
+exit 0
diff --git a/abs/core/xymon/xymon-server.rules b/abs/core/xymon/xymon-server.rules
index b0f6100..e4c515b 100644
--- a/abs/core/xymon/xymon-server.rules
+++ b/abs/core/xymon/xymon-server.rules
@@ -1,5 +1,6 @@
#These rules are used by xymon-server
nobody ALL = NOPASSWD:/usr/bin/certmaster-ca
+nobody ALL = NOPASSWD:/usr/bin/smartctl
http ALL = NOPASSWD:/usr/LH/bin/lh_system_backup_job
http ALL = NOPASSWD:/usr/LH/bin/lh_system_restore_job
http ALL = NOPASSWD:/sbin/sv
diff --git a/abs/core/xymon/xymon-smart.sh b/abs/core/xymon/xymon-smart.sh
new file mode 100755
index 0000000..7c10db5
--- /dev/null
+++ b/abs/core/xymon/xymon-smart.sh
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+# NOTE: Must be run as root, so you probably need to setup sudo for this.
+
+if test -f /tmp/dres; then rm -f /tmp/dres; fi
+
+ls /dev/disk/by-id/* | grep -ve '-part' -ve '/wwn-' |
+while read DISK
+do
+ DISKDEV=`ls -l $DISK | awk -F/ '{print $NF}'`
+
+ #check if device is optical
+ if [[ $DISKDEV == "sr"* ]]
+ then
+ continue
+ fi
+
+ #check if device is mounted
+ if ! mount | grep -q /dev/$DISKDEV
+ then
+ continue
+ fi
+
+ DRES=`sudo /usr/bin/smartctl -H -n standby $DISK`
+ DCODE=$?
+
+ #check if SMART is disabled and enable
+ if [[ $DRES == *"SMART Disabled. Use option -s with argument 'on'"* ]]
+ then
+ sudo /usr/bin/smartctl -s on $DISK
+ DRES=`sudo /usr/bin/smartctl -H -n standby $DISK`
+ DCODE=$?
+ fi
+
+ DSTBY=$(( $DCODE & 2 ))
+ DFAIL=$(( $DCODE & 8 ))
+ DWARN=$(( $DCODE & 32 ))
+
+ if test $DSTBY -ne 0
+ then
+ COLOR="4&clear"
+ elif test $DFAIL -ne 0
+ then
+ COLOR="1&red"
+ elif test $DWARN -ne 0
+ then
+ COLOR="2&yellow"
+ else
+ COLOR="3&green"
+ fi
+
+ echo "${COLOR} $DISK (/dev/$DISKDEV)"
+
+ echo "${COLOR} $DISK (/dev/$DISKDEV)" | cut -c2- >>/tmp/dres
+ echo "" >>/tmp/dres
+ echo "$DRES" | egrep -v "^smartctl|^Copyright|^$|^===" >>/tmp/dres
+ echo "-----------------------------------------------------------------------------" >>/tmp/dres
+ echo "" >>/tmp/dres
+ echo "" >>/tmp/dres
+done >/tmp/dcheck
+
+COLOR=`cat /tmp/dcheck | awk '{print $1}' | sort | uniq | head -1 | cut -c3-`
+
+$XYMON $XYMSRV "status ${MACHINE}.smart ${COLOR} SMART Health Check
+
+`cat /tmp/dcheck | cut -c2-`
+
+============================== Detailed status ==============================
+
+`cat /tmp/dres`
+"
+
+rm -f /tmp/dres /tmp/dcheck
+
+exit 0
diff --git a/abs/core/xymon/xymonserver.cfg.diff b/abs/core/xymon/xymonserver.cfg.diff
index 8850670..48631dc 100755
--- a/abs/core/xymon/xymonserver.cfg.diff
+++ b/abs/core/xymon/xymonserver.cfg.diff
@@ -1,30 +1,31 @@
---- xymonserver.cfg.orig 2014-10-25 22:05:16.611876375 -0500
-+++ xymonserver.cfg 2014-10-25 22:07:35.818604144 -0500
-@@ -145,6 +145,11 @@
+--- xymonserver.cfg.orig 2015-03-04 21:28:58.618598840 +0000
++++ xymonserver.cfg 2015-03-04 21:31:55.352569106 +0000
+@@ -145,6 +145,12 @@
RRDHEIGHT="120"
RRDWIDTH="576" # The RRD's contain 576 data points, so this is a good value
-
+
+NCV_storage="*:GAUGE"
+NCV_memmbe="*:GAUGE"
+NCV_memmfe="*:GAUGE"
+NCV_gputemp="*:GAUGE"
++SPLITNCV_hddtemp="*:GAUGE"
+
# TEST2RRD defines the status- and data-messages you want to collect RRD data
# about. You will normally not need to modify this, unless you have added a
# script to pick up RRD data from custom tests (the xymond_rrd --extra-script
-@@ -156,11 +161,13 @@
+@@ -156,11 +162,13 @@
#
# This is also used by the svcstatus.cgi script to determine if the detailed
# status view of a test should include a graph.
-TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,if_load=devmon,temp=devmon,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
+#TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,if_load=devmon,temp=devmon,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
-+TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,if_load=devmon,temp=devmon,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond,storage=ncv,memmbe=ncv,memmfe=ncv,gputemp=ncv"
-
++TEST2RRD="cpu=la,disk,inode,qtree,memory,$PINGCOLUMN=tcp,http=tcp,dns=tcp,dig=tcp,time=ntpstat,vmstat,iostat,netstat,temperature,apache,bind,sendmail,mailq,nmailq=mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,files,procs=processes,ports,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,if_load=devmon,temp=devmon,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond,storage=ncv,memmbe=ncv,memmfe=ncv,gputemp=ncv,hddtemp=ncv,smart"
+
# This defines which RRD files to include on the "trends" column webpage,
# and the order in which they appear.
-GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,devmon::1,if_load::1,temp,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
+#GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,devmon::1,if_load::1,temp,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond"
-+GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,devmon::1,if_load::1,temp,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond,storage,memmbe,memmfe,gputemp"
-
++GRAPHS="la,disk,inode,qtree,files,processes,memory,users,vmstat,iostat,tcp.http,tcp,ncv,netstat,ifstat,mrtg::1,ports,temperature,ntpstat,apache,bind,sendmail,mailq,socks,bea,iishealth,citrix,bbgen,bbtest,bbproxy,hobbitd,clock,lines,ops,stats,cifs,JVM,JMS,HitCache,Session,JDBCConn,ExecQueue,JTA,TblSpace,RollBack,MemReq,InvObj,snapmirr,snaplist,snapshot,devmon::1,if_load::1,temp,paging,mdc,mdchitpct,cics,dsa,getvis,maxuser,nparts,xymongen,xymonnet,xymonproxy,xymond,storage,memmbe,memmfe,gputemp,hddtemp"
+
# These two settings can be used to restrict what filesystems are being
# tracked (i.e. have their utilisation graphed) by Xymon.