October 16, 2022

Как создать систему оповещения для валидатора

Систему оповещения можно устанавливать как на новом сервере, так и на сервере, на котором у вас стоит нода.

Арендовать сервер можно на Hetzner.

Подготовка сервера

Для начала обновим сервер:

apt update
apt upgrade

Установим необходимые дополнительные пакеты:

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

Установка докера

∎ Обновляем пакеты:

apt update

∎ Устанавливаем необходимые пакеты, которые позволяют apt использовать пакеты через HTTPS:

apt install apt-transport-https ca-certificates curl software-properties-common -y

∎ Добавляем ключ GPG для официального репозитория Docker в систему:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

∎ Добавляем репозиторий Docker в источники APT:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"apt update

∎ Обновляем базу данных пакетов:

sudo apt update

Убеждаемся, что установка будет выполняться из репозитория Docker:

apt-cache policy docker-ce

Вы должны получить следующий вывод, хотя номер версии Docker может отличаться:

docker-ce: 
   Installed: 5:20.10.19~3-0~ubuntu-focal
   Candidate: 5:20.10.19~3-0~ubuntu-focal
   Version table:
 *** 5:20.10.19~3-0~ubuntu-focal 500
        500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
        100 /var/lib/dpkg/status

Устанавливаем докер:

sudo apt install docker-ce -y

Настройка

Устанавливаем tenderduty:

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

Скачиваем конфигурацию на русском языке от @lesnik13utsa:

wget -O $HOME/tenderduty/config.yml "https://raw.githubusercontent.com/lesnikutsa/lesnik_utsa/main/monitoring/TenderDuty(ru)/config.yml"

Открываем редактор:

nano $HOME/tenderduty/config.yml

Находим поле # Удобное для пользователя имя, которое будет использоваться для меток. Настоятельно рекомендую заключить в кавычки. В кавычках вместо "aura" пишем любое название, например "Haqq".

В поле ниже должно быть:

chain_id: haqq_54211-3

В строке ниже укажите свой валопер адрес:

valoper_address: haqqvaloper1xxxxxxxxxxxxxxxxxx

Листаем ниже и находим строку # URL-адрес конечной точки. Должен включать protocol://hostname:port. Ниже вставьте:

- url: http://142.132.202.50:11601

В строках ниже после # Должны ли мы отправить предупреждение, если этот хост не отвечает? замените yes на no:

alert_if_down: no

Нажимаем CTRL+X, y, ENTER, чтобы сохранить редактирования.

Далее запускаем (менять ничего не нужно):

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

Смотрим логи:

docker logs -f tenderduty

В логах не должно быть красных крестов!

Неправильные логи:

Правильные логи:

Вводим команду, чтобы узнать адрес:

echo -e "\033[0;32mhttp://$(wget -qO- eth0.me):8888/\033[0m"

Вставляем полученный адрес в браузере:

Отлично, система оповещений готова!

Теперь система будет следить за вашим валидатором и сообщать, если возникнут ошибки!

Спасибо за внимание!

Ссылка на TG канал: https://t.me/cryptonik_space