The alerta monitoring system is a tool used to consolidate and de-duplicate alerts from multiple sources for quick ‘at-a-glance’ visualisation. With just one system you can monitor alerts from many other monitoring tools on a single screen.
To use this image run either a mongo
or postgres
container first:
$ docker run --name alerta-db -d mongo
Then link to the database container when running the alerta-web
container:
$ export DATABASE_URL=mongodb://db:27017/monitoring
$ docker run --name alerta-web -e DATABASE_URL=$DATABASE_URL --link alerta-db:db \
-d -p <port>:8080 alerta/alerta-web
The API endpoint is at:
http://<docker>:<port>/api
Browse to the alerta console at:
http://<docker>:<port>/
The following environment variables are supported for configuring
the alerta-web
container specifically for Docker deployments:
ADMIN_PASSWORD
ADMIN_KEY
ADMIN_KEY_MAXAGE
HEARTBEAT_SEVERITY
The following environment variables are supported by the Alerta API to ease deployment more generally:
DEBUG
LOG_LEVEL=debug
(eg. DEBUG=1
)LOG_LEVEL
warn
)SUPERVISORD_LOG_LEVEL
debug
or lower to see appliation logs (default:debug
)SECRET_KEY
DATABASE_URL
DATABASE_NAME
DATABASE_URL
.AUTH_REQUIRED
alerta
CLI.AUTH_PROVIDER
ADMIN_USERS
CUSTOMER_VIEWS
False
)OAUTH2_CLIENT_ID
OAUTH2_CLIENT_SECRET
ALLOWED_EMAIL_DOMAINS
GITHUB_URL
ALLOWED_GITHUB_ORGS
GITLAB_URL
ALLOWED_GITLAB_GROUPS
KEYCLOAK_URL
KEYCLOAK_REALM
ALLOWED_KEYCLOAK_ROLES
CORS_ORIGINS
MAIL_FROM
SMTP_PASSWORD
MAIL_FROM
email accountPLUGINS
NGINX_WORKER_PROCESSES
1
)NGINX_WORKER_CONNECTIONS
1024
)UWSGI_PROCESSES
5
)UWSGI_LISTEN
100
)UWSGI_BUFFER_SIZE
8192
)UWSGI_MAX_WORKER_LIFETIME
30
)UWSGI_WORKER_LIFETIME_DELTA
3
)To set configuration settings not supported by environment variables use configuration files instead. For example:
$ docker run -v $PWD/config/alertad.conf:/app/alertad.conf \
-v $PWD/config/config.json:/web/config.json \
-p <port>:8080 alerta/alerta-web
For a full list of server configuration options see https://docs.alerta.io.
All built-in and contributed plugins are installed at image build time. Only
plugins listed in PLUGINS
environment variabled will be enabled.
In the example below, of all the plugins installed only those listed will be enabled at container start time:
PLUGINS=remote_ip,reject,heartbeat,blackout,slack,prometheus
Custom plugins should be installed as an additional image layer.
To make it easy to get going with Alerta on docker quickly, the default image will use Basic Auth for user logins and login will be optional.
To allow users to login using Google OAuth, go to the Google Developer Console
and create a new client ID for a web application. Then set the CLIENT_ID
and CLIENT_SECRET
environment variables on the command line as follows:
$ export CLIENT_ID=379647311730-6tfdcopl5fodke08el52nnoj3x8mpl3.apps.googleusercontent.com
$ export CLIENT_SECRET=UpJxs02c_bx9GlI3X8MPL3-p
Now pass in the defined environment variables to the docker run
command:
$ docker run --name alerta-web -e AUTH_PROVIDER=google -e CLIENT_ID=$CLIENT_ID \
-e CLIENT_SECRET=$CLIENT_SECRET -d -p <port>:8080 alerta/alerta-web
This will allow users to login but will only make it optional. To enforce
users to login you must also set the AUTH_REQUIRED
environment variable to
True
when starting the docker image:
$ docker run --name alerta-web -e AUTH_REQUIRED=True -e ...
To restrict logins to a certain email domain set the ALLOWED_EMAIL_DOMAIN
environment variable as follows:
$ docker run --name alerta-web -e ALLOWED_EMAIL_DOMAIN=example.com ...
GitHub and GitLab can also be used as the OAuth2 providers by setting the
AUTH_PROVIDER
environment variable to github
and gitlab
respectively. For
more information on using GitHub, GitHub Enterprise or GitLab as th OAuth2
provider see https://docs.alerta.io
Use docker-compose
to create and start Alerta and Postgres with
one command:
$ docker-compose up
Example Docker Compose File
version: '2.1'
services:
web:
image: alerta/alerta-web
ports:
- "8080:8080"
depends_on:
- db
environment:
- DEBUG=1 # remove this line to turn DEBUG off
- DATABASE_URL=postgres://postgres:postgres@db:5432/monitoring
- AUTH_REQUIRED=True
- ADMIN_USERS=admin@alerta.io,devops@alerta.io #default password: alerta
- ADMIN_KEY=demo-key
- PLUGINS=reject,blackout,normalise,enhance
restart: always
db:
image: postgres
volumes:
- ./pg-data:/var/lib/postgresql/data
environment:
POSTGRES_DB: monitoring
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
restart: always
A command-line tool for alerta is available. To install it run:
$ pip install alerta
Configuration file $HOME/.alerta.conf
:
[DEFAULT]
endpoint = http://<docker>:<port>/api
If authentication is enabled (ie. AUTH_REQUIRED
is True
), then create
a new API key in the Alerta console and add the key to the configuration
file. For example:
[DEFAULT]
endpoint = ...
key = 4nHAAslsGjLQ9P0QxmAlKIapLTSDfEfMDSy8BT+0
More information about Alerta can be found at http://docs.alerta.io
Copyright (c) 2014-2020 Nick Satterly. Available under the MIT License.