scaramanga::LVSmon

LVSmon

A cluster monitoring daemon, originally meant to replace tools like ldirectord and mon for maintaining LVS tables. Secure, reliable, scalable: it won't run away, won't give false output, and won't let anyone take over the system. Low CPU, small footprint, scales well despite running single-threaded.

Although built for Linux Virtual Servers, it runs on any POSIX platform with an ANSI C compiler.

Features

  • Edge-triggered status notification
  • Runs in a single non-blocking thread
  • Doesn't need to run as root
  • No dynamic allocation after entering the main loop
  • Very little memory (about 60 bytes per service monitored)
  • Scales reasonably well (poll-driven)
  • Provably correct design — will never run away with resources
  • Pauses 500ms before exiting on errors, to stop runaway interactions
  • Portable (ANSI C/POSIX)
  • Timeouts enforced on connect and receive events
  • Reports the nature of failures (e.g. connection refused)
  • HTTP plugin, checks responses per RFC 1945
  • Banner-checker plugin — works for SSH, SMTP, POP3, etc.

Downloads

GNU GPL v2. Copyright © 2002 Gianni Tedesco.

The latest version is 0.0.2 (ChangeLog).
Version 0.0.2 — source
Version 0.0.1 — source

TODO

  • Better event reporting mechanism
  • Failure timeouts (e.g. 3 strikes and you're out)
  • Failure timeouts (e.g. no success for 5 minutes)
  • Support plugins that don't use TCP
  • More accurate timing
  • Support complex transactions
  • Make plugins actually pluggable
  • http: use getopt in plugins for option passing
  • Drop root privileges and chroot if started as root

License

GNU GPL v2. Copyright © 2002 Gianni Tedesco.