Monitor a HTTPS site requiring login with Nagios

monitoringnagios

I'm trying to figure out how to get Nagios to monitor a few sites that are using HTTPS and require a username/password to log in – I can't figure out how it should be done so I can set a username and password for each host, and then define a service to do the check using those usernames and passwords.

I can write a little perl script that will use wget and return an appropriate exit code, but I can't figure out how to get the username/password/URL to the script when it is called.

Best Answer

You should be able to do that with the check_http plugin

-S - SSL
-a "<username>:<password>" - Auth

So your command defination should look something like

define command {
    command_name check_https_auth
    command_line $USER1$/check_http -H $ARG1$ -I $IPADDRESS$ -S -a "$ARG2$:$ARG3$"

Then in your service definition use

check_command check_https_auth!<vhost name>!<username>!<password>