https://commonwealth.im/hydradx/proposal/discussion/1230-treasury-tip-request-lenox-noderunnerscom
Если Вам помогли мои своевременные переводы по проекту HydraDX, поддержите пожалуйста мою заявку на получение наград лайком и комментарием. Спасибо!
В этой главе мы проведем вас через настройку локального мониторинга для вашей Ноды валидатора.
Предпосылки
У вас должна быть запущена Нода валидатора.
Это руководство было протестировано на версии Ubuntu 20.04 LTS.
Установка Prometheus
На первом этапе мы настроим сервер Prometheus.
Пользователь и каталоги
Мы создаем пользователя только для целей мониторинга, у которого нет домашнего каталога и который не может использоваться для входа в систему.
sudo useradd --no-create-home --shell /usr/sbin/nologin prometheus
Затем мы создаем каталоги для исполняемого файла и файла конфигурации.
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus
Измените владельца каталогов, чтобы разрешить доступ к ним нашему новому пользователю мониторинга.
sudo chown -R prometheus:prometheus /etc/prometheus
sudo chown -R prometheus:prometheus /var/lib/prometheus
Установим Prometheus
Проверьте номер последней версии Prometheus на странице проекта в GitHub.
На момент написания данной стать актуальная версия v2.25.2. Вставьте ссылку с последней версией в следующие команды.
скачайте prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.25.2/prometheus-2.25.2.linux-amd64.tar.gzраспакуйте архив с бинарными файлами
tar xfz prometheus-*.tar.gzвойдите в распакованную директорию
cd prometheus-2.25.2.linux-amd64
Теперь скопируйте двоичные файлы в локальную папку.
sudo cp ./prometheus /usr/local/bin/
sudo cp ./promtool /usr/local/bin/
Теперь нам нужно назначить эти двоичные файлы нашему только что созданному пользователю.
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool
Далее мы скопируем веб-интерфейс и предустановки конфигурации.
sudo cp -r ./consoles /etc/prometheus
sudo cp -r ./console_libraries /etc/prometheus
Возможно, вы уже догадались, но мы также меняем владельца этих каталогов.
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries
Теперь у нас есть все, что нам нужно из загруженного архива, поэтому мы вернемся на шаг назад и проведем некоторую чистку.
cd .. && rm -rf prometheus*
Давайте создадим файл конфигурации YAML
для Prometheus с помощью редактора по вашему выбору (nano / vim / pico).
sudo nano /etc/prometheus/prometheus.yml
Наш конфигурационный файл разделен на три раздела:
- global: устанавливает значения по умолчанию для scrape_interval и интервала выполнения правила с evaluation_interval
- rule_files: указывает файлы правил, которые должен загружать сервер Prometheus
- scrape_configs: здесь вы устанавливаете ресурсы для мониторинга
Он будет у нас очень простым и в итоге получим что-то вроде этого:
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "weHaveNo.rules"
scrape_configs:
- job_name: "prometheus"
scrape_interval: 5s
static_configs:
- targets: ["localhost:9090"]
- job_name: "substrate_node"
scrape_interval: 5s
static_configs:
- targets: ["localhost:9615"]
Первое задание по очистке экспортирует данные самого Prometheus, второе - метрики узла HydraDX. Мы скорректировали scrape_interval
обоих заданий, чтобы получить более подробную статистику. Это переопределит глобальные значения. Параметр targets
в static_configs
устанавливает, на каком порту запускаются экспортеры, здесь мы придерживаемся значений по умолчанию.
После сохранения конфигурации мы снова сменим владельца.
sudo chown prometheus:prometheus /etc/prometheus/prometheus.yml
Запуск Prometheus
Чтобы Prometheus запускался автоматически и работал в фоновом режиме, мы будем использовать systemd
. Создайте новую конфигурацию (опять же с выбранным вами редактором):
sudo nano /etc/systemd/system/prometheus.service
Вставьте следующую конфигурацию и сохраните файл.
[Unit]
Description=Prometheus Monitoring
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
--config.file /etc/prometheus/prometheus.yml \
--storage.tsdb.path /var/lib/prometheus/ \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
Далее мы выполним следующие три шага: systemctl deamon-reload
загружает новые конфигурации и обновляет существующие systemctl enable
активирует нашу новую службу systemctl start
запускает выполнение службы.
Вы можете выполнить описанные выше шаги одной командой, выполнив:
sudo systemctl daemon-reload && systemctl enable prometheus && systemctl start prometheus
Теперь у вас должен быть доступ к веб-интерфейсу Prometheus по адресу http://localhost:9090/.
Node Exporter
Мы установим Node Exporter для очистки метрик сервера, которые будут использоваться в панели инструментов.
Пожалуйста, проверьте номер версии последнего выпуска здесь и обновите команду.
На момент написания последней версии была 1.1.2.
Установка Node Exporter
Загрузите последнюю версию.
wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
Распакуйте только что скачанный архив. Это создаст папку с именем node_exporter-1.1.2.linux-amd64
.
tar xvf node_exporter-1.1.2.linux-amd64.tar.gz
Затем мы копируем двоичный файл в наш локальный каталог приложения и назначаем его нашему пользователю мониторинга.
# копируем двоичный файл
cp node_exporter-1.1.2.linux-amd64/node_exporter /usr/local/bin
# назначем для него пользователя и группу
sudo chown prometheus:prometheus /usr/local/bin/node_exporter
Теперь мы можем выполнить некоторую очистку и удалить загруженный и распакованный пакет.
rm -rf node_exporter*
Создание службы Systemd
Как и в случае с prometheus, мы хотим, чтобы Node Exporter работал в качестве службы.
Создайте службу systemd с помощью выбранного вами редактора.
sudo nano /etc/systemd/system/node_exporter.service
И вставьте в него следующую конфигурацию.
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
Теперь мы активируем и запустим службу командой в одну строку.
sudo systemctl daemon-reload && systemctl enable node_exporter && systemctl start node_exporter
Добавление задания очистки для Node Exporter
Теперь Node Exporter запущен и работает, но нам нужно сказать Prometheus, чтобы он очистил свои данные.
Мы снова откроем файл конфигурации с помощью выбранного редактора.
sudo nano /etc/prometheus/prometheus.yml
А в самом низу файла мы добавим еще один конфиг для очистки.
Вставьте следующее содержимое и сохраните файл.
- job_name: 'node_exporter'
scrape_interval: 5s
static_configs:
- targets: ['localhost:9100']
Для применения конфигурации изменений требуется перезапуск службы Prometheus.
sudo systemctl restart prometheus.service
Метрики вашего сервера теперь очищены и могут быть найдены в веб-интерфейсе Prometheus.
Они нам понадобятся позже для нашей панели.
Установка Grafana
Мы можем видеть наши метрики в веб-интерфейсе, но не так, как мы хотим их отслеживать.
Мы хотим, чтобы это было красиво и лаконично. Вот где в игру вступает Grafana.
Установим Grafana
Пожалуйста, проверьте последнюю версию Grafana по этой ссылке.
Вы можете изменить номер версии в следующих командах или скопировать команды установки прямо из ссылки.
На момент написания последней версии была 7.5.1.
sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_7.5.1_amd64.deb
sudo dpkg -i grafana_7.5.1_amd64.deb
Пакет поставляется со встроенной службой systemd
, которую мы настроим и запустим так же, как службу Prometheus.
sudo systemctl daemon-reload && sudo systemctl enable grafana-server && sudo systemctl start grafana-server
Доступ к веб-интерфейсу Grafana
Мы сможем открыть веб-интерфейс Grafana по адресу http://localhost:3000/.
Логин Grafana по умолчанию:
Пользователь: admin
Пароль: admin
Настройка источника данных
Пожалуйста, нажмите на значок настроек в меню и выберите источники данных.
В следующем окне вы нажимаете «Добавить источник данных» и выбираете «Прометей».
В следующей форме вам не нужно ничего менять, кроме URL-адреса.
Установите http://localhost:9090/
и нажмите «Save and Test»
.
Импорт панели инструментов
Нажмите кнопку "Плюс"
на главной панели навигации и выберите «import»
.
Мы будем использовать панель управления HydraDX, и для ее загрузки вы просто вводите идентификатор 14158
и нажимаете кнопку «Load»
.
Здесь вам не нужно много настраивать, просто убедитесь, что Prometheus используется в качестве источника данных.
Теперь вы можете завершить импорт.
Теперь вы должны сразу увидеть свою панель управления.
Если некоторые панели пусты, убедитесь, что ваш выбор над панелями выглядит следующим образом:
-
Chain Metrics
: Substrate -
Chain Instance
: localhost:9615 -
Server Job
: node_exporter -
Server Host
: localhost:9100
перевод сделан с оригинальной статьи
PS
Я участвую в проекте в качестве валидатора (держу Ноду), а также помогаю команде и проекту переводя официальную документацию https://docs.hydradx.io/ на русский язык. Я публикую ее на форуме в удобном формате, а также мой перевод добавляют в русскую ветку официальной документации https://docs.hydradx.io/ru/. Переводы постоянно поддерживаются в актуальном состоянии.
Если перевод помогает Вам лучше понять проект и освоить его тонкости, значит работа проделана не зря!
Если вы являетесь держателем токенов HDX и хотите их номинировать, то в качестве одной из Нод Валидаторов могу предложить свою - LENOX | NODERUNNERS.COM
7J9hiaAK51cyDFZkUon4aPSfPGgUPuT1KDBWANeCF4j5avz2
Обязательно проверяйте заполненность Валидаторов перед номинированием (не более 64 номинаторов. Если будет больше - то приоритет будет у тех у кого больше стейк), а также не забывайте номинировать в несколько Валидаторов одновременно (до 16 штук)