think tank forum

technology » host-monitoring software

lucas's avatar
14 years ago
link
lucas
i ❤ demo
it seems to me that (a) there is a lack of BSD-licensed host-monitoring software, (b) the web front-ends of said software are messy, and (c) said software often require special daemons.

---

i think i'm going to code a really basic host-monitoring suite. i'm thinking that it'll work like this:

(1) each monitored host will run a shell script every five minutes. this shell script will check cpu load, memory usage, swap usage, file-system usage, and disk status. it will concatenate all of the information together and submit a single curl request (http post) to the monitoring server (a web server running httpd, a dbms, and php). if the curl request is denied, then an administrator defined in the script is notified.

(2) the monitoring server will receive the http post request via a php script. the php script will insert the data into an sql table. this php script will also check the numbers against db-defined thresholds, and if they are worrisome, the php script will alert db-defined admins.

(3) the monitoring server will host a web front-end on which an admin may view the status of all of the hosts being monitored. using the web front-end, admins may alter thresholds and alter who is alerted.

(4) the monitoring server will run a php script every five minutes to make sure that it has received an update from all hosts. if a host hasn't updated in the past five minutes, all defined admins are alerted via email.

---

at this point, i have no plans to monitor publicly-available services with this software. i believe that there are plenty of applications out there to ensure that hosts are up and all of their services are available.

this software's goal is to monitor the internals of hosts using unobtrusive methods (a shell script, a cronjob, and curl) and provide web monitoring and email alerts.

issues of which i'm aware:
(a) more than five minutes isn't a good response window
(b) public services on the hosts are not monitored
(c) public services on the monitoring server (with the exception of http) are not checked

---

i think this would be pretty easy to create, and it would be a nice, small, clean solution. each host just needs a shell script, a cronjob, and curl. the server needs httpd, a dbms, and php.
asemisldkfj's avatar
14 years ago
link
asemisldkfj
the law is no protection
I like this and it's simple enough that I would consider helping/tweaking/whatever.
 
14 years ago
link
arun
keep smiling !
Add rrdtool into it and you can generate pretty graphs. :)
lucas's avatar
14 years ago
link
lucas
i ❤ demo
indeed. :)
maple's avatar
14 years ago
link
maple
i like large datasets
most of that stuff is already done with daily cron jobs on the bsd's and emailed out. you could just crank up the frequency.
andre's avatar
14 years ago
link
andre
If you have a lot of servers, there's a chance you'll reach the maximum number of apache connections on the webserver if they all POST at the same time. One solution to this is to make the shell script sleep a random number of seconds before trying to connect.
lucas's avatar
14 years ago
link
lucas
i ❤ demo
that's a good idea. personally, i only have one server. :)

maple: i've only gotten an email if the fs is completely full. and i've never gotten an email when a gmirror disk goes down.
lucas's avatar
14 years ago
link
lucas
i ❤ demo
i started this project tonight.

the first commit is coming soon!
lucas's avatar
14 years ago
link
lucas
i ❤ demo
and aeacus was born.
bluet's avatar
14 years ago
link
bluet
So clean.

"#!/usr/local/bin/zsh" :(
nny's avatar
14 years ago
link
nny
M̮͈̣̙̰̝̃̿̎̍ͬa͉̭̥͓ț̘ͯ̈́t̬̻͖̰̞͎ͤ̇ ̈̚J̹͎̿̾ȏ̞̫͈y̭̺ͭc̦̹̟̦̭̫͊̿ͩeͥ̌̾̓ͨ
anyone ever consider using amazon's mechanical turk to do monitoring?
lucas's avatar
14 years ago
link
lucas
i ❤ demo
nny: haha. that would be cool for public services, but this is for monitoring host internals.

bluet: issue 2. what shell should i use that is the same on every POSIX server and at the same path?
bluet's avatar
14 years ago
link
bluet
/bin/sh
lucas's avatar
14 years ago
link
lucas
i ❤ demo
is that a c shell?
Carpetsmoker's avatar
14 years ago
link
Carpetsmoker
Martin
No, it should be a shell that conforms to: http://www.opengroup.org/onlinepubs/009695399 … tents.html
lucas's avatar
14 years ago
link
lucas
i ❤ demo
ok, so which one?
asemisldkfj's avatar
11 years ago
link
asemisldkfj
the law is no protection
this reddit thread got me thinking about aeacus. I want to set up something like this.
Carpetsmoker's avatar
11 years ago
link
Carpetsmoker
Martin
We use Server Density at work these days. It's not perfect, but it works, and the client is open source.

http://www.serverdensity.com/
nny's avatar
11 years ago
link
nny
M̮͈̣̙̰̝̃̿̎̍ͬa͉̭̥͓ț̘ͯ̈́t̬̻͖̰̞͎ͤ̇ ̈̚J̹͎̿̾ȏ̞̫͈y̭̺ͭc̦̹̟̦̭̫͊̿ͩeͥ̌̾̓ͨ
I am liking icinga... it's like nagios but better. i prefer to custom write my own reporting.

=/ i usually end up writing custom monitoring plugins anyways.
DaGr8Gatzby's avatar
11 years ago
link
DaGr8Gatzby
Drunk by Myself
Geneos, Ganglia here.