Module: check_mk
Branch: master
Commit: 42048a03d67a113c696c3a8113db6e11c13f2353
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=42048a03d67a11…
Author: Florian Heigl <fh(a)mathias-kettner.de>
Date: Fri Jun 8 18:30:11 2012 +0200
Update of TSM Agent
---
agents/plugins/mk_tsm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 54 insertions(+), 0 deletions(-)
diff --git a/agents/plugins/mk_tsm b/agents/plugins/mk_tsm
new file mode 100755
index 0000000..765708c
--- /dev/null
+++ b/agents/plugins/mk_tsm
@@ -0,0 +1,54 @@
+#!/usr/bin/ksh
+
+# Configuration is needed for username and password for dsmadmc
+# Example
+# TSM_USER=foo
+# TSM_PASSWORD=bar
+
+. $MK_CONFDIR/tsm.cfg || exit 1
+
+if [ -z "$TSM_USER" -o -z "$TSM_PASSWORD" ]
+then
+ echo "Please set TSM_USER and TSM_PASSWORD in $MK_CONFDIR/tsm.cfg"
>&2
+ exit 1
+fi
+
+do_tsm_checks ()
+{
+ INST=${DSMSERV_DIR##*/}
+
+ # If we have no instance name, we take 'default'
+ if [ -z "$INST" ] ; then INST=default ; fi
+
+ dsmcmd="dsmadmc -id=$TSM_USER -pass=$TSM_PASSWORD -dataonly=yes -tab"
+
+ # Staging Pools
+ echo '<<<tsm_stgpools:sep(9)>>>'
+ $dsmcmd <<EOF | sed -n "/^FOO/s//$INST/p"
+select 'FOO',stgpool_name,pct_utilized from volumes where
access='READWRITE' and devclass_name<>'DISK'
+EOF
+
+ # Drive Status
+ echo '<<<tsm_drives:sep(9)>>>'
+ $dsmcmd <<EOF | sed -n "/^FOO/s//$INST/p"
+SELECT 'FOO', library_name, drive_name, drive_state, online, drive_serial FROM
drives
+EOF
+
+ # Occupancy
+ echo '<<<tsm_occupancy:sep(9)>>>'
+ $dsmcmd <<EOF | sed -n "/^FOO/s//$INST/p"
+SELECT 'FOO', type, stgpool_name, sum(logical_mb) from occupancy group by type,
stgpool_name
+EOF
+
+}
+
+# Find in the list of processes TSM daemons. Example output of 'ps xewwg'
+# 8781984 - A 127:26 dsmserv _=/usr/bin/dsmserv LANG=en_US LOGIN=root
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java5/jre/bin:/usr/java5/bin
LC_ALL=en_US DSMSERV_CONFIG=/foobar_17g/dsmserv.opt LC__FASTMSG=true LOGNAME=root
MAIL=/var/spool/mail/root LOCPATH=/usr/lib/nls/loc DSMSERV_DIR=/foobar_17g USER=root
AUTHSTATE=compat AIXTHREAD_MNRATIO=1:1 SHELL=/usr/bin/ksh ODMDIR=/etc/objrepos HOME=/
SSH_CLIENT=192.168.21.199 37725 22 SSH_CONNECTION=192.168.21.199 37725 192.168.21.214 22
PWD=/foobar_17g TZ=Europe/Bucharest AIXTHREAD_SCOPE=S
DSMSERV_ACCOUNTING_DIR=/foobar_17g/acc
NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.cat
LIBPATH=/usr/local/Centera_SDK/lib/64/
+
+ps xewwg | sed -n '/ dsmserv .* DSMSERV_CONFIG=/s/^.* dsmserv //p' | \
+while read line
+do
+ # Take over all relevant environment into our own
+ eval "$(echo "$line" | tr ' ' '\n' | sed -n
'/^DSMSERV_/s/^/export /p')"
+ do_tsm_checks
+done