Celestia Validator monitoring guide with tenderduty

TenderDuty monitoring allows you to monitor nodes, see the height of the network, validator status, uptime, signed and transmitted blocks. You can enable notifications in Telegram and Discord.

Update packages and Install dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install curl build-essential git wget jq make gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev -y

Install docker

apt update && \
apt install apt-transport-https ca-certificates curl software-properties-common -y && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" && \
apt update && \
apt-cache policy docker-ce && \
sudo apt install docker-ce -y && \
docker --version

Install tenderduty

tmux new-session -s tenderduty

mkdir tenderduty && cd tenderduty
docker run --rm ghcr.io/blockpane/tenderduty:latest -example-config >config.yml

Set configuration

nano $HOME/tenderduty/config.yml

For simple monitoring without notificatio, just change these in the config:

  • celestia to <PROJECT_NAME>

  • chain_id: mocha-4 to chain_id: <YOUR_CHAIN_ID>

  • valoper_address: celestiavaloper1xxxxxxx... to valoper_address: <YOUR_VALOPER_ADDRESS>

  • url: tcp://localhost:<VALIDATOR_NODE_RPC_PORT> TO url: tcp://localhost:<YOUR_NODE_RPC_PORT>

After setting up the config, run

docker run -d --name tenderduty -p "8888:8888" -p "28686:28686" --restart unless-stopped -v $(pwd)/config.yml:/var/lib/tenderduty/config.yml ghcr.io/blockpane/tenderduty:latest

Check the logs

docker logs -f --tail 20 tenderduty

Turn on firewall to protect your server and open the required port

Default tenderduty port - 8888. if you have custom ports on your node or have another nodes in this server, check it and open custom ports!

sudo apt install ufw 
sudo ufw default allow outgoing 
sudo ufw default deny incoming 
sudo ufw allow ssh/tcp 
sudo ufw limit ssh/tcp 
sudo ufw allow 8888/tcp
sudo ufw enable

You can open dashboard on web browser by using tenderduty port and your server IP http://<YOUR_SERVER_IP>: Default port on tenderduty is 8888

Configure Telegram alerting Open telegram and find @BotFather

  • Create telegram bot via @BotFather, customize it and get bot API token how_to

  • Create the group: alarm . Customize them, add the bot in your chat and get chats IDs how_to

  • Open config.yml file

change enabled: no to enabled: yes api_key: '5555555555:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' to api_key: '<YOUR_BOT_API_KEY>' channel: "-666666666" to channel: "<YOUR_GROUP_CHAT_ID>"

nano $HOME/tenderduty/config.yml

Restart docker tenderduty

docker restart tenderduty

Last updated