Sign inSign up

gbevan/pastmonweb

By gbevan

•Updated over 11 years ago

Image
1

1.5K

gbevan/pastmonweb repository overview

⁠PasTmon Web App with Sensor Docker Image for CoreOS

Part of the PasTmon Passive Application Response Time Monitor Project⁠.

PasTmon Web and Sensors deployed across all nodes of a CoreOS Cluster See reapingzombies4funandprofit⁠ blog article: PasTmon Passive Application Response Time Monitoring a CoreOS Cluster⁠

⁠Passive Application Monitoring for all containers running on a CoreOS host.

Provides an image for the PasTmon Web Front-end (including it's own Sensor) and a Sensor⁠ only image.

On your frontend node:

$ git clone https://github.com/gbevan/pastmon.git
$ cd pastmon

Edit the unit files pastmon-(web|sensor)@.service to choose your required version:

[Service]
Environment=PTAG=0.17  # Docker image tag version e.g. latest, 0.17, etc...
EnvironmentFile=-/etc/systemd/system/pastmon.service.d/local.conf    # Allows override per node

or you can place your version locally (per node) in the local.conf file, like this:

# /etc/systemd/system/pastmon.service.d/local.conf
[Service]
PTAG=0.17

Also, set the MachineMetadata tag or MachineID in the [X-Fleet] section of the pastmon-web unit file:

[X-Fleet]
MachineMetadata=frontend
#MachineID=...  # from /etc/machine-id

Use MachineID to bind the web service to a specific frontend or use MachineMetadata to prefer a tagged node.

Submit the unit files and start the web service:

$ fleetctl submit pastmon-*.service

$ fleetctl start [email protected] [email protected]

Follow progress of the web unit using:

$ fleetctl journal -f [email protected]

When ready, point your browser at http://your-front-end-host:8080⁠, default user/password is admin/admin.

You can also start PasTmon sensor containers on your other CoreOS hosts:

$ fleetctl start pastmon-sensor@{1..5}.service

(the 1..5 tells fleet to deploy 5 containers numbered 1 through 5 - so subsitute the number of remaining nodes in your CoreOS cluster to deploy to.)

These should auto discover your instance of pastmon-web@1 running in the cluster, via etcd.

Other start options are (default values shown):

dbport=5432
webport=8080

These can be added to the docker run ... command in the [email protected] unit file (see that file for examples). Also, if you change the dbport default, then you must update the respective value in [email protected] unit file, so it can inform other pastmon sensors in the cluster.

The pastmon-web@service unit will create a docker container called pastmon-db, this is to provide a persistent database volume (allowing future upgardes of the PasTmon web container without loosing your data).

Should you need to delete the pastmon-db container and it's persistent database volume, use docker rm -v ... - otherwise you end up with orphaned volumes.

⁠Can I Use this on an OS other than CoreOS?

Yes. You just need a recent version of docker installed, and run the container directly:

Create the persistent db data volume container:

$ docker create -v /var/lib/postgresql -v /var/run/postgresql \
    --name pastmon-db busybox

Run PasTmon Web Service:

$ docker run --name pastmon-web --volumes-from pastmon-db \
    --net=host --cap-add=NET_ADMIN gbevan/pastmonweb

Run any needed PasTmon Sensors (on nodes other than PasTmon Web Services):

$ docker run --name pastmon-sensor1 --net=host --cap-add=NET_ADMIN \
    gbevan/pastmonsensor "dbhost=....; dbport=5432"
⁠Removing the docker containers after fleetctl destroy
$ ./delete_pastmon_units.sh -h | -v | -y

Options are:

-h - help
-v - delete the persistent database volume (pastmon-db)
-y - assume yes to go ahead and do this without prompting

Tag summary

Content type

Image

Digest

sha256:e4f54e632…

Size

334.6 MB

Last updated

over 11 years ago

docker pull gbevan/pastmonweb