Skip to main content

Monitoring ZIGChain Nodes and Validators

Audience & Scope

This guide is intended for Linux-based servers (Debian/Ubuntu) and for operators running ZIGChain nodes and validators. All commands assume shell access and basic system administration knowledge.

This page provides step-by-step instructions to set up monitoring for ZIGChain infrastructure using a proven, open-source stack:

  • Prometheus – metrics collection
  • Grafana – dashboards and visualization
  • Third-party validator monitoring tools – optional, external solutions

Architecture Overview​

The recommended architecture separates monitoring from blockchain workloads:

  • ZIGChain nodes / validators expose Prometheus metrics
  • A dedicated monitoring server runs Prometheus and Grafana
  • Optional third-party validator monitoring tools may run on the monitoring server

Best practice: Do not install Prometheus or Grafana on validator machines.


1. Enable Prometheus Metrics on ZIGChain Nodes​

ZIGChain nodes expose metrics through zigchaind.

Steps (run on each node or validator)​

The following commands assume a Linux server with sed available.

  1. Back up the configuration file:
cp $HOME/.zigchain/config/config.toml $HOME/.zigchain/config/config.toml.bkup
  1. Enable Prometheus metrics using sed:
sed -i 's/^prometheus = false/prometheus = true/' $HOME/.zigchain/config/config.toml
sed -i 's/^prometheus_listen_addr = .*/prometheus_listen_addr = ":26660"/' $HOME/.zigchain/config/config.toml
  1. Restart the node:
sudo systemctl restart zigchaind.service
  1. Verify the metrics endpoint:
sudo netstat -tulnp | grep 26660
curl http://localhost:26660/metrics

2. Install Prometheus (Monitoring Server)​

Steps​

  1. Update the package index:
sudo apt update
  1. Install Prometheus and node exporter:
sudo apt install prometheus
  1. Check services:
systemctl status prometheus.service
systemctl status prometheus-node-exporter.service
sudo netstat -tulnp | grep prometheus

Prometheus runs on port 9090.


3. Configure Prometheus Targets​

Prometheus must be told which nodes and validators to scrape.

Steps (run on the monitoring server)​

  1. Edit the Prometheus configuration file:
sudo vi /etc/prometheus/prometheus.yml
  1. Inside the scrape_configs section, add a new job exactly as shown below (replace IP addresses as needed):
- job_name: testnet_servers
# Job to grab data from testnet servers, all in the same job.
static_configs:
- targets: ['IP_NODE_1:26660','IP_NODE_2:26660','IP_VALIDATOR_1:26660']
  1. Save and exit, then restart Prometheus:
sudo systemctl restart prometheus.service
sudo systemctl status prometheus.service
sudo journalctl -u prometheus.service --no-pager
  1. (Optional) Check installed Prometheus version:
prometheus --version
sudo apt list | grep prometheus/stable
dpkg -l | grep prometheus

4. Install Grafana​

Steps​

  1. Install prerequisites:
sudo apt-get install -y apt-transport-https software-properties-common wget
  1. Add Grafana GPG key and repository:
sudo mkdir -p /etc/apt/keyrings/
wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list
  1. Install Grafana:
sudo apt-get update
sudo apt-get install grafana
  1. Start and enable the service:
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
systemctl status grafana-server.service
sudo netstat -tulnp | grep 3000

Grafana runs on port 3000.


5. Connect Grafana to Prometheus​

  1. Open Grafana in a browser:
http://<monitoring-server-ip>:3000
  1. Log in (default credentials):

    • Username: admin
    • Password: admin
  2. Go to Connections → Data sources → Add data source

  3. Select Prometheus

  4. Set URL:

http://127.0.0.1:9090
  1. Click Save & Test

6. Validator Monitoring Tools (Third-Party)​

Validator-level metrics (such as uptime, missed blocks, or signing activity) are not provided directly by ZIGChain software.

Some operators choose to rely on third-party tools from the Cosmos ecosystem to obtain this kind of information. One commonly referenced example is Cosmos Validator Watcher, among others.

Important Disclaimer
  • Any validator monitoring tool is third-party software, not developed, maintained, or audited by the ZIGChain team.
  • ZIGChain does not endorse, guarantee, or rely on any specific external monitoring tool.
  • APIs, metrics, behavior, and availability of third-party tools may change or break without notice.
  • Operators are solely responsible for evaluating, maintaining, and securing any external tooling they deploy.

If validator-level insights are required, operators should carefully review available ecosystem tools, validate their correctness, and understand their operational risks before using them in production.


7. View Metrics in Grafana​

You can now build dashboards showing:

  • Node health and resource usage
  • Consensus metrics
  • Validator uptime, voting power, and missed blocks