Celestia Node Monitor
Celestia Node Monitor is a simple monitoring tool for Celestia DA nodes, supporting full nodes, bridge nodes, and light nodes.
Features
- Sends alerts to a Discord channel when your Celestia DA node is down, not synced, or has insufficient balance
- Checks node status every 5 minutes
Prerequisites
- Go 1.22+ installed
- Discord webhook set up. You can follow this guide
Usage
Installation
git clone https://github.com/silentnoname/celestia-node-monitor.git
cd celestia-node-monitor
go build -o celestia-node-monitor ./cmd
Get Auth Token
# Example for mocha bridge node
AUTH_TOKEN=$(celestia bridge auth admin --p2p.network mocha)
echo $AUTH_TOKEN
Configuration
-
Copy and edit the .env file:
cp .env.example .env -
Copy and edit the config.toml file:
cp config.toml.example config.tomlConfigure the following in
config.toml:[node]section:standardConsensusRPC: Public consensus RPC address for the Celestia networkminimumBalance: Minimum balance for the node (in utia)
[[node.APIs]]section:URL: Celestia DA node API address, default is http://localhost:26658Token: Your DA node auth token
[discord]section:alertuserid: Discord user ID (optional)alertroleid: Discord role ID (optional)
You can add multiple
[[node.APIs]]blocks to monitor multiple nodes.
Run
./celestia-node-monitor
Log file: celestia-node-monitor.log
Run as a Service
Create a service file:
sudo tee /etc/systemd/system/celestia-node-monitor.service > /dev/null << EOF
[Unit]
Description=celestia-node-monitor
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/celestia-node-monitor
ExecStart=$HOME/celestia-node-monitor/celestia-node-monitor
Restart=always
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
Start the service:
sudo systemctl enable celestia-node-monitor
sudo systemctl daemon-reload
sudo systemctl start celestia-node-monitor
Check logs:
sudo journalctl -fu celestia-node-monitor -o cat
More Information
For more detailed information about Celestia Node Monitor, visit the GitHub repository.