Files
sailing-analytics/configuration/notify-unhealthy-mongodb
T

19 lines
904 B
Bash
Executable File

#!/bin/bash
MONGODBS="mongodb://dbserver.internal.sapsailing.com:10201/?replicaSet=archive mongodb://dbserver.internal.sapsailing.com:10202/?replicaSet=slow mongodb://dbserver.internal.sapsailing.com:10203/?replicaSet=live"
#MAILINGLIST="/home/trac/mailinglists/unhealthy-mongo-list"
MAILINGLIST=$(cat /var/cache/landscapeManagersMailingList)
for db in $MONGODBS; do
echo "rs.status()" | mongo --quiet "$db" | grep '\("set"\)\|\("name"\)\|\("health"\)\|\("stateStr"\)' | sed -e 's/^.* : "\?//' -e 's/"\?,$//' | (
read replicaset
while read server; do
read health
read state
if [ "$health" != "1" ]; then
echo "MongoDB replica set $replicaset unhealthy, node $server is in state $state\
Check status of $db urgently. To unsubscribe, change $MAILINGLIST on `hostname`." | mail -s "MongoDB Replica Set \"$replicaset\" Unhealthy" `cat "$MAILINGLIST"`
fi
done
)
done