alerta is a free, open source monitoring & observability project written in Python and released under Apache-2.0. It has 2,529 GitHub stars, 374 forks and 34 open issues, and was last pushed 3 months ago. On this registry it ranks #149 of 271 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available.

What is alerta?

Alerta is an open-source, Apache-2.0 licensed monitoring system in Python that aggregates alerts from any source into a single API-driven server and web console, and it is aimed at operations and platform teams that want a scalable, low-configuration alert aggregation layer instead of another polling-based monitoring stack.

What it is

Alerta Release 9.1 is a distributed and de-coupled monitoring tool built around a Python API server, a command-line client, and a separate web console. The project describes three aims for its design: it is scalable because its components are distributed and de-coupled, it needs minimal configuration so that it accepts alerts from any source, and it offers quick at-a-glance visualisation with drill-down to detail. Release 9 requires Python 3.9 or higher, and the only mandatory dependency is a database — either MongoDB or PostgreSQL. Everything else is optional.

The concrete problem Alerta solves is fragmented alert handling. Rather than letting every monitoring source keep its own dashboard, inbox, and retention rules, Alerta provides one HTTP API server that normalises inbound alerts from arbitrary sources and stores them in the database the operator already runs. That database is a hard requirement rather than an add-on: the installation procedure installs MongoDB first and starts the mongod daemon before the Alerta server itself. Postgres support is a first-class alternative, exercised by its own test environment.

Key capabilities

  • Runs an API server and command-line client installed with pip install alerta-server alerta, started with the alertad run command.
  • Persists alerts in MongoDB version 6.0 or better, or PostgreSQL version 13 or better, selected through the DATABASE_URL environment variable.
  • Accepts configuration overrides in /etc/alertad.conf, or through any path named in the ALERTA_SVR_CONF_FILE environment variable.
  • Ships a separately distributed web console, published as the alerta-webui.tar.gz release archive and quickly served with python3 -m http.server 8000.
  • Provides a Docker path through the alerta/docker-alerta repository and the alerta/alerta-web image on Docker Hub.
  • Supports verbose troubleshooting output with DEBUG=True together with LOG_HANDLERS = ['console','file'], LOG_FORMAT, and LOG_FILE.
  • Reports server errors to Sentry when a SENTRY_DSN value is configured.

Who uses it and how

  • Operators deploying containers can run Alerta and MongoDB together using the alerta/docker-alerta Docker setup rather than installing packages on the host.
  • Teams running cloud infrastructure deploy Alerta to Heroku, AWS EC2, or Google Cloud Platform, as the README lists all three as supported targets.
  • Developers working on the server itself run it in Flask development mode with FLASK_APP=alerta and FLASK_DEBUG=1, listening on port 5000, or on port 8080 with threaded requests, a live reloader, a Postgres URL, and Sentry error reporting.
  • Contributors and CI pipelines exercise the full test matrix with TOXENV=ALL make test, or narrow it to TOXENV=postgres and TOXENV=mongodb, which requires a local Postgres and MongoDB instance to be running.
  • Users who prefer conversational help join the project community on Slack at slack.alerta.dev.

Getting started

Install the server and client from PyPI with pip install alerta-server alerta, then start the service with alertad run against a MongoDB or PostgreSQL database that is already reachable. A container-based route exists through the alerta/docker-alerta repository if installing packages directly is not preferred.

How it compares

The provided facts do not name any similar or competing alerting tool, paid or otherwise, so no licence, hosting, or cost comparison can be drawn here. On the evidence available, Alerta stands alone in this registry: it is registered as an open-source monitoring system with no listed alternatives.

When to use it — and when not to

A self-hoster must operate at least one supported database, MongoDB 6.0 or newer or PostgreSQL 13 or newer, because it is the only mandatory dependency, and must also host the web console themselves from the release archive or a container, so this is not a purely managed experience. Anyone without Python 3.9 or higher, or without the appetite to run a database alongside an API server, should look elsewhere. The facts also carry weaknesses worth noting: the published licence text runs to 2023, the repository shows 34 open issues, and the README defers authentication, permissions, and detailed configuration to the external documentation site rather than covering them inline.

project readme (upstream, from github) — read inline

Alerta Release 9.1

Actions Status Slack chat Coverage Status Docker Pulls

The Alerta monitoring tool was developed with the following aims in mind:

  • distributed and de-coupled so that it is SCALABLE
  • minimal CONFIGURATION that easily accepts alerts from any source
  • quick at-a-glance VISUALISATION with drill-down to detail

webui


Requirements

Release 9 only supports Python 3.9 or higher.

The only mandatory dependency is MongoDB or PostgreSQL. Everything else is optional.

  • Postgres version 13 or better
  • MongoDB version 6.0 or better

Installation

To install MongoDB on Debian/Ubuntu run:

$ sudo apt-get install -y mongodb-org
$ mongod

To install MongoDB on CentOS/RHEL run:

$ sudo yum install -y mongodb
$ mongod

To install the Alerta server and client run:

$ pip install alerta-server alerta
$ alertad run

To install the web console run:

$ wget https://github.com/alerta/alerta-webui/releases/latest/download/alerta-webui.tar.gz
$ tar zxvf alerta-webui.tar.gz
$ cd dist
$ python3 -m http.server 8000

>> browse to http://localhost:8000

Docker

Alerta and MongoDB can also run using Docker containers, see alerta/docker-alerta.

Configuration

To configure the alertad server override the default settings in /etc/alertad.conf or using ALERTA_SVR_CONF_FILE environment variable::

$ ALERTA_SVR_CONF_FILE=~/.alertad.conf
$ echo "DEBUG=True" > $ALERTA_SVR_CONF_FILE

Documentation

More information on configuration and other aspects of alerta can be found at

Development

To run in development mode, listening on port 5000:

$ export FLASK_APP=alerta FLASK_DEBUG=1
$ pip install -e .
$ flask run

To run in development mode, listening on port 8080, using Postgres and reporting errors to Sentry:

$ export FLASK_APP=alerta FLASK_DEBUG=1
$ export DATABASE_URL=postgres://localhost:5432/alerta5
$ export SENTRY_DSN=https://8b56098250544fb78b9578d8af2a7e13:[email protected]/153768
$ pip install -e .[postgres]
$ flask run --debugger --port 8080 --with-threads --reload

Troubleshooting

Enable debug log output by setting DEBUG=True in the API server configuration:

DEBUG=True

LOG_HANDLERS = ['console','file']
LOG_FORMAT = 'verbose'
LOG_FILE = '$HOME/alertad.log'

It can also be helpful to check the web browser developer console for JavaScript logging, network problems and API error responses.

Tests

To run the all the tests there must be a local Postgres and MongoDB database running. Then run:

$ TOXENV=ALL make test

To just run the Postgres or MongoDB tests run:

$ TOXENV=postgres make test
$ TOXENV=mongodb make test

To run a single test run something like:

$ TOXENV="mongodb -- tests/test_search.py::QueryParserTestCase::test_boolean_operators" make test
$ TOXENV="postgres -- tests/test_queryparser.py::PostgresQueryTestCase::test_boolean_operators" make test

Cloud Deployment

Alerta can be deployed to the cloud easily using Heroku , AWS EC2 , or Google Cloud Platform

License

Alerta monitoring system and console
Copyright 2012-2023 Nick Satterly

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Frequently asked questions

Is alerta free to use?

alerta is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does alerta do?

Alerta monitoring system

What is alerta written in?

alerta is primarily written in Python. Its source is publicly available at https://github.com/alerta/alerta, and it has 2,529 GitHub stars.