βοΈTenderDuty v2 - monitoring and alerting
Tenderduty is a comprehensive monitoring tool for Tendermint networks. More details can be found here - https://github.com/blockpane/tenderduty
This monitoring of TenderDuty v2 allows you to control the nodes and, in particular, see the height of the network, the status of the validator, uptime, signed and skipped blocks. It is also possible to connect notifications to telegrams and discord
Installation is possible in various ways, but I will use installation via Docker, although there is no fundamental difference So, we need a separate server (which definitely gives a security plus) or a server with an already installed node (nodes). You will also need to find open RPCs or open your own on the main (not desirable) or backup node
Install
apt update && sudo apt upgrade -y
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
# Now you can download the config and edit it (Russian language)
wget -O $HOME/tenderduty/config.yml "https://raw.githubusercontent.com/lesnikutsa/lesnik_utsa/main/monitoring/TenderDuty(ru)/config.yml"
nano $HOME/tenderduty/config.yml
Example config file
---
# ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π»ΠΈ ΠΏΠ°Π½Π΅Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°
enable_dashboard: yes
# ΠΠ°ΠΊΠΎΠΉ TCP-ΠΏΠΎΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°
listen_port: 8888
# hide_log ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π΅ΡΠ»ΠΈ ΠΏΠ°Π½Π΅Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ. ΠΠ½ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ ΠΊΠ°Π½Π°Π» ΠΆΡΡΠ½Π°Π»Π°,
# ΠΈ ΡΠΊΡΡΠ²Π°Π΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π΄Π΅ΡΠ°Π»Π΅ΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ ΡΠ·Π»ΠΎΠΌ. ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ΅Π½ΠΈΡ
# ΡΡΠ΅ΡΠΊΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ
ΡΠ·Π»ΠΎΠ² ΠΈ Ρ.Π΄.
hide_logs: no
# Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°ΡΡ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠΏΠΎΠ²Π΅ΡΡΠΈΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ·Π΅Π» Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
node_down_alert_minutes: 3
# ΠΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ Π±ΡΡΡ Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠΊΡΠΏΠΎΡΡΠ΅Ρ prometheus?
prometheus_enabled: yes
# ΠΠ°ΠΊΠΎΠΉ ΠΏΠΎΡΡ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°ΡΡ?
prometheus_listen_port: 28686
# ΠΠ»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°
pagerduty:
# ΠΠΎΠ»ΠΆΠ½Ρ Π»ΠΈ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PD? ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ no, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΏΠΎΡΠΊΠΈ.
enabled: no
# ΠΡΠΎ ΠΊΠ»ΡΡ API, Π° Π½Π΅ ΡΠΎΠΊΠ΅Π½ oauth, Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π½ΠΈΠΆΠ΅, Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ v1.
api_key: aaaaaaaaaaaabbbbbbbbbbbbbcccccccccccc
# Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, Π½ΠΎ ΡΠΊΠΎΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΡ ΡΡΠΊΠ°Π»Π°ΡΠΈΠΈ ΠΈ Ρ.Π΄.
default_severity: alert
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Discord
discord:
# ΠΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΡ Π² discord?
enabled: no
# Webhook Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅Π»ΡΠΊΠΎΠΌ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ Π½Π° ΠΊΠ°Π½Π°Π»Π΅, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ webhook Π² ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ.
webhook: https://discord.com/api/webhooks/999999999999999999/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Telegram
telegram:
# ΠΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ Π² Telegram? ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΠ°ΠΊΠΆΠ΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΎΡΠ½ΠΎΡΡΡΠΈΠ΅ΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ
enabled: no
# ΠΠ»ΡΡ API ... ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Ρ @BotFather
api_key: '5555555555:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
# ID Π³ΡΡΠΏΠΏΡ ΡΠ°ΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ
channel: "-666666666"
# Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ, ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Ρ. Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΡ Π·Π°ΠΏΠΈΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΡΠΈ
chains:
# Π£Π΄ΠΎΠ±Π½ΠΎΠ΅ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠΊ. ΠΠ°ΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ Π·Π°ΠΊΠ»ΡΡΠΈΡΡ Π² ΠΊΠ°Π²ΡΡΠΊΠΈ
"aura":
# chain_id ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠ΅ RPC, ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΌΠ΅ΡΠΊΠΈ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ
ΠΌΠ΅ΡΡΠ°Ρ
chain_id: euphoria-1
# Π£ΡΠ°, Π² Π²Π΅ΡΡΠΈΠΈ v2 ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ valcons ΠΈΠ· Π·Π°ΠΏΡΠΎΡΠΎΠ² abci, ΡΠ°ΠΊ ΡΡΠΎ Π²Π°ΠΌ Π½Π΅ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΡΠ³Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΡΡΠΈ, ΡΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΊΠ»ΡΡΠΈ ed25519 Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π°Π΄ΡΠ΅Ρ bech32
valoper_address: auravaloper10...
# ΠΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ Π²Π΅ΡΠ½ΡΡΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΡΠΎΡΠ΅ΠΊ API, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΠ·Π»Ρ RCP Π²ΡΠΉΠ΄ΡΡ ΠΈΠ· ΡΡΡΠΎΡ?
# ΠΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π½Π°Π΄Π΅ΠΆΠ½ΠΎ, Π½Π΅ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ·Π»Ρ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ ΠΏΡΠΎΠΊΡΠΈ-ΡΠ΅ΡΠ²Π΅ΡΠ° websocket.
public_fallback: yes
# Π£ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΡΠΈ
alerts:
# ΠΡΠ»ΠΈ ΡΠ΅ΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ Π²ΠΈΠ΄Π΅ΡΡ Π½ΠΎΠ²ΡΠ΅ Π±Π»ΠΎΠΊΠΈ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅?
stalled_enabled: yes
# Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΠΈ Π² ΠΌΠΈΠ½ΡΡΠ°Ρ
, ΡΡΠΎΠ±Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΠ³Π½Π°Π» ΡΡΠ΅Π²ΠΎΠ³ΠΈ
stalled_minutes: 10
# Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠ³Π½Π°Π» ΡΡΠ΅Π²ΠΎΠ³ΠΈ, Π²Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΡΠΎΠΏΡΡΡΠΈΠ»ΠΈ x Π±Π»ΠΎΠΊΠΎΠ²... Ρ
ΠΎΡΠ΅Π»ΠΈ Π±Ρ Π²Ρ Π·Π½Π°ΡΡ?
consecutive_enabled: yes
# Π‘ΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΡ
Π±Π»ΠΎΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅
consecutive_missed: 5
# ΠΠ ΠΠ‘ΠΠΠΠ¬ΠΠ£ΠΠ’Π‘Π―: Π±ΡΠ΄ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° Π΄Π»Ρ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ pagerduty
consecutive_priority: critical
# ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΡΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π±Π»ΠΎΠΊΠΎΠ² ΠΈ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΡΡ
Π±Π»ΠΎΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΡΡΡΡΠΌΠ΅
# Π‘Π»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°?
percentage_enabled: no
# ΠΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ·Π²Π°ΡΡ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠ΅
percentage_missed: 10
# ΠΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΠΎ ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΠΈ pagerduty
percentage_priority: warning
# ΠΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈ Π±ΡΡΡ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π²Π°Π»ΠΈΠ΄Π°ΡΠΎΡ Π½Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ Π½Π°Π±ΠΎΡΠ΅, Ρ.Π΅. Π·Π°ΠΊΠ»ΡΡΠ΅Π½ Π² ΡΡΡΡΠΌΡ, tombstoned, Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½?
alert_if_inactive: yes
# Π‘Π»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ RPC-ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ? (ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎΡ ΡΠΈΠ³Π½Π°Π» ΡΡΠ΅Π²ΠΎΠ³ΠΈ ΠΏΠΎΠ΄Π°Π΅ΡΡΡ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Π±Π΅Π· Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ)
alert_if_no_servers: yes
# Π΄Π»Ρ ΡΡΠΎΠΉ *ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ* ΡΠ΅ΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΎΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ Π°Π΄ΡΠ΅ΡΠ° api_key ΠΈΠ»ΠΈ webhook ΠΏΡΡΡΡ,
# ΡΠΎ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π΄Π»Ρ pagerduty
pagerduty:
enabled: yes
api_key: "" # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΡΡΡΠΎ
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Discord
discord:
enabled: yes
webhook: "" # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΡΡΡΠΎ
# ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ Telegram
telegram:
enabled: yes
api_key: "" # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΡΡΡΠΎ
channel: "" # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΡΡΡΠΎ
# Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π½Π°ΡΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ RPC. ΠΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ LCD (ΠΎΠ½ΠΈ ΠΆΠ΅ REST) Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ RPC
# Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ
ΠΎΡΡΠΎΠ², ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π½Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π° ΡΠ°Π±ΠΎΡΠ°Ρ RPC
nodes:
# URL-Π°Π΄ΡΠ΅Ρ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ ΡΠΎΡΠΊΠΈ. ΠΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡΡΠ°ΡΡ protocol://hostname:port
- url: https://snapshot-1.euphoria.aura.network:443
# ΠΠΎΠ»ΠΆΠ½Ρ Π»ΠΈ ΠΌΡ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΡΡΠΎΡ Ρ
ΠΎΡΡ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ?
alert_if_down: yes
# ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠ΅ Ρ
ΠΎΡΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½ΠΎΡΡΠΈ
# - url:
# alert_if_down: no
# - url:
# alert_if_down: no
################################################################################
# ΠΠ°Π»Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΡΠΎΡΡΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅ΡΠΈ... Π Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅#
################################################################################
#chains:
# "L1":
# chain_id: genesis_29-2
# valoper_address: genesisvaloper1...
# public_fallback: yes
# alerts:
# stalled_enabled: yes
# stalled_minutes: 10
# consecutive_enabled: yes
# consecutive_missed: 5
# consecutive_priority: critical
# percentage_enabled: no
# percentage_missed: 10
# percentage_priority: warning
# alert_if_inactive: yes
# alert_if_no_servers: yes
# pagerduty:
# enabled: yes
# api_key: "" # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΡΡΡΠΎ
# discord:
# enabled: yes
# webhook: "" # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΡΡΡΠΎ
# telegram:
# enabled: yes
# api_key: "" # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΡΡΡΠΎ
# channel: "" # ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΡΡΡΠΎ
# nodes:
# - url:
# alert_if_down: yes
# - url:
# alert_if_down: no
# - url:
# alert_if_down: no
# - url:
# alert_if_down: no
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
# logs
docker logs -f --tail 20 tenderduty
Now is the time to check the information 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://108.108.108.108:8888/
Discord setup
It's pretty easy to turn on notifications for Discord. To do this, you need to perform just a few steps
After all these manipulations, we restart the monitoring and the alarms will come to the discord!
Last updated