项目作者: AntonMZ

项目描述 :
Storjshare-daemon utils for Linux/Unix systems & statistic
高级语言: Shell
项目地址: git://github.com/AntonMZ/Storj-Utils.git
创建时间: 2017-05-22T23:14:16Z
项目社区:https://github.com/AntonMZ/Storj-Utils

开源协议:MIT License

下载


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.

Для установки пакета:

  1. yum install net-tools git -y

Установка

  1. git clone https://github.com/AntonMZ/Storj-Utils.git
  2. 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. Клонируйте скрипт в нужную папку
    1. git clone https://github.com/AntonMZ/Storj-Utils.git
  2. Отредактируйте конфигурационный файл config.cfg
    1. LOGS_FOLDER=/root/.config/storjshare/logs
    2. CONFIGS_FOLDER=/root/.config/storjshare/configs
    3. WATCHDOG_LOG=/var/log/storjshare-daemon-status.log
    4. EMAIL=az@maxrival.com
    где:
  • LOGS_FOLDER – папка с логами StorjShare;
  • CONFIGS_FOLDER – папка с конфигурационными файлами StorjShare;
  • WATCHDOG_LOG – устарело;
  • EMAIL – используется для авторизации на сайте статистики.
  1. Запустите скрипт от пользователя, под которым потом будет работать задача в crontab.

    1. health.sh

    или

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

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

  2. Создайте задачу в crontab

    1. crontab -e
    2. */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.