Monitoring sucks right now.
We'll say it out loud: no one has the time to set up Nagios. No one even has time to set up Munin. If you're in a startup, you most likely don't have a dedicated admin. Couple that with the need to constantly watch your servers to make sure they don't die on you and your users, and you're in a weird place. You have a huge need to monitor, but no resources.
We've been there. And now we're here to help.
How does Monster help?
By giving you nearly instant monitoring. Beautiful monitoring.
Have nginx running? Monster will find out, look for the usual log files, and set nginx monitoring up for you. Using Postgres? MySQL? Monster will find out, ask you for some credentials and boom — you have a bunch of clean charts showing your web server and database usage.
What platform does it support?
Mac OS X and Debian-like, Red Hat-like Linux distributions (and probably more).
Getting started
Here, get started:
$ git clone git@github.com:diego351/monster.git
$ pip install -r requirements.txt
$ ./start.py
Now you have this charming thing listening at localhost:5000
:
Oh, we almost forgot, we also support mobile:
What if I actually want to configure something?
No problem. The config.sample.cfg
file is full of good advice you can just ignore and drive into walls, or use to hack up a more suiting configuration. Actually, we'll paste it here for you:
[overall]
; Enables password protected access. Removing this line
; will cause monster to be available to everyone.
password = golem14
; Allows you to bind on a specific address/port,
; default is 127.0.0.1:5000. Bind on 0.0.0.0 to make
; monster globally accessible.
bind = 127.0.0.1:3456
; Specify the probes you want to use here.
; Per-probe configuration is done in their respective
; sections later on, take a look below.
[probes]
osx.LoadAvg
osx.MemInfo
osx.HeavyProcessStat
httpd.Apache2
db.Postgres
db.MySQL
; Probe configuration.
; The name of the section must be identical to the
; probe's full name.
[db.Postgres]
; Specify here your PostgreSQL account settings.
; All of them are required.
username = takeoff
password =
database = takeoff
[db.MySQL]
; Specify here your MySQL account settings.
; All of them are required.
username = root
password =
[osx.HeavyProcessStat]
; This option changes number of processes showed.
; Default is 5.
proc_number = 5
What do you support?
The current list of probes is:
-
linux.LoadAvg
- traditional system load -
linux.MemInfo
- a rundown of memory usage -
linux.HeavyProcessStat
- CPU and memory hogs -
linux.SystemInfo
- uptime, hostname, OS info -
osx.LoadAvg
- traditional system load -
osx.MemInfo
- a rundown of memory usage -
osx.HeavyProcessStat
- CPU and memory hogs -
osx.SystemInfo
- uptime, hostname, OS info -
httpd.Apache2
- requests/transfer + Geo IP visualization -
httpd.Nginx
- requests/transfer + Geo IP visualization -
db.MySQL
- query statistics -
db.Postgres
- query statistics
We'll be expanding.
Authors and Contributors
Monster is maintained by @diego351 and @maligree. We're doing this in our spare time, so if you think you could spare a few cycles to contribute, we'd honestly be jolly as fuck.