Matchmonitor version 1 release

posted on 2013-05-25

I have released the first version of matchmonitor.

matchmonitor version 1

It's a simple web GUI which will highlight matches in incoming UDP packets. If the text is matched at a regular interval, it will be colored blue. If the match misses it's interval, it will be colored red. This allows you to monitor common processes and heartbeats like CRON jobs and machines sending PING messages.

You can run the server by downloading the release jar file and executing:

java -jar matchmonitor-1.0.0.jar

This will start a web server on port 8080 and an UDP server on port 8081. This means that after starting it, you can visit the interface using http://localhost:8080/.

To change the port number of either, use the options you see when adding the commandline parameter --help.

usage: matchmonitor [-h] [--httpPort HTTPPORT] [--udpPort UDPPORT]
                    [--historySize HISTORYSIZE] [--conf CONF]

Light up regularly matching elements on a web GUI

optional arguments:
  -h, --help             show this help message and exit
  --httpPort HTTPPORT    HTTP web server port (GUI) (default: 8080)
  --udpPort UDPPORT      UDP packet receiving port (default: 8081)
  --historySize HISTORYSIZE
                         Number of  match  intervals  to  factor  into  the
                         period calculation (default: 30)
  --conf CONF            Yaml  configuration   file   with   regexes   list
                         containing regular expressions  to  match. Default
                         matching is ip addresses.

The last mentioned Yaml configuration file contains a simple list of regular expressions, the first match group of which is displayed in the web GUI and monitored for it's regularity. An example configuration file is:

    - ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})
    - ([a-zA-Z]+ CRON)

It is in Yaml format, so do not forget the indentation and dashes to form the list of regular expressions. Also make sure it contains at least one match group using parenthesis.

If you happen to find issues, feel free to fork me on github and patch it. Another option is to just leave a comment.