Linvision

Checkservice!

by Paul van Tilburg <paul@linvision.com>

You are visitor #4010
Last site-update: Thu May 4 18:49:20 2006

Checkservice
- Latest News
- What is it?
- How does it work?
- Requirements
- Development
- Plugins
- Screenshot
- Contact Me
- Download
Welcome to the Checkservice homepage ^

Checkservice is written, as the name of the program suggests, to check the status of the services that you run on your own or a remote server/computer. It can monitor for example the FTP Server and Web server you are running and alarm you in several ways if something is wrong with them.

The variety of output types, check- & warningplugins make Checkservice suitable for many tasks. With simple configfiles you can scan important services on the local host, but also on remote hosts, and make sure you know if a vital service fails! Since the 0.9.9-release Checkservice supports grouping. This is a convenient way to organize the hosts to check in different categories.

You are free to distribute this software under the terms of the GNU General Public License (COPYING).


Latest News ^
The latest news:
   
* Debian package version 1.1.0-11 upload to unstable Fri Jan 10 1:15 CET 220
* New RPMs available for the CS 1.2.0 updates Tue Jan 07 15:45 CET 2002
* A new 1.2.0 tarball available (fixes simple checking) Sun Jan 05 17:00 CET 2002
* New SSH plugin available for CS 1.* Thu Nov 28 00:30 CET 2002
* Put 1.2.0 RPMs online (thanks go to Richard) Mon Oct 14 21:00 CEST 2002


What is it? ^
Checkservice is a program that can be of good use to the Sysadmin. It has different styles of output (suited for MRTG, a php3 status page, logfiles and everything that likes reading from STDIN) that makes it possible to track anything while you're not watching. When logfile output is used, warnings are enabled. And as of version 0.9.9 the warning system uses plugins, so you can add your own. Checkservice is distributed with three warningsystems:
  • PC Speaker beep
  • Mailwarning (using template mails) [INTERNAL]
  • SMS warning (using external modem to deliver the message)
For less information, have a look at the README file and the TODO file for what is to come.

How does it work? ^
Checkservice uses two methods for checking if a service is OK.
  • Simple
  • Extended
The simple check is just a portscan. A connection to the specified host and port is made, the result depends on if that connection is open after the attempt. Extended check uses a plugin, it will login on the service and determine if the service is functioning. If a service is configured for extended check but no plugin is available, Checkservice will revert to simple scan. Extended scan provides a more thorough check!

Requirements ^
Checkservice works on any machine capable of running Perl-scripts. It is written using Perl 5.005, but it should work with versions 5.004 and 5.006 too.
Additional modules you'll need (these are a part of the Perl 5.005-distribution, so it's likely you'll have them already):
  • IO::Socket
  • File::Find
  • Mail::Send
  • Getopt::Std
  • Getopt::Long
  • POSIX
The Checkservice checkplugins (which are optional) require the following modules:
  • telnet.plugin needs Net::Telnet
  • ldap.plugin needs Net::LDAP
If you want to use the php3 statusscript, you'll need php3 and a webserver of course. If you are going to use the SMS-warning, you should install smsclient to make it work.

Development ^

Since version 0.9.9 Checkservice has two kinds of plugins: The warning- and the check-plugins.

I still miss some checkplugins for certain often used services. How can you help me with that? That is very simple, the plugin can be written in any programming language you prefer. The checkplugin you write is just supposed to accept three parameters (-h <targethost> -t <timeout> and -p <port>) and return a 0 (successful), 1 (failed) or 2 (timeout).

Warningplugins are called if something goes wrong with a host, the plugin gets its information from the parameters it is called by. A warning plugin will be called by:
some.plugin -c <confdir> -h <host> -p <ports> -s <service> -r <result>
Where result is the error-code as given above (successful/failed/timeout).

NEWS: Starting from version 1.1.5, Checkservice will get it's params using XML from STDIN, the commandline options will be deprecated soon. If you happen to have some other brilliant ideas about this program, or you miss something, I'd like to hear it! If you want to get an CVS account to make Checkservice better, I would like to hear it too :)


Plugins ^
Here I have got a list of plugins that are available for Checkservice. If you miss one and you would like to create one, have a look at the Development section. The Incl. in (included in) column refers to the version the plugin entered the Checkservice distribution. 'n/a' means it isn't included yet but will be in one of the next releases, bold versions mean it was included in the latest release.

Plugin list:

Check Plugin:
Created by...?
Incl. in
FTP Plugin *native* 0.5.0
HTTP Plugin *native* 0.5.0
HTTPs Plugin Justin Penney 1.0.5
IMAP Plugin *native* 0.5.0
LDAP Plugin *native* 0.5.0
MySQL Plugin Mark van Eijk 1.0.5
NNTP Plugin *native* 0.5.0
POP3 Plugin *native* 0.5.0
PostgreSQL Plugin Mark van Eijk 1.0.5
SMTP Plugin *native* 0.5.0
SSH Plugin Justin Penney 1.0.5
Telnet Plugin *native* 0.5.0
Template Plugin Mark van Eijk 1.0.5

Warning Plugin:
Created by...?
Incl. in
Beep Plugin *native* 0.9.9
SMS Plugin *native* 0.9.9
SMS Net Plugin Jeroen Latour 1.1.0


Screenshot ^
This is not really a screenshot, but it shows what the php3-statuspage, that comes with Checkservice, looks like:

Servicecheck of host localhost
Name Service Port# L Status Up%
ProFTPd Server ftp 21 x OK
100.0
OpenSSH Daemon ssh 22 s OK
100.0
Sendmail SMTP Mailserver smtp 25 s OK
95.3
Apache HTTP Daemon http 80 s OK
100.0
Average uptime all services:
98.8

Contact Me ^
I have put up three mailinglists for Checkservice. Note that all messages on the announce-list will also be forwarded to the users-list.
You can also email me personally at paul@linvision.com.

Due to the lack of usage of the #checkservice IRC channel on OpenProjects.net, it isn't registered anymore.

Download ^
The INSTALL file in the tarball describes manual installation. I will upload the Debian package to the unstable tree every new release, I'll hope it will arrive in testing soon.

Download:



Valid CSS!
Checkservice is free software released under the GNU General Public License.
Feel free to e-mail me with comments, questions or suggestions.
Paul van Tilburg <paul@linvision.com>
Valid XHTML 1.0!