Slugly

Proxy for Wormly.com's health monitoring to enable monitoring of machines that are behind firewalls or where you don't want to run Wormly's HTTP and PHP-based monitoring script. Requires only Ruby on the proxy server and nothing at all on the machines being monitored when the SSH-based back-end is used.

Configuring Slugly

Configuring Slugly is simple! Simply create a config.yaml like the example shown below.

Slugly needs to know where to listen for incoming HTTP requests. The host and port entries are for telling Slugly where it should be listening for Wormly.com's health monitoring polls.

The wormly_key is your Wormly.com API key. This key is used for enabling and directing Wormly.com's Linux health monitoring polls to the Slugly URLs for that host.

Slugly serves up health information for each node according to the nodes entry in the configuration file. A node entry consists of:

  • a path specifying the URL where this health monitoring information should be found.
  • an optional wormly_id for this node.
  • a provider for gathering the health-related metadata
  • and any options required by this provider.

Specifying a valid wormly_key together with a wormly_id for a given node will cause Slugly to attempt to notify Wormly.com that health data is available at the corresponding Slugly URL. If either is omitted, invalid, or if the Wormly.com API call fails, Slugly will still host metadata for this node. However, Wormly may be unaware unless a successful API call is made by other means.

Currently, there are two providers available:

  • the HealthProvider which provides metadata for the local machine.
  • and the SSHHealthProvider which gathers health metadata from a remote Linux machine by way of SSH.

The SSHHealthProvider takes two additional options: the hostname of the target machine and a username of a user on that machine. Slugly assumes that password-less SSH is configured between the user running Slugly and the host identified by hostname.

host: publichostname.com
port: 8088
wormly_key: 1Xs3cr3tk3ys
nodes:
  - path      : /ssh
    wormly_id : 12345
    provider  : SSHHealthProvider
    options:
      hostname: localhost
      username: ubuntu
  - path      : /local
    wormly_id : 67890
    provider  : HealthProvider

Running Slugly

It's just slugly -c /path/to/myconfig.yaml. What could be simpler than that?

Notes on Security

Slugly does not store passwords. Password-less SSH is required for use of the SSHHealthProvider.

Slugly is a work in progress, and is not quite yet ready for use in a production environment. In particular, the current version of Slugly has two security-related weaknesses:

  • The current version of Slugly does not have SSL enabled

  • Slugly does not require that the Wormly.com supplied password be present or correct. As a result Slugly openly provides health related metadata to any and all who request it.