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:
parent
c8a18e8f9a
commit
ee96db07d5
@ -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
|
||||
|
53
ctdb/config/events.d/40.fs_use
Normal file
53
ctdb/config/events.d/40.fs_use
Normal 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
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user