Process Monit HTTP/XML
Project description
Nomit is a small library that can be used to process HTTP/XML POST requests from Monit instances. While it is a relatively trivial adaption of Python’s BaseHTTPRequestHandler, it may be useful to multiple other projects. For this reason Nomit is registered as its own little project.
Monit is a free utility for managing Unix systems. Multiple Monit instances can be centrally managed by its sister project MMonit. Monit communicates with MMonit through HTTP/XML POST request.
Requirements
Nomit uses the lxml.objectify module from the lxml project. Many Linux distributions provide lxml in their native package format.
The MonitHandler class
Nomit provides a single class MonitHandler which is a sub-class of BaseHTTPRequestHandler. MonitHandler is meant to be sub-classed itself.
It provides two methods:
handle_unparsed() is called with the raw XML of the HTTP/XML POST request.
handle_parsed() is called after the XML has been parsed by lxml.objectify.fromstring().
The default implementation of these methods does nothing. Any derived class must implement these methods as necessary.
Example
The example below implements handle_unparsed() to print the raw XML as POSTed by the Monit agent and uses handle_parsed() to display the data structure returned by lxml.objectify.fromstring():
import BaseHTTPServer import xml.dom.minidom import lxml.objectify import nomit class ExampleHandler(nomit.MonitXmlHandler): def handle_unparsed(self, s): print xml.dom.minidom.parseString(s).toprettyxml() def handle_parsed(self, o): print lxml.objectify.dump(o) server = BaseHTTPServer.HTTPServer(("127.0.0.1", 2811), ExampleHandler) server.serve_forever()
Monit configuration
The Monit agent must be told to POST status information to the Python script above. From the agent’s point of view the script is simply (another[1]_) MMonit server.
monit.conf:
set mmonit http://monit:monit@mmonit.example.com:8080/collector http://localhost:2811/
_[1] The set mmonit directive accepts multiple URLs.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file nomit-1.0.tar.gz
.
File metadata
- Download URL: nomit-1.0.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 61724841c602cd6e5aa327fa768824d5d5f1bbb127247383b32d67cfbb67c8fe |
|
MD5 | a38d71fc14a5c113f594abdf3a88a826 |
|
BLAKE2b-256 | da46a9a940d47d56a820974db7f2b6f9bc702c5826b42560f9e59c4a21fdae85 |