Skip to content
BleemeoBleemeo

Services Monitoring Overview

FreeOnly availability check
StarterOnly availability check
ProfessionalAll specific metrics

Glouton automatically discovers services running on your system and monitors them. Each service page displays badges indicating the supported monitoring capabilities:

  • Auto-Detection — Glouton detects the service by its listening port or process
  • Health Check — Glouton verifies the service is responding correctly
  • Built-in Metrics — Glouton collects metrics natively (e.g., Redis INFO, MySQL status variables)
  • Prometheus Metrics — Glouton scrapes the service’s native /metrics endpoint
  • Exporter Metrics — Metrics collected via a third-party Prometheus exporter
  • Logs — Glouton collects and parses the service’s log files

If your service is not listed, you can define a custom check or a custom metric. To disable metrics for a service, see service_ignore_metrics.

ServiceAuto-DetectionHealth CheckBuilt-inPrometheusExporterLogs
Apache HTTP
Asterisk
Authentik
BIND
Bitbucket
Caddy
Cassandra
ClickHouse
CockroachDB
Confluence
Consul
CoreDNS
Couchbase
CouchDB
Dovecot
ejabberd
Elasticsearch
Emissary-ingress
Envoy
etcd
Exim4
Fail2ban
Forgejo
FreeRADIUS
Gitea
GitLab
HAProxy
Infisical
InfluxDB
Jenkins
JIRA
Kafka
libvirtd
Memcached
MinIO
MongoDB
Mosquitto
MySQL / MariaDB
NATS
NFS
NSQ
Nginx
NTP
OpenLDAP
OpenVPN
PHP-FPM
Postfix
PostgreSQL
PowerDNS
RabbitMQ
Redis
RethinkDB
Riak
RustFS
Salt
Squid
Traefik
UPSD
uWSGI
Valkey
Varnish
Vault
ZooKeeper

Glouton checks TCP sockets for each service. By default, a simple TCP connection tests the service, but some services support a specific health check. These checks run every minute. For TCP services, Glouton keeps a connection open and re-checks immediately if that connection breaks.

The current status can be viewed in the Status Dashboard, and you can configure a notification to be alerted on status changes.

The status history is stored in a metric named service_status with two labels:

  • service: the type of service (e.g., “apache”, “nginx”)
  • service_instance: the container name (absent for non-containerized services)

Status values:

  • 0 — check passed successfully
  • 1 — check passed with a warning (e.g., Apache returned a 404)
  • 2 — check detected an issue
  • 3 — check status unknown (typically due to a timeout)

You can override auto-detected service parameters using configuration files, Docker labels, or Kubernetes annotations.

Add entries to a Glouton configuration file:

service:
- type: "apache"
ignore_ports:
- 8000
- 9000
- type: "mysql"
instance: "name_of_a_container"
username: root
password: root

Each service is identified by the type and instance pair. The type must match a supported service name (“apache”, “nginx”, “postgresql”, etc.). The instance is the container name — omit it for non-containerized services.

Any overridable setting can be set using the prefix glouton.:

Terminal window
docker run --label glouton.ignore_ports="8000,9000" [...]

Or as a Kubernetes pod annotation:

apiVersion: apps/v1
kind: Deployment
spec:
template:
metadata:
annotations:
glouton.ignore_ports: "8000,9000"

For security reasons, only an allow-list of settings can be applied through labels or annotations. Anyone able to start a container or a pod can set them, so settings that could run arbitrary commands on the host or read arbitrary files are restricted: they are ignored unless you explicitly opt in. The Container override column of the table below marks each setting as Default (honored out of the box) or Restricted. To allow a restricted setting, add it to container.allowed_label_overrides. This restriction only applies to labels and annotations — every setting can always be used in a configuration file.

Setting Description Supported Services Container override
address IP address the service listens on All Default
port TCP port the service listens on All Default
ignore_ports List of ports to exclude from auto-detection All Default
tags List of tags to associate with the service All Default
interval Check interval in seconds (minimum 60) All Default
http_path Custom HTTP path for health check Apache, InfluxDB, Nginx, Squid Default
http_status_code Expected HTTP status code Apache, InfluxDB, Nginx, Squid Default
http_host HTTP Host header for virtual hosts Apache, InfluxDB, Nginx, Squid Default
username, password Authentication credentials Jenkins, MySQL, OpenLDAP, PostgreSQL, RabbitMQ, UPSD Default
stats_url URL for metrics endpoint HAProxy, Jenkins, PHP-FPM Default
stats_port Port for metrics endpoint NATS, RabbitMQ, uWSGI Default
stats_protocol Protocol for metrics endpoint uWSGI Default
metrics_unix_socket Unix socket path for metrics MySQL Default
detailed_items Items for per-item metrics PostgreSQL, Cassandra, Kafka Default
included_items, excluded_items Include/exclude items Jenkins Default
jmx_port, jmx_username, jmx_password, jmx_metrics JMX configuration Java services Default
ssl, ssl_insecure, starttls TLS settings OpenLDAP Default
ca_file, cert_file, key_file TLS certificate paths OpenLDAP Default
match_process Process name/pattern used to detect the service Custom checks Default
check_type, check_command Custom check type and command to run Custom checks Restricted
nagios_nrpe_name Expose check to Nagios via NRPE All Restricted
log_format, log_filter Log parsing format and filter Services with log support Default
log_files Paths of the log files to collect Services with log support Restricted

Glouton comes with built-in log configuration for: Apache, HAProxy, Kafka, MongoDB, MySQL, Nginx, PostgreSQL, RabbitMQ, Redis, and Valkey.