βš’οΈ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

For simple monitoring without notifications, just change in the config: network name; chain-id; valoper_address; url

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