chmonitor
Getting Started

Getting started

Run chmonitor against your ClickHouse instance in minutes — three environment variables and one command, via Docker or from source.

Point chmonitor at an existing ClickHouse instance and you have a dashboard. You need three environment variables and one command. Pick Docker for the fastest path, or run from source to develop against it.

Prerequisites

  • A running ClickHouse instance reachable from where you deploy.
  • A ClickHouse user with SELECT on system.* — see ClickHouse user & grants.
  • Docker installed locally (for the Docker path below).

Quick start

Pull and run

Replace vX.Y.Z with a real release tag from GitHub releases:

docker run -d \
  --name chmonitor \
  -p 3000:3000 \
  -e CLICKHOUSE_HOST=http://your-clickhouse-host:8123 \
  -e CLICKHOUSE_USER=monitoring \
  -e CLICKHOUSE_PASSWORD=your-password \
  ghcr.io/chmonitor/chmonitor:vX.Y.Z

Docker host networking

If ClickHouse runs on the same Docker host, use the host gateway address instead of localhost. On Linux that is typically 172.17.0.1; on Mac/Windows use host.docker.internal.

Open the dashboard

Navigate to http://localhost:3000. The overview page loads immediately.

Clone and install

git clone https://github.com/chmonitor/chmonitor
cd clickhouse-monitoring
bun install

Configure environment

Copy .env.example to .env.local and fill in your ClickHouse connection:

CLICKHOUSE_HOST=http://your-clickhouse-host:8123
CLICKHOUSE_USER=monitoring
CLICKHOUSE_PASSWORD=your-password

See the local development guide for the complete setup including testing and building.

Verify

The overview page should render metrics right away. If pages are empty or show errors:

  1. Check the container logs: docker logs chmonitor (Docker path).
  2. Confirm the ClickHouse user can query system.query_log directly.
  3. See Enable system tables if some tables are missing.

Troubleshooting

Empty pages or connection errors

An empty overview usually means the dashboard reached ClickHouse but the user lacks grants, or the connection itself failed. Verify the user has SELECT on system.* (ClickHouse user & grants), then confirm CLICKHOUSE_HOST is reachable from the container or process.

On this page