Skip to main content

ExaCheck - ExaBGP Health Checker

Project description

ExaCheck - ExaBGP Service Health Checker

ExaCheck works in conjunction with ExaBGP to health check services and announce BGP routes depending on the state of the service.

For additional information, deployment instructions and configuration examples please check the ExaCheck website.

Why ExaCheck

ExaBGP is packaged with its own health checking script (see here) however it has some limitations which make it not suitable for my requirements. The built in health check works fine for smaller environments where each service may be running its own instance of ExaBGP (so each instance of ExaBGP runs one or only a few processes) however for larger environments where health checks are centralised it becomes unmanageable.

Some features from the built in ExaBGP health checking script are not available as they are not relevant to the use case for me:

  • Management of IP address binding; the main use case of ExaCheck is for centralised health checks where the service resides on another server/container/VM

Features

  • Live configuration reloads (adding/modifying/removing services)
  • Health checks implemented in pure python where possible; no need to write scripts or use chains of commands to validate output
  • Detailed logging available
  • Configuration validation (if using live configuration reloads, configuration is validated before application)
  • Out of the box sane defaults where possible
  • JSON schema of configuration (see schema.json for the current schema)

Known Issues

If installing Exacheck with Python 3.12 or higher, ExaBGP is not included as a requirement and you must install ExaBGP from source. If using ExaBGP from PyPi using Python 3.12 you will get the following error when running ExaBGP:

ModuleNotFoundError: No module named 'exabgp.vendoring.six.moves'

To work around the problem, install ExaBGP from source:

python3 -m pip --no-cache-dir install "git+https://github.com/Exa-Networks/exabgp.git@4.2"

If you are using the Docker container you do not need to do anything.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exacheck-0.1.1.tar.gz (46.9 kB view hashes)

Uploaded Source

Built Distribution

exacheck-0.1.1-py3-none-any.whl (67.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page