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.