From 57b6224254eb3992e09358df2d867573512f6809 Mon Sep 17 00:00:00 2001 From: crcro Date: Fri, 29 Jul 2016 20:19:41 +0300 Subject: [PATCH 1/2] added snmp extend script for nfs-v3-stats application --- snmp/nfs-stats.sh | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 snmp/nfs-stats.sh diff --git a/snmp/nfs-stats.sh b/snmp/nfs-stats.sh new file mode 100644 index 0000000..25bbb6b --- /dev/null +++ b/snmp/nfs-stats.sh @@ -0,0 +1,47 @@ +#!/bin/bash +############################################################ +# copy this file somewhere like /opt and chmod +x it # +# edit your snmpd.conf and add the below line and restart: # +# extend nfs-stats /opt/nfs-stats.sh # +############################################################ +CFG_NFSFILE='/proc/net/rpc/nfsd' +BIN_CAT='/usr/bin/cat' +BIN_SED='/usr/bin/sed' +BIN_AWK='/usr/bin/awk' +BIN_TR='/usr/bin/tr' +BIN_PASTE='/usr/bin/paste' +BIN_RM='/usr/bin/rm' +BIN_MV='/usr/bin/mv' +LOG_OLD='/tmp/nfsio_old' +LOG_NEW='/tmp/nfsio_new' +LOG_FIX='/tmp/nfsio_fix' + +#get reply cache (rc - values: hits, misses, nocache) +$BIN_CAT $CFG_NFSFILE | $BIN_SED -n 1p | $BIN_AWK '{print $2,$3,$4}' | $BIN_TR " " "\n" > $LOG_NEW + +#get server file handle (fh - values: lookup, anon, ncachedir, ncachenondir, stale) +$BIN_CAT $CFG_NFSFILE | $BIN_SED -n 2p | $BIN_AWK '{print $2,$3,$4,$5,$6}' | $BIN_TR " " "\n" >> $LOG_NEW + +#get io bytes (io - values: read, write) +$BIN_CAT $CFG_NFSFILE | $BIN_SED -n 3p | $BIN_AWK '{print $2,$3}' | $BIN_TR " " "\n" >> $LOG_NEW + +#get read ahead cache (ra - values: cache_size, 0-10%, 10-20%, 20-30%, 30-40%, 40-50%, 50-60%, 60-70%, 70-80%, 80-90%, 90-100%, not-found) +$BIN_CAT $CFG_NFSFILE | $BIN_SED -n 5p | $BIN_AWK '{print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13}' | $BIN_TR " " "\n" >> $LOG_NEW +$BIN_CAT $CFG_NFSFILE | $BIN_SED -n 5p | $BIN_AWK '{print $2}' > $LOG_FIX + +#get server packet stats (net - values: all reads, udp packets, tcp packets, tcp conn) +$BIN_CAT $CFG_NFSFILE | $BIN_SED -n 6p | $BIN_AWK '{print $2,$3,$4,$5}' | $BIN_TR " " "\n" >> $LOG_NEW + +#get server rpc operations (rpc - values: calls, badcalls, badfmt, badauth, badclnt) +$BIN_CAT $CFG_NFSFILE | $BIN_SED -n 7p | $BIN_AWK '{print $2,$3,$4,$5,$6}' | $BIN_TR " " "\n" >> $LOG_NEW + +#get nfs v3 stats (proc3 - values: null, getattr, setattr, lookup, access, readlink, read, write, create, mkdir, symlink, mknod, remove, rmdir, rename, link, readdir, readdirplus, fsstat, fsinfo, pathconf, commit) +$BIN_CAT $CFG_NFSFILE | $BIN_SED -n 8p | $BIN_AWK '{print $3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24}' | $BIN_TR " " "\n" >> $LOG_NEW + +$BIN_PASTE $LOG_FIX +$BIN_PASTE $LOG_NEW $LOG_OLD | while read a b ; do + echo $(($a-$b)) +done + +$BIN_RM $LOG_OLD 2>&1 +$BIN_MV $LOG_NEW $LOG_OLD 2>&1 From 1964aece5e421391cc6cb589c668da0b5f2eeaee Mon Sep 17 00:00:00 2001 From: crcro Date: Fri, 29 Jul 2016 20:22:35 +0300 Subject: [PATCH 2/2] added snmp extend script for os-updates application --- snmp/os-updates.sh | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 snmp/os-updates.sh diff --git a/snmp/os-updates.sh b/snmp/os-updates.sh new file mode 100755 index 0000000..092ccf7 --- /dev/null +++ b/snmp/os-updates.sh @@ -0,0 +1,45 @@ +#!/bin/bash +################################################################ +# copy this script to somewhere like /opt and make chmod +x it # +# edit your snmpd.conf and include # +# extend osupdate /opt/os-updates.sh # +# restart snmpd and activate the app for desired host # +################################################################ +BIN_AWK='/usr/bin/awk' +BIN_WC='/usr/bin/wc' +CMD_WC='-l' +BIN_ZYPPER='/usr/bin/zypper' +CMD_ZYPPER='lu' +BIN_YUM='/usr/bin/yum' +CMD_YUM='check-update' +BIN_APT='/usr/bin/apt' +CMD_APT='list --upgradable' + +#general check for os based on /etc/os-release +if [ -f /etc/os-release ]; then + OS=`$BIN_AWK -F= '/^ID=/{print $2}' /etc/os-release` + if [ $OS == "opensuse" ]; then + UPDATES=`$BIN_ZYPPER $CMD_ZYPPER | $BIN_WC $CMD_WC` + if [ $UPDATES -gt 3 ]; then + echo $(($UPDATES-3)); + else + echo "0"; + fi + elif [ $OS == "\"centos\"" ]; then + UPDATES=`$BIN_YUM $CMD_YUM | $BIN_WC $CMD_WC` + if [ $UPDATES -gt 6 ]; then + echo $(($UPDATES-6)); + else + echo "0"; + fi + elif [ $OS == "ubuntu" ]; then + UPDATES=`$BIN_APT $CMD_APT | $BIN_WC $CMD_WC` + if [ $UPDATES -gt 1 ]; then + echo $(($UPDATES-1)); + else + echo "0"; + fi + fi +else + echo "0"; +fi