1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-02 09:47:23 +03:00

Add new eventscript 40.fs_use that can be used to monitor file system use and flag a node unhealthy when they become full

(This used to be ctdb commit 2fd1babf8135ad5d53f3b25ba823d840ebc66460)
This commit is contained in:
Ronnie Sahlberg 2011-08-11 10:00:53 +10:00
parent c8a18e8f9a
commit ee96db07d5
3 changed files with 55 additions and 0 deletions

View File

@ -258,6 +258,7 @@ install: all
${INSTALLCMD} -m 644 config/events.d/20.multipathd $(DESTDIR)$(etcdir)/ctdb/events.d
${INSTALLCMD} -m 644 config/events.d/31.clamd $(DESTDIR)$(etcdir)/ctdb/events.d
${INSTALLCMD} -m 755 config/events.d/40.vsftpd $(DESTDIR)$(etcdir)/ctdb/events.d
${INSTALLCMD} -m 644 config/events.d/40.fs_use $(DESTDIR)$(etcdir)/ctdb/events.d
${INSTALLCMD} -m 755 config/events.d/41.httpd $(DESTDIR)$(etcdir)/ctdb/events.d
${INSTALLCMD} -m 755 config/events.d/50.samba $(DESTDIR)$(etcdir)/ctdb/events.d
${INSTALLCMD} -m 755 config/events.d/60.nfs $(DESTDIR)$(etcdir)/ctdb/events.d

View File

@ -0,0 +1,53 @@
#!/bin/sh
# ctdb event script for checking local file system utilization
. $CTDB_BASE/functions
loadconfig
case "$1" in
monitor)
# check each specified fs to be checked
# config format is <fs_mount>:<fs_threshold>
for fs in $CTDB_CHECK_FS_USE
do
# parse fs_mount and fs_threshold
fs_config=(`echo $fs | tr ':' '\n'`)
fs_mount=${fs_config[0])}
fs_threshold=${fs_config[1])}
# check if given fs_mount is existing directory
if [ ! -d "$fs_mount" ]; then
echo "$0: Directory $fs_mount does not exist"
exit 1
fi
# check if given fs_threshold is number
if ! [[ "$fs_threshold" =~ ^[0-9]+$ ]] ; then
echo "$0: Threshold $fs_threshold is invalid number"
exit 1
fi
# get utilization of given fs from df
fs_usage=`df -k $fs_mount | grep % | awk {'print $5'} | sed 's/%//g' | tail -n 1`
# check if fs_usage is number
if ! [[ "$fs_usage" =~ ^[0-9]+$ ]] ; then
echo "$0: FS utilization $fs_usage is invalid number"
exit 1
fi
# check if fs_usage is higher than or equal to fs_threshold
if [[ "$fs_usage" -ge "$fs_threshold" ]] ; then
echo "ERROR: Utilization of $fs_mount ($fs_usage%) is higher than threshold ($fs_threshold%)"
exit 1
fi
done
;;
*)
ctdb_standard_event_handler "$@"
;;
esac
exit 0

View File

@ -102,6 +102,7 @@ rm -rf $RPM_BUILD_ROOT
%{_sysconfdir}/ctdb/events.d/11.routing
%{_sysconfdir}/ctdb/events.d/20.multipathd
%{_sysconfdir}/ctdb/events.d/31.clamd
%{_sysconfdir}/ctdb/events.d/40.fs_use
%{_sysconfdir}/ctdb/events.d/40.vsftpd
%{_sysconfdir}/ctdb/events.d/41.httpd
%{_sysconfdir}/ctdb/events.d/50.samba