Использование health скрипта для проверки Storj нод.


Для тех кто использует **storjshare-daemon** под linux, будет интересен в использовании скрипт диагностики работы Storj нод.

Storkshare-daemon healt script

Скрипт написан на bash, не требует дополнительных пакетов, использует только стандартные утилиты storjshare и linux.

На данный момент доступна версия 1.0.2.

В будущей версии 2.0.1 скрипт будет переписан с использованием дополнительной утилиты linux jq.x86_64, чтобы избежать ошибок при парсинге api ответов от api.storj.io.


Для установки скопируйте файл в систему, используюя команду:
wget -O health.sh https://raw.githubusercontent.com/AntonMZ/Storj-Utils/master/health.sh

Для запуска используйте команду

sh ./health.sh

В версии скрипта 1.0.1 диагностической информации было достаточно мало, доступно было только получение ResponseTime ноды.

Данный параметр является одним из главных показателей работы ноды, но не является единственным, на который необходимо обращать внимание при появлении проблем в работе Storj нод, поэтому возникла необходимость написания дополнительных проверок, так и появилась версия 1.0.2

Скриншот работы скрипта версии 1.0.1
Storj bash health script

В версии 1.0.2 было добавлено значительное количество диагностических метрик с выводом текущего статуса каждой из метрик, что дает более детальную диагностику работы ноды, уменьшая тем самым потраченное на диагностику нод время.

Скриншот работы скрипта версии 1.0.2

Ниже представлено описание метрик, какую информацию из них можно получить и какие статусы могут быть у данных метрик в процессе запуска скрипта.


Version script:

![Storj health script](/content/images/2017/05/storj_health_script_version.png)

Версия используемого скрипта health.sh

Позднее будет включена проверка используемой версии скрипта и наличия новой версии.


Hostname:

Storj health script

FQDN имя сервера или компьютера, на котором выполняется скрипт.
В процессе работы нод не используется и может быть любым.

Данные берутся локально с сервера или компьютера.


Ip:

Storj health script

Используемый сервером или компьютером IP адрес.

Может быть как внешний, если ваше оборудование подключено напрямую к сети интернет, либо внутренним, если оборудование подключено через роутер/маршрутизатор и для работы используется NAT.

Данные берутся локально с сервера или компьютера.


Date:

Storj health script
Текущее время сервера или компьютера.

Данные берутся локально с сервера или компьютера.


Open Sessions:

![Storj health script](/content/images/2017/05/storj_health_script_sessions.png)

Текущеее количество открытых storjshare-daemon tcp сессий.

В моменты покоя, когда Storj сетью не осуществляется загрузка данных, данный показатель может быть очень низким (0-100 сессий), но в момент загрузки может достигать от 500 до 10000 открытых сессий.

Большое количество открытых сессий может также наблюдаться и в момент опроса фермеров, перед загрузкой партии данных от пользователей, так и при сверке контактов ваших нод и соседних нод, на которые распространяется контракт.

Чем больше данный показатель, тем лучше.

Если данный показатель никогда не меняется и постоянных соединений менее 100 в течение 2-3 дней, то стоит обратить на общую работу ноды.

Данные берутся локально с сервера или компьютера.


Storjshare Version:

Storj health script

Текущие версии демона storjshare-daemon, версия ядра и протокола.

Пользователю стоит обратить внимание на версию демона.
Желательно всегда работать с актуальной версией, так как работы с предыдущими версиями может уменьшить количество контрактов для ваших нод.

Чтобы быть в курсе выхода посдених версий storjshare-daemon, можно использовать Github для просмотра текущей версии, либо подключиться к каналу #announcements, где публикуются данные о выходе новых версий.


NodeID:

Storj health script

Уникальный идентификатор ноды в Storj сети.

Назначается непосредственно демоном storjshare-daemon при создании ноды.

Данные берутся локально с сервера или компьютера.


ResponseTime:

Storj health script

Данная метрика является одной из основных при диагностике работы Storj нод.

Назначается и регулируется непосредственно бриджем сети и показывает стабильность работы ноды.

Может увеличиваться при долгом отключении нод, частых перезагрузках нод, либо нестабильной работе нод.

Уменьшается по мере увеличения времени стабильной работы ноды.

Для Москвы нормальным показателем является значения до 1000. Вы можете выставить другие значения, который действительны для вашего региона.

По данному показателю бридж Storj сети формирует список для заключения контракта, чем ниже данный показатель, тем выше вероятность получения нового контракта.

(комментарий от тех.поддержки) Однако шарду получает та нода, чей кэш ближе к хэшу шарды

Данные берутся через API Storj сети.

Address:

Storj health script

IP адрес ноды, который фигурирует непосредственно в Storj сети.
Если на ноде используется непосредственно внешний адрес, то данный ip адрес будет совпадать с данными из строки Ip.

Если на ноде используется локальной ip адрес (192.168.x.x), то строки Ip и Address будут различаться, и в строке Address будет выводиться непосредственно внешний адрес, по которому доступна нода.

Данные берутся через API Storj сети.


User Agent:

Storj health script

Версия агента используемого storjshare-daemon.

Данные берутся через API Storj сети.


Last Seen:

Storj health script

Время последнего появления ноды в сети.

Данные берутся через API Storj сети.


Port:

Storj health script

В данном пункте отображается номер порта, который установлен в конфигурационном файле ноды, считывается бриджем сети, и используется для работы ноды.

Данные берутся через API Storj сети.

При работе скрипта также осуществляется проверка доступности порта (открыт/закрыт) через внешний api ресурс.

Статус порта может принимать значения open | closed | filtered | wrong parametrs.

Для стабильной работы Storj ноды, статус порта всегда должен быть в состоянии open. Если данный статус отличается от open, то необходимо внести правильные настройки в используемый роутер/маршрутизатор, либо более дательно изучить работу сети провайдера, возможно используется двойной NAT.


Protocol:

Storj health script

Версия протокола используемого storjshare-daemon.

Данные берутся через API Storj сети.


Last Timeout:

Storj health script
Последнее замеченное время недоступности ноды.

Данные берутся через API Storj сети.


Timeout Rate:

Storj health script

Коэффициент бриджа между Last Seen и Last Timeout

Является одним из ключевых показателей работы ноды.

Если данный показатель не равен нулю, то вероятность получения нового контракта практически нулевая, так как бридж распределяет контракты сначала среди тех нод, которые имеют наименьший Timeout Rate. Соответственно чем выше у вас Timeout Rate, тем дальше ваше нода в общем списке нод (на данный момент >21тыс.) Стоит проверить стабильность работы ноды.

Обновляется примерно раз в сутки. Данные берутся через API Storj сети.

DeltaTime:

Storj health script

При диагностике работы нод необходимо обратить свое внимание на данный показатель.

В строке отображается дельта времени между локальным временем и эталонным NTP сервером для бриджа Storj сети.

Данный показатель должен быть в пределах 500мс и -500мс.

В противном случае бридж будет считать ноду нестабильной, и новые контракты с такой нодой заключаться не будут.

Идеальным значениями являются значения до 100мс и -100мс

Данные берутся локально из лог файлов.

Для синхронизации времени необходимо использовать ntpdate для linux и правильный localtime файл.

Для нормального отображения данной метрики, в конфигурационном файле ноды должен быть включен 3й режим логирования. При работе, скрипт проверяет включен или нет данный режим в конфигурационном файле ноды, о чем сообщит отдельной строкой, при этом параметр DeltaTime отображаться не будет.


Вопросы и пожаления по работе скрипта, а также pull request'ы вы всегда можете присылать на Github страницу проекта.



Comments: