Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
nagios plugin to check webpages, built with python and pycurl
Python
branch: master
Failed to load latest commit information.
runfiles survive failing check in run of checks
LICENSE GPL v3 license
README fixed minor type in README
check_pycurl merged newer ver

README

check_pycurl

INTRODUCTION

A nagios / icinga / shinken plugin to check HTTP requests
Written in python. Licensed under GPL v3
Copyright James Powell 2013


DEPENDENCIES

python 2.x with modules:
pycurl
yaml


INSTALLATION

Just install the dependencies & copy the binary to your standard path for nagios plugins and
configure in nagios (see NAGIOS CONFIGURATION).


USAGE

Usage: check_pycurl [options]

Options:
  -h, --help            show this help message and exit
  -u URL, --url=URL
  -f RUNFILE, --runfile=RUNFILE
  --test=TEST           [code:HTTPCODE|regex:REGEX]
  --connect-timeout=CONNECTTIMEOUT
  --timeout=TIMEOUT
  --proxy=PROXY
  --location            Follow redirects
  --insecure

check_pycurl can run in one of two ways, a simple one-off http check (specify the url with -u)
or with a runfile which is written in yaml and can be used to specify multi-stage url checks (eg
logging in then checking for success).

By default check_pycurl will test for HTTP 200 code (--test code:200)

An alternate test is for presence of regex in the output (--test regex:t.st)


EXAMPLE RUNFILE

---
cookiejar: no

urls:
  - url: http://jamespo.org.uk
    test: code:200
  - url: http://yahoo.com
    test: code:301


NAGIOS CONFIGURATION

# simple configuration just for HTTP 200 check 
define command {
	command_name	check_pycurl
	command_line	/usr/local/nagios/plugins/check_pycurl --url $ARG1$
}

# configuration to use runfiles
define command {
	command_name	check_pycurl_rf
	command_line	/usr/local/nagios/plugins/check_pycurl -f $ARG1$
}

# host check
define service {
        use                             generic-service
        host_name                       local2
        service_description             BBC web check
        check_command                   check_pycurl!http://www.bbc.co.uk
}

# runfile check
define service {
        use                             generic-service
        host_name                       local2
        service_description             Roundcube Login Check
        check_command                   check_pycurl_rf!/opt/nagios/pyc_rf/rc.yml
}

Something went wrong with that request. Please try again.