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.6.tar.gz (45.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

exacheck-0.1.6-py3-none-any.whl (68.0 kB view details)

Uploaded Python 3

File details

Details for the file exacheck-0.1.6.tar.gz.

File metadata

  • Download URL: exacheck-0.1.6.tar.gz
  • Upload date:
  • Size: 45.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.12.3 Linux/6.12.0-16-generic

File hashes

Hashes for exacheck-0.1.6.tar.gz
Algorithm Hash digest
SHA256 6bd34a2aa05e04aa623006d3c864a3c31fe48be413af6ffb76c467cea01cfd3c
MD5 c82de4a6f0b94a818c4efda2f2eab4cd
BLAKE2b-256 28a35038187181f6e701911e89518a92050fdf5ad29c25268f24e81beae09f14

See more details on using hashes here.

File details

Details for the file exacheck-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: exacheck-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 68.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.0.1 CPython/3.12.3 Linux/6.12.0-16-generic

File hashes

Hashes for exacheck-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 4fa7814c23a5e76c4f4c80956bf74bfcb06d05b06c7ae2ccc4e2552fbdc50899
MD5 2c3b8986d65b8e625b569e524434fc29
BLAKE2b-256 2b8d919a37b666cdcb947e8c5283c47dd828cdc2cdc80e930b3d848b479c381a

See more details on using hashes here.

Supported by

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