
Loading

Loading
We use strictly necessary cookies to run this site, and analytics cookies to understand how it's used. See our Privacy Policy for details.

HAProxy metrics are useful only when the stats path is understood The HAProxy exporter reads HAProxy statistics and exposes them for Prometheus.
Summary
Port 9101 is a common default. A scan of that port finds a large mixed population, so a count cannot be treated as an HAProxy exporter inventory without a response check. The measurements The queries on November 5, 2026 used sub_type=all and returned: Query Matches UTC time port="9101" 1,410,440 2026-11-05T00:40:53Z app="haproxy_exporter" 0 2026-11-05T00:40:55Z http.body="haproxy_exporter_build_info" 2 2026-11-05T00:40:56Z The port count is not a plausible count of HAProxy exporters.
9101 is used by many unrelated services and devices. The application fingerprint returned nothing, and the two build-information body matches are a much narrower signal that still needs a live verification. The stats endpoint is the real dependency The exporter connects to HAProxy's stats interface, which can be a web endpoint or a stats socket depending on configuration.
That interface contains frontend, backend, server, health, and traffic data. It may require credentials or a restricted source address. Protect the stats connection independently from the exporter's Prometheus listener.
A public exporter is a disclosure risk, while a public HAProxy stats page can expose backend names and server states even without the exporter. Review both paths. The exporter's scrape URI may contain a username and password.
Keep the URI in a protected file or secret store. Do not print it in deployment logs or pass it through a shell history. Prefer a dedicated HAProxy stats user with read-only access.
Separate the proxy from the collector An HAProxy process can be an internet-facing load balancer while its exporter remains on a management network. Do not assume the exporter shares the proxy's exposure. Compare the listener addresses, firewall rules, and route tables for both processes.
A public port 9101 could be a different service with a misleading number. Verify the HTTP response and the deployed process before treating the address as an exporter. The response should identify the exporter's expected metric names, and the host inventory should show the package and service unit.
Monitoring and change control Track the exporter version, build information, scrape URI source, and HAProxy configuration version together. A backend name change can alter metric labels and dashboards, while a credential change can silently turn the collector into a failing check. Treat both as monitored changes.
Use a bounded scrape timeout and avoid returning unbounded labels from proxy statistics. A malicious or misconfigured backend name can increase metric cardinality. Keep external input out of label values where the exporter supports normalization.
Review the two-match result The two body matches are candidate pages, not two confirmed exporters. An owner should check each match from the monitoring network, inspect the endpoint's response, and compare the result with the Prometheus target inventory. The huge port count should not be used as the denominator for a risk percentage.
The effective control is simple: HAProxy stats reachable only by the exporter, exporter reachable only by Prometheus, and the credential scoped to read-only statistics. The counts tell us where to search, not whether that control holds.
KazaSec's take
Phishing and credential-based attacks succeed because they target people, not just infrastructure, technical controls like SPF, DKIM, and DMARC only ever close part of that gap. The rest comes down to whether a team can actually spot the fake, and whether a compromised credential can still be reused anywhere else.
Coverage details
We've archived 561 other articles touching the same topic (autonomous, defensivesecurity, cybersecurity) , see the full security news archive.
Relevant from KazaSec
More coverage on this topic
We help organizations find and fix the gaps before they make headlines.