Aleisha Amohia
4 months ago
committed by
Aleisha Amohia
5 changed files with 133 additions and 0 deletions
@ -0,0 +1,24 @@ |
|||
NAME |
|||
Koha::Contrib::koha-sip - Monit conf file and bash scripts to monitor and automatically restart failed SIP instances |
|||
|
|||
VERSION |
|||
version 1 |
|||
|
|||
DESCRIPTION |
|||
MONITORING SIP |
|||
koha-sip directory contains a Monit .conf file (sip.conf) and two bash scripts (checksip.sh and restartsip.sh). Move the sip.conf into the /etc/monit/conf.d directory and run monit using the following commands: |
|||
|
|||
sudo su |
|||
sudo service monit start |
|||
monit start all |
|||
|
|||
sip.conf will monitor your sip instances using the checksip.sh script. If that script returns a 1 then the restartsip.sh script is run and that starts the appropriate SIP instance |
|||
|
|||
All output of the monitoring is logged in the /var/log/monit.log |
|||
|
|||
AUTHOR |
|||
Catalyst IT 2023 |
|||
|
|||
This is free software, licensed under: |
|||
the GNU GPL version 3 or later. |
|||
|
@ -0,0 +1,47 @@ |
|||
#!/bin/bash |
|||
# This file is part of Koha. |
|||
# |
|||
# Copyright (C) 2023 Catalyst IT |
|||
# |
|||
# Koha is free software; you can redistribute it and/or modify it |
|||
# under the terms of the GNU General Public License as published by |
|||
# the Free Software Foundation; either version 3 of the License, or |
|||
# (at your option) any later version. |
|||
# |
|||
# Koha is distributed in the hope that it will be useful, but |
|||
# WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU General Public License |
|||
# along with Koha; if not, see <http://www.gnu.org/licenses>. |
|||
|
|||
set -e |
|||
|
|||
# include helper functions |
|||
if [ -f "/usr/share/koha/bin/koha-functions.sh" ]; then |
|||
. "/usr/share/koha/bin/koha-functions.sh" |
|||
else |
|||
echo "Error: /usr/share/koha/bin/koha-functions.sh not present." 1>&2 |
|||
exit 1; |
|||
fi |
|||
|
|||
declare -a instancearray |
|||
for singleinstancename in $(koha-list --sip --enabled) |
|||
do |
|||
if ! is_sip_running $singleinstancename; then |
|||
instancearray+=("false") |
|||
else |
|||
instancearray+=("true") |
|||
fi |
|||
done |
|||
|
|||
sipstatus=0 |
|||
for value in "${instancearray[@]}" |
|||
do |
|||
if [ "$value" == "false" ] ; then |
|||
sipstatus=1 |
|||
fi |
|||
done |
|||
echo $sipstatus |
|||
exit $sipstatus |
@ -0,0 +1,54 @@ |
|||
#!/bin/bash |
|||
# This file is part of Koha. |
|||
# |
|||
# Copyright (C) 2023 Catalyst IT |
|||
# |
|||
# Koha is free software; you can redistribute it and/or modify it |
|||
# under the terms of the GNU General Public License as published by |
|||
# the Free Software Foundation; either version 3 of the License, or |
|||
# (at your option) any later version. |
|||
# |
|||
# Koha is distributed in the hope that it will be useful, but |
|||
# WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU General Public License |
|||
# along with Koha; if not, see <http://www.gnu.org/licenses>. |
|||
|
|||
set -e |
|||
|
|||
. /lib/lsb/init-functions |
|||
|
|||
# Read configuration variable file if it is present |
|||
[ -r /etc/default/koha-common ] && . /etc/default/koha-common |
|||
|
|||
# include helper functions |
|||
if [ -f "/usr/share/koha/bin/koha-functions.sh" ]; then |
|||
. "/usr/share/koha/bin/koha-functions.sh" |
|||
else |
|||
echo "Error: /usr/share/koha/bin/koha-functions.sh not present." 1>&2 |
|||
exit 1 |
|||
fi |
|||
|
|||
declare -a sipinstances |
|||
for singleinstancename in $(koha-list --sip --enabled) |
|||
do |
|||
if ! is_sip_running $singleinstancename; then |
|||
sipinstances+=" $singleinstancename" |
|||
warn "The SIP service for instance $singleinstancename is not running." |
|||
else |
|||
warn "SIP service is running for this instance $singleinstancename." |
|||
fi |
|||
done |
|||
|
|||
if [ ! -z "$sipinstances" ]; |
|||
then |
|||
for sipinstance in $sipinstances |
|||
do |
|||
instancename=$sipinstance |
|||
run=$(koha-sip --start $instancename) |
|||
warn "Starting SIP service for $instancename" |
|||
done |
|||
fi |
|||
exit 0; |
@ -0,0 +1,6 @@ |
|||
set logfile /var/log/monit.log |
|||
set idfile /var/lib/monit/id |
|||
set statefile /var/lib/monit/state |
|||
|
|||
check program checksip with path /usr/sbin/checksip.sh |
|||
if status = 1 then exec "/usr/sbin/restartsip.sh" |
Loading…
Reference in new issue