Показать сообщение отдельно
Непрочитано 23.12.2022, 13:43   #5
Ekaterina Kulikova
Member
 
Регистрация: 20.07.2022
Сообщений: 99
По умолчанию

Задание 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

Написать скрипт для авто бэкапа ноды

Идем в терминал:

создаем директорию:

Код:
mkdir /root/reserve
Создаем скрипт, который будет делать бекап(перед этим получить необходимый урл, как - описано ниже):

Код:
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 init -y
Устанавливаем зависимости:

Код:
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
Правим конфиг:

Код:
vi tsconfig.json
#добавлем: , "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
Запускаем билд и скрипт:

Код:
npm run start
Идем на почту и смотрим результат!
Отчет: заполняем эту форму, в нее отправляем скрин присланного письма от Notifi


Задание 15


Тут нужно доработать нашу графану вот такими показателями:
  1. Block Height - near_block_height_head
  2. Total Transactions - near_transaction_processed_successfully_total
  3. Block Processed - rate(near_block_processed_total[$__rate_interval])
  4. Blocks Per Minute - near_blocks_per_minute
  5. Validators - near_is_validator - near_validator_active_total
  6. Chunk - histogram_quantile(0.95, sum(rate(near_chunk_tgas_used_hist_bucket[$__rate_interval])) by (le))
  7. Block Processing - rate(near_block_processing_time_count[$__rate_interval])
  8. Transactions Pool Entries - near_transaction_pool_entries
  9. Blocks Per Minute - near_blocks_per_minute
  10. Processed Total Transactions - rate(near_transaction_processed_total[$__rate_interval])
  11. Processed Successfully Transactions - rate(near_transaction_processed_successfully_total[$__rate_interval])
  12. Reachable Peers - near_peer_reachable
  13. Chunk Tgas Used - near_chunk_tgas_used
  14. Block Processing Time Count - rate(near_block_processing_time_count[$__rate_interval])
  15. Node is validator
  16. Missed blocks
  17. Percent of produced blocks
  18. Missed chunks
  19. Percent of produced chunks
  20. Connected peers
  21. Total validator stake

А так же показатели вашего "железа"

Отчет: форма вот тут
Ekaterina Kulikova вне форума   Ответить с цитированием