monit-dashboard
monit-dashboard copied to clipboard
A web dashboard for rule all monit servers at a glance
Monit Dashboard
Description
Python web application to get a dashboard of a bunch of Monit servers at a glance.
Screenshots
-
Main view when every Monit server hasn't found alerts:

-
One Monit agent is reporting an error on a server:

-
Expand the server with issues with errors on top:

How does it work?
Every 300 seconds (hardcoded) the application ask for the data served by the Monit built-in web server in a XML report from each configured server. Then, thanks to the built-in web server, it is displayed in a single HTML page.
Installation on…
…Debian GNU/Linux
Web.py framework
apt install python-webpy
Python libraries
apt install python-xmltodict python-requests
…CentOS
Python PIP
yum install epel-releaseyum install python-pip
Web.py framework
pip install web.py
Python libaries
yum install python-requests python-xmltodict python-simplejsonpip install xlsxwriter
Requisites
- Config file
conf/servers.jsonprior run. You might find a sample file atconf/servers.json.example. - Please see Config section for further details.
Run it with Docker
- Build the image once:
docker build -t monit-dashboard . - Spin up a container:
docker run -v $(pwd)/conf:/app/conf -p 8080:8080 monit-dashboard - Point your browser to http://localhost:8080
Run
./bin/monit-dashboard.py
By default, it will be reachable at http://localhost:8080. You might change
the port by adjusting app.run(port=8080) in bin/monit-dashboard.py file.
References
- web.py 0.3 tutorial
- Learn Python the hard way, ex 50
- A template example
- How to change HTTP server port
Config
-
Placed in
conf/servers.json -
Sample settings as follows:
{ "My server to monit": { "url": "http://example.com:2812", "user": "monit", "passwd": "*****" } }
Credits
- Original idea
- Frontend support: Júlia Vázquez
- Icons
- Accordion menu
- Enhanced features by Saravanan Palanisamy
License
AGPL