Overview
ClusterEye has three components: the Agent running on monitored hosts, the central API, and the web UI. Data flows one way — the agent dials out, and ClusterEye never opens an inbound connection into your database.
The agent collects
Runs on the monitored host, connects to the database with a read-only account and reads host metrics from /proc.
Ships over gRPC
Streams to the API over a single outbound TLS connection (443/tcp). The agent opens no listening port.
The API processes and stores
Metadata goes to PostgreSQL, time-series metrics to InfluxDB; the anomaly, baseline and correlation engines run here.
The UI shows it
Served from the same 443 port: dashboards, alerts, RCA and reports.
Two collection modes
PostgreSQL, MongoDB, MS SQL Server, Oracle, MySQL/MariaDB, ClickHouse. The agent runs on the database host, which is what makes host metrics, log analysis and config drift possible.
Azure SQL (Database + Managed Instance), Azure PostgreSQL, AWS RDS for PostgreSQL and SQL Server, Huawei Cloud RDS for PostgreSQL, Redis, Elasticsearch/OpenSearch. The connection is made directly from the ClusterEye API server; nothing is installed on the target — which is the only option for managed services. Host-level metrics are not collected in this mode.
Network & ports
The rules to open in the customer firewall. The agent only ever dials out — you never need to expose an inbound port on a monitored host.
For most deployments one rule is enough: outbound TCP from every database host to 443/tcp on the ClusterEye server. Database ports (5432, 1433, 1521, 27017, 3306, 9000) are usually loopback because the agent runs on the same machine, so they never reach the firewall. The agentless engines (Azure SQL, Azure PostgreSQL, Redis, Elasticsearch) are the exception: those ports must be reachable from the ClusterEye API server, and the Azure ones additionally need a firewall rule or private endpoint.
Quick start
Pick the one that fits — all three are one-command installs.
Kind + Helm
Installs Kind, Helm and the complete ClusterEye stack on Ubuntu 24.04.
Bare-metal Linux
Full platform directly on Linux — no Docker, no Kubernetes.
Agent only (Linux)
Just the agent, talking to an existing ClusterEye server.
Standalone install
ClusterEye API + UI on bare-metal Linux servers — no Docker, no Kubernetes. Comes with nginx reverse proxy.
Install options
All install.sh flags.
--api-version=<ver>API binary version--ui-version=<ver>UI assets version--domain=<host|ip>Server domain or IP--postgres=local|externalMode (default: local)--postgres-host=<host>External PG host--postgres-port=<port>External PG port (default: 5432)--postgres-user=<user>External PG user (default: postgres)--postgres-password=<pwd>External PG password--postgres-dbname=<n>DB name (default: clustereye)--postgres-sslmode=<mode>SSL mode (default: disable)--influxdb=local|external|noneMode (default: local)--influxdb-url=<url>External InfluxDB URL--influxdb-token=<token>External InfluxDB token--influxdb-org=<org>Org (default: clustereye)--influxdb-bucket=<bucket>Bucket (default: clustereye)--tls=self-signed|providedMode (default: self-signed)--cert=<path>Cert file (with --tls=provided)--key=<path>Key file (with --tls=provided)--port=<n>HTTPS port (default: 443)--http-port=<n>|nonePlaintext h2c port (default: 80)--bind-host=<host>Bind address (default: 0.0.0.0)--extra-hostnames=a,b,cAdditional TLS SANs--no-firewallSkip firewall config-h, --helpShow help--versionShow installer versionUpgrade
In-place upgrade of API binary or UI assets. Config, secrets, TLS and databases are preserved.
--api-version=<ver>Upgrade API binary to this version--ui-version=<ver>Upgrade UI assets to this version-h, --helpShow helpUninstall
Without flags: removes systemd service, binary, nginx config and journald drop-in. Configs, secrets, TLS and databases are preserved.
(no flags)Remove only binary, systemd, nginx, journald--purgeAlso remove /etc/clustereye, /var/lib/clustereye, /var/log/clustereye, web assets, user/group--purge-dbAlso remove local PostgreSQL packages and data--purge-influxdbAlso remove local InfluxDB packages and data--yes-i-mean-itSkip confirmation promptClusterEye Agent
Agent for PostgreSQL, MongoDB, Oracle, MySQL/MariaDB, MS SQL Server and ClickHouse. It runs on the monitored database host and opens only an outbound gRPC connection.
-p, --platformRequired — postgres, mongo, oracle or mysql--api-urlClusterEye API server address (host or host:port)--registration-tokenOne-time registration token generated in the UI-d, --install-dirInstall directory (default: /opt/clustereye)-b, --local-binaryCopy a local binary instead of downloading a release (air-gapped)--tlsUse TLS for the gRPC connection (default: off)-k, --insecureSkip TLS certificate verification (for self-signed certs, with --tls)Windows
For Windows x64:
Minimum privileges per engine
The smallest privilege set the customer must grant the ClusterEye monitoring account. The baseline is read-only and safe to grant everywhere; the optional rows are needed only if you want the matching action feature.
PostgreSQL
Agent-basedDefault port:5432The baseline is fully read-only. A missing grant only disables that collector with a warning — the agent still starts.
No collector ever takes the agent down over a missing privilege. That collector logs a warning, the capability is marked unavailable, and everything else keeps running. Action features (kill, plan forcing, tuning apply) fall back to recommend-only.
AI Alarm Investigator
An evidence-grounded layer that investigates why an alarm or a correlated incident happened. An operator starts it; ClusterEye gathers the evidence from what it has already stored; the model interprets that evidence and cites an evidence id for every claim. The model never reaches your database.
An operator starts it
One click from the alarm or incident drawer. There is no automatic triggering — no investigation ever runs unless you ask for it.
ClusterEye gathers evidence
Only data ClusterEye already stores: alarm history, metric series, event and change records, query statistics. No new database connection is opened.
The model plans and reads
The model says which evidence it needs, the server runs the permitted read-only tools and hands back the result. The model cannot write SQL and cannot step outside the tool list.
The answer cites its evidence
Competing hypotheses, the supporting and contradicting evidence ids for each, what is missing, and recommended next steps. When the evidence is not enough, the engine says so.
What it reads
- Alarm and incident records: when it started, how often it recurred, which alarms accompanied it, how it was resolved before.
- Metric series and their learned normals (seasonal baseline): CPU, memory, connections, wait time, storage.
- Engine evidence: blocking episodes, deadlock records, backup age, replication state, query statistics.
- The event stream: configuration changes, deployments, failovers, agent health.
What it never does
- It does not connect to your database. No live query is run during an investigation — this is a fixed limit, not a setting.
- Nothing the model writes is executed. It may only call registered read-only tools; it cannot produce, run or apply SQL.
- It does not trigger itself. There is no scheduled or alarm-triggered automatic investigation.
- Raw query text never leaves the server, and your data rows never reach the model.
- The model's reasoning steps are not stored — only the plan, the tools it called and the final result.
What reaches the model, and what does not
Sent
- Alarm/incident metadata: type, severity, node, database name, timestamps, occurrence count.
- Metric summaries: mean, peak, last value, sample count and the deviation from the learned expectation.
- Query fingerprints: verb + first table + length, with literals replaced by '?' (e.g. "SELECT … dbo.Orders … (redacted, 162 chars)").
- Event titles and configuration-change summaries.
Not sent
- Data rows from your tables — no tool reads rows.
- Raw SQL text, bind values, literals.
- Passwords, tokens and connection strings: every message passes a redaction layer before it reaches the model.
- The model's hidden chain of thought (never stored, never displayed).
Where it runs, what it needs
Any OpenAI-compatible endpoint works — vLLM, Ollama or similar on your own hardware. No internet access is required and the evidence never leaves your network. Verified end to end against a local gpt-oss-120b class model.
A cloud provider can be configured instead. Provider, endpoint and model are read live from Settings — changing them needs no restart.
Requires the 'ai' feature on an Enterprise licence and a per-user AI quota. Admin and DBA roles start an investigation; anyone who can see the alarm can read the result and leave feedback.
Every tool call is written to the audit log with its arguments, duration and result size. Each investigation is stored with who started it and can be reviewed later against the same evidence.
Limits — on purpose
- Evidence that is not stored is reported as unavailable rather than guessed: SQL Agent job history, MSSQL plan XML and PostgreSQL execution plans fall into this category.
- Engine depth: SQL Server, PostgreSQL and Oracle have engine-specific tools. Other engines are investigated with the generic tool set.
- Confidence caps are deterministic: a hypothesis resting on a single signal, on history alone, or on contradicted evidence cannot be rated highly — whatever the model claimed.
- The engine may answer 'no clear root cause' or 'insufficient evidence'; that is an expected outcome, not a failure.
The model has no access to your database
An investigation runs purely on data ClusterEye collected earlier. The live database call budget is zero and cannot be raised by configuration — which is why starting an investigation adds no load to your production database.
AI Alarm Investigator — frequently asked questions
Does the AI investigation connect to my database?
No. An investigation runs purely on data ClusterEye has already collected and stored: alarm history, metric series, event records, query statistics. The live database call budget is zero and cannot be raised by configuration, so starting an investigation adds no load to your production database.
Does my data leave the environment? Does it work air-gapped?
The model can run on your own infrastructure: any OpenAI-compatible endpoint (for example vLLM on your own hardware) is enough and no internet access is required. In that setup the evidence never leaves your network. A cloud provider can be configured instead; even then what reaches the model is limited to alarm metadata, metric summaries and query fingerprints — your data rows and raw SQL text are never sent.
What exactly is sent to the model?
Alarm and incident metadata, metric summaries (mean, peak, deviation from the learned expectation), event and configuration-change titles, and query fingerprints. Query text is reduced to verb + first table + length with the literals removed before it is sent. Passwords, tokens and connection strings are masked in every message. No tool reads rows from your tables.
Can the AI act on its own?
No. The model may only call registered, read-only tools; it cannot produce, run or apply SQL and it cannot change anything. Recommended actions are text, and the risky ones are explicitly flagged as requiring DBA approval. Investigations do not start by themselves either — there is no scheduled or alarm-triggered automatic run.
Who can start an investigation?
Admin and DBA roles can start one; it requires the 'ai' feature on an Enterprise licence and a per-user AI quota. Anyone who can see the alarm can read the result and leave 'useful / not useful' feedback. Every tool call and every investigation is written to the audit log together with who started it.
What if the AI names the wrong root cause?
The output is not a single answer but competing hypotheses, each with the evidence ids that support and contradict it and a list of what is missing. Confidence is bounded by deterministic rules — a hypothesis resting on a single signal, on history alone, or on contradicted evidence cannot be rated highly, whatever the model claimed. The engine is allowed to answer 'no clear root cause' or 'insufficient evidence', and it reports evidence it does not have as unavailable rather than guessing.
Verify & troubleshoot
What to check in the first five minutes after an install.
Is the agent service up?
If the service runs but the node never shows up in the UI, it is almost always networking or database credentials.
Can it reach the API?
Run this from the agent host. No answer means the 443/tcp rule; if you use a self-signed certificate install the agent with -k.
Is the database account sufficient?
This succeeds once the baseline grants are in place. Use the equivalent for your engine (Oracle: V$SESSION, MSSQL: sys.dm_exec_sessions).
Query intelligence empty?
If metrics flow but the query list stays empty, the missing piece is almost certainly an engine prerequisite: pg_stat_statements, Query Store, performance_schema or log_queries.
Releases
Linux x86_64 agent binaries. Verify with SHA256.
ARM64 support is available since v2616101459 (Sep 16, 2025). Windows x64 binaries are also downloadable.