Skip to main content

Grommunio email system data exporter for Prometheus

Project description

Grommunio exporter for Prometheus

License Percentage of issues still open GitHub Release Linux linter

This program exposes Grommunio email system metrics for Prometheus

Grafana Dashboard

You can find an example dashboard in the examples directory

image image

Install

Easiest way to install grommunio_exporter is to use python pip:

python3 -m pip install grommunio_exporter

Note that on Grommunio appliances (OpenSuSE 15.4), you'll have to install pip first via

zypper install python3-pip

The exporter needs to be installed on the host that has grommunio-admin cli interface.
Once installed, you can create a systemd service file from the systemd unit file in the example dir.
Once the service is running, you may query the exporter with:

curl http://localhost:9769/metrics

Firewall

The default exporter-port is 9799/tcp, which you can change in the config file. Keep in mind that you need to create a firewall rule if you want to query it's output.

You can create the firewall rule with the following command on a Grommunio appliance

firewall-cmd --add-port=9799/tcp --permanent && firewall-cmd --reload

Metrics

The exporter currently produces the following metrics:

  • grommunio_api_status is 0 when no errors where found in api calls
  • grommunio_mailbox_count
  • grommunio_shared_mailbox_count

The follwoing metrics are per user and have labels hostname,domain,username:

  • grommunio_mailbox_messagesize
  • grommunio_mailbox_storage_quota_limit
  • grommunio_mailbox_prohibit_receive_limit
  • grommunio_mailbox_prohibit_send_quota
  • grommunio_mailbox_creation_time

Alert rules:

    - alert: Storage Quota
      expr: (1-((grommunio_mailbox_storage_quota_limit - grommunio_mailbox_messagesize)/grommunio_mailbox_storage_quota_limit))*100 > 95
      for: 5m

    - alert: Prohibit Send Quota
      expr: (1-((grommunio_mailbox_prohibit_send_quota - grommunio_mailbox_messagesize)/grommunio_mailbox_prohibit_send_quota))*100 > 95
      for: 5m

    - alert: Prohibit Receive Quota
      expr:  (1-((grommunio_mailbox_prohibit_receive_limit - grommunio_mailbox_messagesize)/grommunio_mailbox_prohibit_receive_limit))*100 > 95
      for: 5m

Customization

You may create a grommunio_exporter.yaml that can be added to the exporter via --config-file=/etc/grommunio_exporter.yaml argument.
This file can override the following:

  • http listen ip
  • http listen port
  • http authentication
  • grommunio api concurrency
  • grommunio hostname
  • path to grommunio-admin

Troubeshooting

This program has currently been tested on grommunio-admin-api-1.16.8.

By default, the exporter will log to /var/log/grommunio_exporter.log
You can override this in the config file.

You may also run the exporter with --debug in order to gain more information.

In order to be quick, grommunio_exporter uses concurrency to the grommunio_api. By default, this concurrency is set to 4. You can increase the concurrency if querying is to slow. Nevertheless, you should never query more than every 5 minutes to keep the server load down.

Misc

This version of the grommunio exporter uses the locally installed grommunio-admin cli interface instead of the REST API.
Pros:

  • No need for authentication Cons:
  • Not all commands output parseable json
  • Probably slower than REST UI

If the project gains some traction, we can add REST UI support.

License

Licensed under GPLv3.0... Contributions are welcome
(C) 2024 NetInvent SASU

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

grommunio_exporter-0.2.0.tar.gz (27.8 kB view details)

Uploaded Source

Built Distribution

grommunio_exporter-0.2.0-py3-none-any.whl (29.1 kB view details)

Uploaded Python 3

File details

Details for the file grommunio_exporter-0.2.0.tar.gz.

File metadata

  • Download URL: grommunio_exporter-0.2.0.tar.gz
  • Upload date:
  • Size: 27.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.0

File hashes

Hashes for grommunio_exporter-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a79edd50a93d075d8e9bc5e3be5db0e73baaac8b91a31ce066b0351b6c9a360b
MD5 9c32b8cda315f54e618b90fa7917f3dd
BLAKE2b-256 904dfd3bdc129668ef0fdc3215c1e37f20a6d358a81ce4631e497e8bdab5698c

See more details on using hashes here.

File details

Details for the file grommunio_exporter-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for grommunio_exporter-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0cf2296661af08bce49101dfda131c763cac14125203f36185ea8689381d421b
MD5 8f77fd28d0d72ac736d0181e91544aaf
BLAKE2b-256 1dc1d0355a1e7002635ce10e92354cf55ccfca6dd5d830849a5218308dadeecd

See more details on using hashes here.

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