VMWare

Check snapshots age and number

Description:

Nagios script for checking the number of existing snapshots and how old are these.

Current Version

Last Release Date

2014-05-19

Compatible With

  • Nagios 4.x

Owner

License

GPL


Project Files
Project Notes
The script was inspired by "minuti_keytech"'s script check_esx_snapshot. Usage: $0 [esxi_hostname] [warn] [crit] [snapage] where [warn] and [crit] are the allowed numbers of snapshots and [snapage] is how old a snapshot is allowed to be.
Reviews (5) Add a Review
Good script for VMware vSphere esxi 6.5
by areasistemi, April 30, 2021
I tried it on esxi 6.5 nodes and it works successfully.
As per instructions, it is necessary to configure a ssh certificate in order to allow the connection from the nagios server to the esxi nodes.
It only checks if snapshots are present, and it is not possible to filter the checked VMs.
Helpful? Yes  No 
Working on VMWare 7.0U1
by martinh, February 28, 2021
Hi,
I just tried this on VMWare 7.0U1, still working :)
Helpful? Yes  No 
Problem
by lehab, February 29, 2016
I have ESXi 5.5. If i run this script in console it works great. But in nagios it is always OK status, even i have critical value. What can i do, to fix this?
Helpful? Yes  No 
some small improvements and bugfixes
by mwill, November 30, 2014
btw - the script is also compatible with esxi 5.x

#!/bin/bash
# Author Stefan Nonchev
# Nagios script for checking the number of existing snapshots and how old are these.
# The script should work with any ESXi 5.x
# Installation notes:
# On your nagios server execute:
#
# #sudo nagios
# #ssh-keygen
# copy the public certificate into /etc/ssh/keys-root/authorized_keys on each ESXi host that will be monitored

debug=1
sshparameter=""


print_usage() {
echo ""
echo "Usage: $0 [esxi_hostname] [warn] [crit] [snapage]"
echo "where"
echo "- [warn] and [crit] are the allowed numbers of all snapshots (summarized)"
echo "- [snapage] is how old a snapshot is allowed to be (days)"
exit 3
}


case "$1" in
--help)
print_usage
;;
-h)
print_usage
;;
esac

if [ "$#" -ne "4" ]; then
print_usage
fi

function date2stamp () {
date --utc --date "$1" +%s
}

function dateDiff () {
sec=86400
dte1=$(date2stamp $1)
dte2=$(date2stamp $2)
diffSec=$((dte2-dte1))
if ((diffSec $4 days ) snapshots on: $vmstr"
exit 2
fi

if [ $total -le $warn ] ; then
echo "OK - $total snapshots found (warn=$warn)"
exit 0
fi

if [ $total -ge $crit ] ; then
echo "CRITICAL - $total snapshots found (crit=$crit)"
exit 2
fi

if [ $total -ge $warn ] ; then
echo "WARN - $total snapshots found (warn=$warn)"
exit 1
fi
Helpful? Yes  No 
won't login on esxi 4.1
by caramia, August 31, 2014
Hi, i'm tring to use your plugin but i can't embed my credential on check command, also if i use it from cli on nagios server il stuck on password.
I'm wrong in the syntax?

./check_VM_snapshots 172.17.85.1 10 20 10

thanks
Owner's Reply:

Hi, sorry for the late reply mate.
If you are able to ssh successfully from nagios to ESXi server without prompting you for a password - the script should work. I'm not using any passwords to run the script in my environment. I guess you have to google how to configure ssh without using a password.


Helpful? Yes  No 
Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
4.4 (7)
Favorites
0
Views
30,096