mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
106 lines
2.7 KiB
Bash
106 lines
2.7 KiB
Bash
#!/bin/bash
|
|
#
|
|
# Health check script for the Secondary Storage VM
|
|
#
|
|
|
|
# /proc/cmdline can have a different number of arguments depending on whether or not a second
|
|
# DNS server is specified.
|
|
|
|
|
|
# ping dns server
|
|
echo ================================================
|
|
DNSSERVER=`egrep '^nameserver' /etc/resolv.conf | awk '{print $2}'| head -1`
|
|
echo "First DNS server is " $DNSSERVER
|
|
ping -c 2 -w 2 $DNSSERVER
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "Good: Can ping DNS server"
|
|
else
|
|
echo "WARNING: cannot ping DNS server"
|
|
echo "route follows"
|
|
route -n
|
|
fi
|
|
|
|
|
|
# check dns resolve
|
|
echo ================================================
|
|
nslookup download.cloud.com 1> /tmp/dns 2>&1
|
|
grep 'no servers could' /tmp/dns 1> /dev/null 2>&1
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "ERROR: DNS not resolving download.cloud.com"
|
|
echo resolv.conf follows
|
|
cat /etc/resolv.conf
|
|
exit 2
|
|
else
|
|
echo "Good: DNS resolves download.cloud.com"
|
|
fi
|
|
|
|
|
|
# check to see if we have the NFS volume mounted
|
|
echo ================================================
|
|
mount|grep -v sunrpc|grep nfs 1> /dev/null 2>&1
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "NFS is currently mounted"
|
|
|
|
# check for write access
|
|
MOUNTPT=`mount|grep -v sunrpc|grep nfs| awk '{print $3}'`
|
|
echo Mount point is $MOUNTPT
|
|
touch $MOUNTPT/foo
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "Good: Can write to mount point"
|
|
rm $MOUNTPT/foo
|
|
else
|
|
echo "ERROR: Cannot write to mount point"
|
|
echo "You need to export with norootsquash"
|
|
fi
|
|
else
|
|
echo "ERROR: NFS is not currently mounted"
|
|
echo "Try manually mounting from inside the VM"
|
|
NFSSERVER=`awk '{print $17}' /proc/cmdline|awk -F= '{print $2}'|awk -F: '{print $1}'`
|
|
echo "NFS server is " $NFSSERVER
|
|
ping -c 2 -w 2 $NFSSERVER
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "Good: Can ping NFS server"
|
|
else
|
|
echo "WARNING: cannot ping NFS server"
|
|
echo routing table follows
|
|
route -n
|
|
fi
|
|
fi
|
|
|
|
|
|
# check for connectivity to the management server
|
|
echo ================================================
|
|
MGMTSERVER=`awk '{print $12}' /proc/cmdline | awk -F= '{print $2}'`
|
|
echo Management server is $MGMTSERVER. Checking connectivity.
|
|
socatout=$(echo | socat - TCP:$MGMTSERVER:8250,connect-timeout=3 2>&1)
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "Good: Can connect to management server port 8250"
|
|
else
|
|
echo "ERROR: Cannot connect to $MGMTSERVER port 8250"
|
|
echo $socatout
|
|
exit 4
|
|
fi
|
|
|
|
|
|
# check for the java process running
|
|
echo ================================================
|
|
ps -eaf|grep -v grep|grep java 1> /dev/null 2>&1
|
|
if [ $? -eq 0 ]
|
|
then
|
|
echo "Good: Java process is running"
|
|
else
|
|
echo "ERROR: Java process not running. Try restarting the SSVM."
|
|
exit 3
|
|
fi
|
|
|
|
echo ================================================
|
|
echo Tests Complete. Look for ERROR or WARNING above.
|
|
|
|
exit 0
|