/Storj-Utils

Storjshare-daemon utils for Linux/Unix systems & statistic

Primary LanguageShellMIT LicenseMIT

License

Compatible with Stat Storj Statistics (https://stat.storj.maxrival.com)

Compatible with storjshare daemon: 4.0.1, core: 7.0.0, protocol: 1.2.0

Current Version 1.0.5

Storj-Utils

Скрипт проверки основных параметров работы нод Storjshare-Cli для Linux.

Storj bash health script

Скрипт работает на CentOS Linux release 7.0.1406 (Core)
На других платформах не проверялся.


Для корректной работы скрипта требуется утилита netstat из пакета net-tools.
Для установки пакета:

yum install net-tools git -y

Установка

git clone https://github.com/AntonMZ/Storj-Utils.git
chmod +x Storj-Utils/health.sh

Hostname - hostname сервера где размещаются ноды
Ip - ip адреса сервера где размещаются ноды
Date - локальное время сервера где размещаются ноды
Open Sessions - количество открытых storjshare-cli tcp сессий
Storjshare Version - версия демона, ядра и протокола, используемого storjshare-cli


  • [NodeID] - уникальный идентификатор ноды.
    Данные берутся из storjshare status

  • [ResponseTime] - показатель разницы между publish и offer.
    Является показателем стабильности работы ноды, влияет на получение новых контрактов.
    Выставляется непосредственно бриджем.
    Чем ниже, тем больше шансов получить новые контракты.
    Уменьшается со временем.
    Чем стабильнее работает нода, тем меньше данный показатель.
    Данный параметр является одним из главных, который проверяет бридж при загрузке нового контракта в сеть.
    По данному параметру бридж сортирует список нод.
    Данные берутся с api.storj.io

Cтатусы
good - в пределах нормы
bad - не в пределах нормы

Для Москвы нормой считается значение данного показателя до 1000

Выставляется непосредственно бриджем.
Данные берутся с api.storj.io


  • [Address] - текущий IP адрес ноды.
    Данные берутся локально с сервера ноды.

  • [User Agent] - версия агента на ноде.

Данные берутся с api.storj.io


  • [Last Seen] - последнее время появления ноды в сети.

Последнее появление ноды в сети зафиксированное бриджем.
Данные берутся с api.storj.io


  • [Port] - порт ноды
    Данные берутся с api.storj.io

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

Cтатусы
open - порт открыт
close - порт закрыт
filtered - порт открыт, но используется через роутер или фаервол

Порт может быть закрыт по многим причинам.

Самые распространенные:

  • порт закрыт брандмауэром Windows или iptables
  • порт не "проброшен" в роутере/маршрутизаторе

  • [Protocol] - версия протокола storjshare-cli
    Данные берутся с api.storj.io

  • [Last Timeout] - последнее замеченное время недоступности ноды
    Влияет на получение новых контрактов.
    Данные берутся с api.storj.io

  • [Timeout Rate] - коэффициент бриджа между lastseen и lastimeout
    Влияет на получение новых контрактов.
    Если данный параметр выше нуля, то получение новых контрактов будет затруднительно (не принимается offer)
    Данные берутся с api.storj.io

Cтатусы
good - значение равно 0
bad - значение отличное от 0


  • [DeltaTime] - временная дельта
    Параметр показывает разницу локального времени и времени эталонного NTP сервера.
    Параметр вычисляет нода сети.

Cтатусы

bad - значение больше 500 или -500
medium - значение больше 100 или -100
good - значение меньше 100 или -100

Режим сбора статистики

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

  1. Клонируйте скрипт в нужную папку
git clone https://github.com/AntonMZ/Storj-Utils.git
  1. Отредактируйте конфигурационный файл config.cfg
LOGS_FOLDER=/root/.config/storjshare/logs
CONFIGS_FOLDER=/root/.config/storjshare/configs
WATCHDOG_LOG=/var/log/storjshare-daemon-status.log
EMAIL=az@maxrival.com

где:

  • LOGS_FOLDER – папка с логами StorjShare;
  • CONFIGS_FOLDER – папка с конфигурационными файлами StorjShare;
  • WATCHDOG_LOG – устарело;
  • EMAIL – используется для авторизации на сайте статистики.
  1. Запустите скрипт от пользователя, под которым потом будет работать задача в crontab.
health.sh

или

sudo su -l USER -c "health.sh"

где USER - пользователь, от которого будет работать crontab.

  1. Создайте задачу в crontab
crontab -e
*/5 * * * * /bin/bash /home/storj/scripts/Storj-Utils/health.sh --api > /dev/null 2>&1

Полная инструкция по работе со скриптом на сайте maxrival.com
v.1.0.1

Start repo


v.1.0.2

Добавлено:

  • вывод количества активных tcp сессий открытых storjshare-cli
  • вывод поля [ResponseTime] и статус проверки
  • вывод поля [Address]
  • вывод поля [User Agent]
  • вывод поля [Last Seen]
  • вывод поля [Port] и статус внешней проверки через api
  • вывод поля [Protocol]
  • вывод поля [Last Timeout]
  • вывод поля [Timeout Rate] и статус проверки
  • вывод поля [DeltaTime] и статус проверки

v.1.0.3

Добавлено/исправлено:

  • сканирование лог файла за день (лог файлы от storjsgare-daemon теперь генерируются за день)
  • добавлен вывод поля [Log_file]
  • исправлен вывод поля [DeltaTime] (delta может отсутствовть в лог файле за день)
  • добавлен вывод поля [Share_allocated]
  • добавлен вывод поля [Share_Used]
  • добавлен вывод поля [Last publish]
  • добавлен вывод поля [Last offer]
  • добавлен вывод поля [Last consigned]
  • добавлен вывод поля [Last download]
  • добавлен вывод поля [Last upload]
  • добавлен вывод поля [Offers counts]
  • добавлен вывод поля [Publish counts]
  • добавлен вывод поля [Download counts]
  • добавлен вывод поля [Upload counts]
  • добавлен вывод поля [Consignment counts]

MIT License

Copyright (c) 2017 Anton Zheltyshev

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.