tombolaltd / ecs-monitor

A simple monitoring solution for Amazon's Elastic Container Service (ECS)
MIT License
60 stars 17 forks source link
aws dashboards ecs monitoring

ECS monitor

A simple monitoring solution which gives you insight into your EC2 Container Service (ECS) clusters, services and container logs. The main focus around this application is to aggregate cluster and service stats so that they can be monitored in one place, without having to click around - Making it useful to put on a telley for the team.

As well as aggregation, ECS monitor also offers various features over and above the Amazon Console - Such as Task churn, which detects when a service is misbehaving by rapidly starting and stopping tasks.

reactrxjsmaterializecss

Screenshots

Demo services dashboard Demo agents dashboard

All screenshots...

Build

development

To run the app in development, first you need to create a file in the app root directory called devCredentials.json. This is to supply the app with aws credentials. The file won't be source controlled. It's a single object with 3 properties:

{
    "AWS_REGION": "e.g. eu-west-1",
    "DEVELOPMENT_AWS_ACCESS_KEY": "...",
    "DEVELOPMENT_AWS_SECRET_KEY": "..."
}

Once you have created the credentials file, starting the app is simple:

$ npm start

It supports hot reloading of css and triggers a recompile and page reload whenever a javascript file is modified.

production

$ npm run build

Will compile a production ready build of the client side application.

$ node server/server.js

Will run the server.

When running a production build, we stop looking for local developer credentials and instead request temporary credentials from the server (/authenticate). The server sends a request to AWS STS (Security Token Service) to retrieve temporary identity. In order for the server to do this you need to set 3 environment variables:

  1. AWS_REGION
  2. AWS_ACCESS_KEY_ID
  3. AWS_SECRET_ACCESS_KEY
IAM policy

The recommended IAM policy to run the monitor under can be found here (/aws/policy.json)

docker

$ docker build -t ecs-monitor {checkout_dir}
$ docker run -p 1337:1337 --rm \
    -e AWS_REGION=... \
    -e AWS_ACCESS_KEY_ID=... \
    -e AWS_SECRET_ACCESS_KEY=... \
    ecs-monitor

tombola

by tombola, enjoy

This project was bootstrapped with Create React App.