Skip to content

adriaaah/monit-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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: dashboard

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

  • Expand the server with issues with errors on top: error-list

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-release
  • yum install python-pip

Web.py framework

  • pip install web.py

Python libaries

  • yum install python-requests python-xmltodict python-simplejson
  • pip install xlsxwriter

Requisites

  • Config file conf/servers.json prior run. You might find a sample file at conf/servers.json.example.
  • Please see Config section for further details.

Run it with Docker

  1. Build the image once: docker build -t monit-dashboard .
  2. Spin up a container: docker run -v $(pwd)/conf:/app/conf -p 8080:8080 monit-dashboard
  3. 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

Config

  • Placed in conf/servers.json

  • Sample settings as follows:

    {
    "My server to monit": {
      "url": "http://example.com:2812",
      "user": "monit",
      "passwd": "*****"
      }
    }
    

Credits

License

AGPL