In general this looks good! A few comments/suggestions:
Depending on the target python version, perhaps use a more powerful option paring library? Then you don't need to keep the help in sync like "print_usage" does; and I find them easier to work with / easier to read.
Perhaps use a file logger, and have a flag to enable stdout logging too? I find this very useful because if someone puts this in cron you'd want a record of past invocations to see when it started failing. When run with Nagios it could log to stdout. It might look something like:
logger = logging.getLogger()
formatter = logging.Formatter("%(asctime)s %(filename)s:%(lineno)d - %(message)s")
file_handler = logging.handlers.RotatingFileHandler(options.log_file,
stream_handler = logging.StreamHandler()
Then "verbose_log" is not needed. Just logger.verbose or logger.info
Currently the check is a big list of booleans and if any fail it says there's an error. Perhaps have a list of checks and keep track of which ones failed, then print that out at the end? That would provide more actionable info.