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.