⏰Monitoring
TenderDuty

TenderDuty v2 - monitoring and alerting
Tenderduty is a comprehensive monitoring tool for Tendermint networks. More details can be found here
This TenderDuty v2 monitoring allows you to study control over nodes and, in particular, see the height of the network, validator status, uptime, signed and passed blocks. It is also possible to connect alerts to Telegram and Discord. Installation is possible in different ways, but I will use installation via Docker, although there are no fundamental differences. So, we will need a separate server (which definitely provides additional security) or a server with node(s) already installed. You will also need to find an open RPC or open your primary (not recommended) or backup node.

# updating repositories
sudo apt update && sudo apt upgrade -y
# install the necessary utilities
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
Installing 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
Download the config and edit it
wget -O $HOME/tenderduty/config.yml "https://raw.githubusercontent.com/111STAVR111/props/main/Tenderduty/config.yml"
nano $HOME/tenderduty/config.yml
For simple monitoring without alerts, just change in the config:
network name:
chain-id:
valoper_address:
url:

After installing and editing the config, run docker
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
# logs
docker logs -f --tail 20 tenderduty
Checking our work in the browser
# find out the address and paste it into the browser
echo -e "\033[0;32mhttp://$(wget -qO- eth0.me):8888/\033[0m"
# http://55.18.19.38:8888/

Setting up alerts in Discord
It's pretty easy to turn on an alert for discord. To do this you only need to perform a few steps
Let's go to our config and paste this link into the Webhook section









Let's go to our config and paste this link into the Webhook section
$HOME/tenderduty/config.yml

Reboot our Tenderduty - and now everything should be displayed in discord
docker restart tenderduty

Setting up alerts in Telegram
Telegram takes a little longer to set up, but overall it's not very difficult. We will need to create our own bot and find out the ID of our telegram or the ID of the group we need in telegram
Create your own bot. To do this, write to the bot @BotFather and enter the command /newbot - then enter the bot name - then username (must end with bot). The bot will issue an API token, which we securely save and do not show to anyone

Find out your ID or group ID (to do this, add the bot to the group). To find out your ID, write to the bot @JsonViewBot and send it any message

Now it's time to add the ID and Token API to our configuration, then restart monitoring and wait for future alerts.

Useful commands
# view installed images
docker images
# view activated containers
docker ps
# stop container
docker stop tenderduty
# restart container
docker restart tenderduty
# logs
docker logs -f --tail 20 tenderduty
# find out the RPC nodes for the config
NODE_FOLDER=".lava"
echo -e "\033[0;32mhttp://$(wget -qO- eth0.me)$(grep -A 3 "\[rpc\]" ~/$NODE_FOLDER/config/config.toml | egrep -o ":[0-9]+")\033[0m"
Last updated
Was this helpful?