Home

Awesome

Alerta on AWS EC2

This CloudFormation template can be used to easily deploy Alerta as a single instance Auto-Scaling Group behind a Elastic Load Balancer in an AWS VPC using RDS Postgres as the backend database.

Launch Stack

For help, join Slack chat

Requirements

Configuration

The following table lists the Cloudformation template parameters that can be set. There are sensible defaults where possible.

ParameterDescription
VpcIdID of the VPC into which to launch the application eg. vpc-1234abcd
SubnetsPublic subnets to use in VPC for internet-facing ELB, instances and RDS eg. subnet-abcd1234
InstanceTypeEC2 Instance type eg. t2.micro, t2.small or t2.medium (default: t2.micro)
KeyNameName of an existing EC2 KeyPair for SSH access
SSHLocationIP range that can be used to SSH to the EC2 instances (default: 0.0.0.0/0)
SecretKeyApplication secret key eg. any random string
AllowedDomainAllowed email domain eg. gmail.com or example.com (default: '*')
TrackingIdGoogle analytics tracking Id (optional)
DBNamePostgres database name (default: monitoring)
DBUserUsername for database access
DBPasswordPassword for database access
DBInstanceClassThe database instance type (default: db.t2.micro)
DBAllocatedStorageThe size of the database (Gb)
MultiAZMulti-AZ master database (true/false)

Deployment

AWS Management Console

Use the AWS management console to launch the stack using the Amazon S3 template URL https://s3-eu-west-1.amazonaws.com/alerta/public/cloudformation/alerta.yaml

AWS Command-line

To launch the stack from the command-line use the aws command. The following command shows the minimum stack parameters that must be defined to launch the stack:

$ aws cloudformation create-stack \
  --stack-name AlertaStack \
  --template-body file://alerta.yaml \
  --parameters \
  ParameterKey=VpcId,ParameterValue=vpcfffd0f9a \
  ParameterKey=Subnets,ParameterValue=\"subnet-0fa00c78,subnet-2ee56c4b\" \
  ParameterKey=SecretKey,ParameterValue=supersecret \
  ParameterKey=DBUser,ParameterValue=alerta \
  ParameterKey=DBPassword,ParameterValue=mypassword \
  --tags Key=Role,Value=monitoring Key=Owner,Value=DevOps

Note: The Subnets parameter value must be a comma-delimited string surrounded by escaped quotes otherwise it will be interpreted as a string and the command will fail with an Invalid type for parameter error.

Quick Launch

Launch Stack

Usage

The Alerta Web UI is available at the following:

http://<elb-ip-address>

And the Alerta API is available at the following:

http://<elb-ip-address>/api

The exact values are dependent on the actual deployment and can be found in the CloudFormation "Outputs" tab of the AWS console once the Alerta stack has been successfully created.

Enhancements

There are many improvements that should be made to this template before it is used in a production environment. These include, but are not limited to:

These and other enhancements are specific to every deployment environment so this is left as an exercise for the reader.

License

Copyright (c) 2015-2016,2018 Nick Satterly. Available under the MIT License.