Задание 11
Тут нужно сделать бэкап ноды, ставим 2ю ноду либо в другую папку, либо на новый сервис, потом идем в старую ноду:
ЕСЛИ она на другом сервере: заходим через файловую сессию, качаем себе файлы validator_key.json и node_key.json (папка .near) и копируем их в папку root на новом сервере
ЕСЛИ она та том же сервере: находим файлы validator_key.json и node_key.json (папка .near) и просто запоминаем к ним путь
Теперь в терминал новой ноды(выполняем команды внимательно, так как нужно будет отправить скрин в отчет выполнения всех этих команд подряд):
Код:
cd .near
cat node_key.json | grep public_key
sudo systemctl stop neard
rm node_key.json
cp <PATH>/node_key.json /root/.near
cp <PATH>/validator_key.json /root/.near
#заменить <PATH> на путь к файлу
#пример(если вы положили в папку рут файл): cp /root/node_key.json /root/.near
cat node_key.json | grep public_key
sudo systemctl start neard
journalctl -n 100 -f -u neard | ccze -A
Отчет: вот такой скрин, желательно одной фоткой)) форма другая
тут
Задание 12
Написать скрипт для авто бэкапа ноды
Идем в терминал:
создаем директорию:
Создаем скрипт, который будет делать бекап(перед этим получить необходимый урл, как - описано ниже):
Код:
vi backup.sh
#откроется вим
Копируем полностью и вставляем:
Код:
#!/bin/bash
DATE=$(date +%Y-%m-%d-%H-%M)
DATADIR=/root/.near/data
BACKUPDIR=/root/reserve/near_${DATE}
rm -rf /root/reserve/*
mkdir $BACKUPDIR
sudo systemctl stop neard
wait 5
echo "NEAR node was stopped"
if [ -d "$BACKUPDIR" ]; then
echo "Backup started"
cp -rf $DATADIR ${BACKUPDIR}/
tar -cvf /root/reserve/near_${DATE}.tar $BACKUPDIR
rm -rf /root/reserve/near_${DATE}
curl -fsS -m 10 --retry 5 -o /dev/null <URL>
echo "Backup completed"
else
echo $BACKUPDIR is not created. Check your permissions.
exit 0
fi
sudo systemctl start neard
echo "NEAR node was started"
#заменить <URL> на свой
#сохраняем и выходим из вима
Как получить урл?
В этом задании мы должны настроить джобу, которая будет выполнять скрипт бекапа раз в определенное время, в скрипте есть строка, которая отправляет информацию в сервис
https://healthchecks.io/ , он в свою очередь умеет оповещать Вас по почте в том случае, если он не получил нужную информацию. Получается такая схема:
- каждый день выполняется джоба в заданное время
- джоба будет выполнять написанный скрипт
- одной из команд в скрипте - отправка информации HealthCheks
- если HealthCheks не получил информацию вовремя - значит скрипт не выполнился - он пришлет оповещение, что что-то не так
Идем на сайт
https://healthchecks.io/
Регистрируемся, вписываем почту, на почту прийдет письмо, переходим по ссылке из него, видим такое:
Ссылка посередине скрина - необходимая Вам, копируем ее и вставляем в скрипт вместо <URL>
Теперь нужно настроить крон табу (для отчета это не требуется, но если вы хотите, что бы скрипт бекапа работал на вашем сервере - делайте)
Код:
crontab -e
#откроется вим, добавляем туда строку ниже
0 12 * * * sh /root/backup.sh >> /root/backup.log 2>&1
Отчет: для отчета нужно закоммитить этот скрипт на ваш гитхаб(7й урок и методичка Вам в помощь, однако не нужно компилировать его) и добавить ссылку на репозиторий в отчет. форма другая
тут
Задание 13
Настроить NEAR Validator kuutamo
Задание 14
В этом задании нам предлагают настроить оповещения на почту, со следующим текстом: "Баланс Вашего валидатора "имя валидатора" на данный момент "кол-во" ниаров"
Пометка: будет работать этот скрипт в том случае, если у вас на сервере настроены нод экспрортеры и прометеус.
Для начала идем в дискорд проекта Notifi, ветка #integration-requests, заполняем форму на получение креденций, они прийдут Вам на почту, когда менеджер обработает запрос.
Создаем директорию для будущего скрипта, я ее создала в папке /root/scripts:
Код:
mkdir notifi
cd notifi
Инициализируем node.js проекта:
Устанавливаем зависимости:
Код:
npm install typescript --save-dev
npm install @types/node --save-dev
Создаем конфиг файл(копируем одной командой):
Код:
npx tsc --init --rootDir src --outDir build \
--esModuleInterop --resolveJsonModule --lib es6 \
--module commonjs --allowJs true --noImplicitAny true
Создаем папку и файл тайпскрипта:
Код:
mkdir src
touch src/index.ts
Правим конфиг:
#добавлем: , "DOM" в поле "lib", как на скрине
Теперь берем скрипт (у меня в телеграмме) и кладем его в директорию /root/scripts/notifi/src
Заходим в него через вим и меняем на свои значения:
Код:
cd /root/scripts/notifi/src
vi index.ts
#меняем <NAME> на свое значение XX.factory.shardnet.near
#меняем <URL> на свое значение
#меняем <SID> на свое значение
#меняем <SECRET> на свое значение
#меняем <TOPIC> на свое значение
Правим конфиг:
Код:
cd /root/scripts/notifi
vi package.json
#в итоге должен выглядеть так, как на скрине ниже
Устанавливаем доп тулзы:
Код:
sudo npm i @notifi-network/notifi-node
Запускаем билд и скрипт:
Идем на почту и смотрим результат!
Отчет: заполняем эту
форму, в нее отправляем скрин присланного письма от Notifi
Задание 15
Тут нужно доработать нашу графану вот такими показателями:
- Block Height - near_block_height_head
- Total Transactions - near_transaction_processed_successfully_total
- Block Processed - rate(near_block_processed_total[$__rate_interval])
- Blocks Per Minute - near_blocks_per_minute
- Validators - near_is_validator - near_validator_active_total
- Chunk - histogram_quantile(0.95, sum(rate(near_chunk_tgas_used_hist_bucket[$__rate_interval])) by (le))
- Block Processing - rate(near_block_processing_time_count[$__rate_interval])
- Transactions Pool Entries - near_transaction_pool_entries
- Blocks Per Minute - near_blocks_per_minute
- Processed Total Transactions - rate(near_transaction_processed_total[$__rate_interval])
- Processed Successfully Transactions - rate(near_transaction_processed_successfully_total[$__rate_interval])
- Reachable Peers - near_peer_reachable
- Chunk Tgas Used - near_chunk_tgas_used
- Block Processing Time Count - rate(near_block_processing_time_count[$__rate_interval])
- Node is validator
- Missed blocks
- Percent of produced blocks
- Missed chunks
- Percent of produced chunks
- Connected peers
- Total validator stake
А так же показатели вашего "железа"
Отчет: форма вот
тут