Настройка панели управления Grafana
Теперь, когда ваш узел запущен и работает, вам, вероятно, захочется иметь удобный способ быстро отслеживать всё, что с ним связано, чтобы убедиться, что он функционирует правильно (и какой доход он генерирует для вас).
Существует множество инструментов, которые выполняют эту задачу. Один из самых популярных называется Grafana - простая в использовании, универсальная система панелей управления, к которой можно получить доступ через браузер.
Rocket Pool поставляется с готовой поддержкой Grafana и её зависимостей; он даже включает предварительно настроенную панель для каждого Consensus-клиента. Например, вот как выглядит панель управления в тестовой сети Hoodi:

Стандартная панель управления включает следующую информацию в удобном формате:
- Верхний левый угол: важная статистика о состоянии и производительности вашей машины, а также любые ожидающие обновления системы
- Верхний правый угол: активность и производительность ваших валидаторов в Beacon Chain, а также статистика Execution и Consensus клиентов
- Нижний левый угол: детали о всей сети Rocket Pool для справки
- Нижний правый угол: детали о ваших вознаграждениях за стейкинг, как ETH, так и RPL
В этом руководстве мы покажем вам, как включить систему метрик Rocket Pool, чтобы вы могли использовать эту панель управления - или даже создать свою собственную!
Обзор стека метрик Rocket Pool
Если вы решите включить метрики во время процесса настройки Smartnode, ваш узел добавит следующие процессы:
- Prometheus - система сбора, хранения и отчётности данных, которая фиксирует все метрики, которые вы видите выше (и многие другие), и сохраняет их для анализа во времени
- Prometheus Node Exporter - сервис, который собирает информацию о состоянии вашей машины (такую как использование CPU, RAM, свободное дисковое пространство и swap-пространство и т.д.) и отправляет её в Prometheus
- Grafana, инструмент, который предоставляет данные Prometheus через удобный веб-сайт, размещённый на вашем узле
- Опциональный пользовательский набор скриптов, который будет сообщать о доступных обновлениях операционной системы в Prometheus, чтобы вы знали, нужно ли обновить вашу систему
Конфигурация по умолчанию создаст Docker-контейнеры со всеми этими сервисами, которые будут существовать вместе с остальными Docker-контейнерами Smartnode. Она откроет порт на вашей машине с узлом для Grafana, чтобы вы могли получить доступ к его панели управления с любой машины в вашей локальной сети через браузер.
Включение сервера метрик
Включение метрик в режиме Docker - самое простое из всех.
Начните с повторного запуска команды настройки Smartnode:
Перейдите в раздел Monitoring / Metrics и установите флажок Enable Metrics.
Для тех, кто предпочитает точную настройку портов, вы можете сделать это здесь. Обратите внимание, что все эти порты ограничены внутренней сетью Docker, за исключением порта Grafana - он будет открыт на вашей машине (чтобы вы могли получить к нему доступ через браузер с других машин, таких как ваш компьютер или телефон), поэтому вы можете изменить его, если порт по умолчанию конфликтует с чем-то, что у вас уже есть.
Сохраните и выйдите, и smartnode запустит Docker-контейнеры Prometheus, Node Exporter и Grafana для вас.
Он также изменит ваши Consensus и Validator клиенты, чтобы они предоставляли свои собственные метрики в Prometheus.
Трекер обновлений операционной системы и Rocket Pool не устанавливается по умолчанию для максимальной гибкости, но процесс прост. Если вы хотите установить его, чтобы ваша панель управления показывала, сколько обновлений доступно для вашей системы, вы можете сделать это с помощью этой команды:
Под капотом это установит сервис, который подключается к менеджеру пакетов вашей операционной системы, периодически проверяет наличие обновлений и отправляет эту информацию в Prometheus. Этот сервис отличается для каждой операционной системы, но было подтверждено, что он работает на следующих:
- Ubuntu 20.04+
- Debian 9 и 10
- CentOS 7 и 8
- Fedora 34
ПРИМЕЧАНИЕ
Автоматическое включение сервиса несовместимо с SELinux. Если в вашей системе SELinux включён по умолчанию (как в случае с CentOS и Fedora), команда установки выполнит большую часть работы, но также даст вам инструкции о том, как завершить процесс вручную в конце.Во время этой проверки он также сравнит установленную версию Rocket Pool Smartnode с последним релизом и сообщит вам, если доступна новая версия.
Если вы включили трекер обновлений, то последний шаг - перезапустить Node Exporter с помощью следующей команды:
После этого всё должно быть готово.
Настройка брандмауэра для разрешения подключений для мониторинга
Если у вас включён UFW, как указано в разделе Защита вашего узла, вам нужно будет открыть несколько портов, чтобы разрешить локальные подключения между Prometheus и вашими Execution/Consensus-клиентами. Следуйте инструкциям ниже.
Выполните следующее и замените порты по мере необходимости:
Затем вы можете открыть брандмауэр, чтобы разрешить внешним устройствам доступ к вашей панели управления Grafana.
Используйте это, если вы хотите получить доступ к Grafana с любой машины внутри вашей локальной сети, но запретить доступ откуда-либо ещё. Это будет наиболее распространённый случай использования.
Пожалуйста, сначала проверьте, использует ли ваша локальная сеть структуру 192.168.1.xxx.
Возможно, вам придётся изменить команду ниже, чтобы она соответствовала конфигурации вашей локальной сети, если она использует другую структуру адресов (например, 192.168.99.xxx).
Настройка Grafana
Теперь, когда сервер метрик готов, вы можете получить к нему доступ с любого браузера в вашей локальной сети.
Обратитесь к вкладкам ниже для вашего режима установки Smartnode.
Перейдите по следующему URL, заменив переменные в соответствии с вашей настройкой:
Например, если IP вашего узла был 192.168.1.5 и вы использовали порт Grafana по умолчанию 3100, то вы перейдёте по этому URL в вашем браузере:
Вы увидите экран входа, подобный этому:
Данные Grafana по умолчанию:
Затем вам будет предложено изменить пароль по умолчанию для учётной записи admin.
Выберите что-то надёжное и не забудьте его!
Если вы потеряли пароль администратора, вы можете сбросить его с помощью следующей команды на вашем узле:
Вы сможете войти в Grafana, используя учётные данные по умолчанию admin ещё раз, а затем вам будет предложено изменить пароль для учётной записи admin.
Благодаря работе участника сообщества tedsteen, Grafana автоматически подключится к вашему экземпляру Prometheus, чтобы иметь доступ к метрикам, которые он собирает. Всё, что вам нужно сделать, это получить панель управления!
Импорт панели управления Rocket Pool
Теперь, когда вы подключили Grafana к Prometheus, вы можете импортировать стандартную панель управления (или создать свою собственную, используя метрики, которые она предоставляет, если вы знакомы с этим процессом).
Начните с перехода в меню Create (значок плюса на правой боковой панели) и нажмите Import:
Когда вам будет предложено ввести ID панели управления в поле Import via grafana.com, введите 21863 или используйте полный URL ((https://grafana.com/grafana/dashboards/24900-rocket-pool-dashboard-v1-4-0/) и нажмите кнопку Load.
Вам будет предложена некоторая информация о панели управления, такая как её название и место, где вы хотите её сохранить (папка по умолчанию General подойдёт, если вы не используете много панелей управления и не хотите их организовывать).
В раскрывающемся списке Prometheus внизу у вас должен быть только один вариант с меткой Prometheus (default). Выберите этот вариант.
Ваш экран должен выглядеть так:
Если ваш совпадает, нажмите кнопку Import, и вы будете немедленно перенаправлены на вашу новую панель управления.
На первый взгляд вы должны увидеть много информации о вашем узле и ваших валидаторах.
Каждый блок поставляется с удобной всплывающей подсказкой в верхнем левом углу (значок i), на которую вы можете навести курсор, чтобы узнать о нём больше.
Например, вот всплывающая подсказка для блока Your Validator Share:
Однако мы ещё не закончили настройку - осталось ещё немного конфигурации.
Некоторые блоки (в частности, блоки APR) были временно отключены из-за того, как Shapella предоставляет снятые вознаграждения.
Они будут снова включены в будущей версии Smartnode, которая сможет правильно отслеживать исторические вознаграждения.
Настройка монитора оборудования для вашей системы
Теперь, когда панель управления запущена, вы можете заметить, что несколько блоков пусты, например SSD Latency и Network Usage. Нам нужно настроить панель управления для вашего конкретного оборудования, чтобы она знала, как их захватывать.
Температура CPU
Чтобы обновить индикатор температуры вашего CPU, нажмите на заголовок блока CPU Temp и выберите Edit из выпадающего меню. Теперь ваш экран будет выглядеть примерно так:
Это режим редактирования Grafana, где вы можете изменить то, что отображается и как это выглядит. Нас интересует поле запроса, выделенное красным, справа от кнопки Metrics browser.
По умолчанию в этом поле находится:
В этом тексте есть два поля, которые в настоящее время пусты: chip и sensor.
Они уникальны для каждой машины, поэтому вам придётся заполнить их на основе того, что предоставляет ваша машина.
Для этого выполните следующие шаги:
- Удалите часть
, sensor="", чтобы она заканчивалась наchip=""}. Для ясности, всё должно быть теперьnode_hwmon_temp_celsius{job="node", chip=""}. - Поместите курсор между кавычками
chip=""и нажмитеCtrl+Spacebar. Это вызовет окно автозаполнения с доступными опциями, которое выглядит так:
- Выберите опцию, которая соответствует CPU вашей системы.
- После выбора добавьте
, sensor=""обратно в строку. Поместите курсор между кавычкамиsensor=""и нажмитеCtrl+Spacebar, чтобы получить другое меню автозаполнения. Выберите датчик, который вы хотите отслеживать.
Если вы не знаете, какой chip или sensor правильный, вам придётся попробовать их все, пока не найдёте тот, который выглядит правильно. Чтобы помочь с этим, установите пакет lm-sensors (например, sudo apt install lm-sensors в Debian / Ubuntu) и запустите команду sensors -u, чтобы показать, какие датчики есть у вашего компьютера. Вы можете попытаться сопоставить ID чипа из списка Grafana с тем, что вы видите здесь, на основе их имён и ID.
Например, это один из выходов нашей команды sensors -u:
В нашем случае соответствующий чип в Grafana - pci0000:00_0000:00:18_3, а соответствующий датчик - temp1.
После того как вы будете довольны своим выбором, нажмите синюю кнопку Apply в верхнем правом углу экрана, чтобы сохранить настройки.
Не все системы предоставляют информацию о температуре CPU - в частности, виртуальные машины или облачные системы.
Если у вас нет ничего в поле автозаполнения для chip, это, вероятно, так, и вы не сможете отслеживать температуру вашего CPU.
Задержка SSD
График SSD Latency отслеживает, сколько времени занимают операции чтения/записи. Это полезно для оценки того, насколько быстр ваш SSD, чтобы вы знали, становится ли он узким местом, если ваш валидатор страдает от плохой производительности. Чтобы обновить SSD, который вы хотите отслеживать на графике, нажмите на заголовок SSD Latency и выберите Edit.
На этом графике есть четыре поля запроса (четыре текстовых поля) с восемью частями device="" в общей сложности.
Вам нужно будет обновить первые четыре из этих частей с устройством, которое вы хотите отслеживать.
Просто поместите курсор между кавычками и нажмите Ctrl+Spacebar, чтобы получить список автозаполнения Grafana, и выберите правильную опцию оттуда для каждой из частей device="".
Вы хотите начать с самой левой пустой настройки сначала, иначе список автозаполнения может не появиться.
Если вы не знаете, какое устройство отслеживать, выполните следующую команду:
Это выведет дерево, показывающее ваш список устройств и разделов, например:
Если вы не меняли местоположение Docker по умолчанию на другой диск во время установки Smartnode, то диск, который вы хотите отслеживать, будет тем, на котором установлена ваша операционная система.
Посмотрите в столбце MOUNTPOINT на запись с меткой просто /, затем проследите её обратно до родительского устройства (того, у которого disk в столбце TYPE).
Обычно это будет sda для дисков SATA или nvme0n1 для дисков NVMe.
Если вы изменили местоположение Docker по умолчанию на другой диск, или если вы используете гибридную / нативную настройку, вы должны быть в состоянии использовать ту же технику "следования точке монтирования", чтобы определить, на каком устройстве находятся ваши данные цепочки.
Опционально вы также можете отслеживать задержку второго диска в вашей системе.
Это предназначено для людей, которые хранят свою операционную систему и данные цепочки на отдельных дисках.
Чтобы настроить это, просто следуйте инструкциям выше для последних двух полей запроса, заменив значения части device="" на значения диска, который вы хотите отслеживать.
После того как вы будете довольны своим выбором, нажмите синюю кнопку Apply в верхнем правом углу экрана, чтобы сохранить настройки.
Использование сети
Этот график отслеживает, сколько данных вы отправляете и получаете через конкретное сетевое соединение. Как и следовало ожидать, панели управления нужно знать, какую сеть отслеживать.
Чтобы изменить её, нажмите на заголовок Network Usage и выберите Edit.
На этом графике есть два поля запроса с двумя частями device="" в общей сложности.
Вам нужно будет обновить их сетью, которую вы хотите отслеживать.
Поместите курсор между кавычками и нажмите Ctrl+Spacebar, чтобы получить список автозаполнения Grafana, и выберите правильную опцию оттуда для каждой из частей device="".
Если вы не знаете, какое устройство отслеживать, выполните следующую команду:
Вывод будет выглядеть примерно так:
Посмотрите на столбец Destination для строки со значением default.
Проследуйте эту строку до столбца Iface.
Устройство, указанное там, - это то, которое вы хотите использовать - в этом примере eth0.
После того как вы будете довольны своим выбором, нажмите синюю кнопку Apply в верхнем правом углу экрана, чтобы сохранить настройки.
Общий сетевой ввод/вывод
Это отслеживает общее количество данных, которые вы отправили и получили. Вы можете найти это полезным для отслеживания, если, например, ваш интернет-провайдер ограничивает вас определённым количеством данных в месяц.
Настройка идентична блоку Network Usage выше, поэтому просто следуйте этим инструкциям и для этого блока.
Использованное дисковое пространство
Это отслеживает, насколько заполнен ваш диск операционной системы, чтобы вы знали, когда пришло время очистить (и если ваши данные цепочки находятся на том же диске, время обрезать Geth или Nethermind).
Шаги такие же, как и для блока SSD Latency выше, поэтому просто следуйте этим инструкциям и для этого блока.
Напоминаем, что вам нужен диск, который содержит раздел с / в столбце MOUNTPOINT, для этого, потому что это будет ваш диск операционной системы.
Заполните это в первое поле запроса.
Опционально вы также можете отслеживать свободное пространство второго диска в вашей системе.
Это предназначено для людей, которые хранят свою операционную систему и данные цепочки на отдельных дисках.
Настройте это, следуя тому же процессу, но вместо того, чтобы смотреть на то, какой раздел имеет / в столбце MOUNTPOINT, вам нужно искать тот, у которого есть точка монтирования вашего второго диска.
Обновите второе поле запроса диском, связанным с этим разделом.
Температура диска
Это отслеживает текущую температуру вашего диска операционной системы. Шаги такие же, как и для блока CPU Temp выше, поэтому просто следуйте этим инструкциям для этого блока, заменив значения чипа и датчика CPU на значения вашего диска операционной системы. Заполните эти значения в первое поле запроса.
Опционально вы также можете отслеживать текущую температуру второго диска в вашей системе. Настройте это, следуя тому же процессу, заменив значения чипа и датчика на значения вашего второго диска. Заполните эти значения во второе поле запроса.
Настройка панели управления
Хотя стандартная панель управления пытается хорошо охватить всё, что вы хотели бы видеть с первого взгляда, довольно легко настроить панель управления Grafana так, как вы хотите. Вы можете добавлять новые графики, изменять внешний вид графиков, перемещать вещи и многое другое!
Взгляните на страницу Учебные материалы Grafana, чтобы узнать, как с ней играть и настроить её по своему вкусу.
Настройка стека метрик
Инструменты, используемые в стеке метрик Rocket Pool, предлагают широкий спектр параметров конфигурации, выходящих за рамки того, что включено в стандартную установку Rocket Pool. Этот раздел включает примеры конфигурации для различных случаев использования.
В общем, параметры конфигурации Grafana должны передаваться с использованием переменных окружения в override/grafana.yml. Любой параметр конфигурации может быть преобразован в переменную окружения с использованием следующего синтаксиса:
Настройки SMTP Grafana для отправки электронных писем
Чтобы отправлять электронные письма из Grafana, например, для оповещений или для приглашения других пользователей, необходимо настроить настройки SMTP в стеке метрик Rocket Pool. См. страницу конфигурации SMTP Grafana для справки.
Откройте ~/.rocketpool/override/grafana.yml в текстовом редакторе.
Добавьте раздел environment ниже строки x-rp-comment: Add your customizations below this line, заменив значения ниже на значения для вашего SMTP-провайдера.
Если используется Gmail и включена двухэтапная проверка, создайте пароль приложения для этого сервиса.
После внесения этих изменений выполните следующее, чтобы применить изменения:
Чтобы протестировать настройки SMTP, перейдите в меню Alerting и нажмите Contact points.
Нажмите New contact point и выберите Email в качестве типа контактной точки. Введите адрес электронной почты в разделе Addresses и нажмите Test.
Проверьте, что тестовое письмо было получено. Нажмите Save contact point* по завершении.