Skip to content

Latest commit

 

History

History
166 lines (110 loc) · 5.91 KB

monitoring.md

File metadata and controls

166 lines (110 loc) · 5.91 KB

🠔 Back

TenderDuty — monitoring and alerting tool


Tenderduty is a comprehensive monitoring tool for Tendermint chains. Its primary function is to alert a validator if they are missing blocks, and has many other features.


Installation

Preparing the server for installation (one command)

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

Installing docker (one command)

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

Installing Tenderduty

mkdir tenderduty && cd tenderduty

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

Download the config optimized for OKP4 and add the necessary values

wget -O $HOME/tenderduty/config.yml "https://github.com/cryptobtcbuyer/Testnet_guides/blob/main/OKP4/config.yml"

nano $HOME/tenderduty/config.yml

You need to insert your valoper address #valoper_address: okp4valoper...

For more reliability, you can add more RPC

Then to exit hit the following keys:

  1. To exit your config.yml file: CTRL + X
  2. To select yes to save your modified file: Y
  3. To confirm the file name and exit: ENTER

Run the container after editing the config

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 logs

docker logs -f --tail 20 tenderduty

Open monitoring dashboard in the browser

# find out your address and paste it into the browser
echo -e "\033[0;32mhttp://$(wget -qO- eth0.me):8888/\033[0m"
# http://120.120.120.120:8888/

Great! Everything works!


Setting up alerts in Telegram


Tenderduty can send notifications about missed blocks to Telegram Group.

The first thing we need to do is create our own bot. Launch the@botfather. Enter the /newbot command and follow the prompts. You will create a bot and get an api key that you need to keep in a safe place and not show to anyone.

Create a group and invite the bot you just created to join it. And to allow the bot to post messages you need to make it an admin.To do this, open the group menu and select the Manage group section and then Administrators.

You need to link the bot and the channel to your Tenderduty configuration. To do so, you need to retrieve the channel ID from your newly created group.

Launch the bot @username_to_id_bot and send him an invitation to your group. To get a link to the group, go back to the menu Manage group and select the section Invite links

After you send the link, the bot will send you the ID of your group

Add the group id and api key that you received from the @botfather to the config

Restart the container and check logs

docker restart tenderduty

docker logs -f --tail 20 tenderduty

You will receive alerts if the node starts skipping blocks or the RPC server crashes


Setting up alerts in Discord


Tenderduty can send notifications about missed blocks to Discord.

To do this, you need to create a new server and new channel.

Open the server menu and select Integration section and go to the webhooks.

Create a webhook, copy the URL and paste it into the config.

Restart the container and check logs

docker restart tenderduty

docker logs -f --tail 20 tenderduty

You will receive alerts if the node starts skipping blocks or the RPC server crashes