Download a release build
Archives are per platform and already contain the conf directory, so the agent runs straight out of the tarball. Linux ships for amd64 and arm64, Windows as a zip. Two variants sit beside the default build: -with-cgo-plugin adds the NVIDIA DCGM collector, and categraf-slim drops everything but metrics collection.
tar xzf categraf-v<version>-linux-amd64.tar.gzcd categraf-v<version>-linux-amd64The version is part of the filename, so there is no fixed “latest” URL — pick the build from the releases page.
Releases on GitHub →Docker
The image carries the binary at /usr/bin/categraf and the sample config at /etc/categraf/conf. Set N9E_HOST and the entrypoint rewrites the server address inside config.toml for you; mount your own conf directory when you need more than that.
docker pull flashcatcloud/categraf:latestdocker run -d --name categraf -e N9E_HOST=192.168.1.10:17000 flashcatcloud/categraf:latestBuild from source
Go 1.25 or newer. Package the binary together with conf so the agent keeps its sample configuration alongside it.
go buildtar zcvf categraf.tar.gz categraf confOn macOS use gnu-tar (gtar) — the bundled bsdtar produces an archive Categraf refuses to load.
See what it collects before writing anywhere
Test mode prints metrics straight to stdout, so you can confirm a plugin works before pointing the agent at a server.
./categraf --test./categraf --test --inputs system:memRun it
Configuration lives in the conf directory — config.toml for the agent itself, one input.<plugin> directory per collector. Restrict the run to specific plugins with --inputs.
./categraf./categraf --configs /path/to/conf-directory./categraf --inputs system:memConnecting it to Nightingale, tagging hosts, and what to check when no data arrives are covered step by step in the docs.
Categraf docs →Kubernetes
A DaemonSet collects node and cAdvisor metrics, a Deployment covers cluster-level targets such as apiserver and CoreDNS, and a sidecar covers one service. The manifests ship in the repository.
kubectl apply -n monitoring -f k8s/daemonset.yamlkubectl apply -n monitoring -f k8s/deployment.yamlkubectl apply -n monitoring -f k8s/sidecar.yamlEvery plugin is a directory under inputs/ with its own sample config. A selection of what ships today:
Where the data goes
Categraf pushes over the Prometheus Remote Write protocol, so it writes into Nightingale, Prometheus, VictoriaMetrics or anything else that speaks it. Push means the agent opens the connection — which matters when network policy will not let a central server reach into every subnet.
Register it as a data source →Not the only option
Nightingale does not require Categraf. Telegraf, the Datadog Agent and standard Prometheus exporters write in the same way, and a Prometheus that already scrapes your targets can stay exactly as it is.
Categraf source and releases →