Categorygithub.com/NolikTop/watcher
modulepackage
0.0.0-20220207205840-bc29873c2527
Repository: https://github.com/noliktop/watcher.git
Documentation: pkg.go.dev

# README

watcher

Watcher следит за указанными ему серверами. Если какой-то из серверов прекратил работу, watcher предупредит Вас об этом

Watcher умеет следить за tcp, udp, rcon, raknet, http серверами.

Если вы хотите следить за состоянием сервера Minecraft (Pocket/Bedrock edition), используйте raknet и/или rcon.

Проверяя подключение к raknet можно понять, жив ли поток raknet, осуществляющий коммуникацию клиента майнкрафта и сервера.

Проверяя подключение к rcon можно понять, жив ли главный поток сервера.

messages from watcher

Установка

Для нормальной работы Watcher рекомендуется иметь версию Go 1.17 или выше

go install github.com/NolikTop/watcher@latest

Запуск

watcher -config=путь/до/конфига.json

Конфиг

Пример конфига:

{
  "chats": [
    {
      "name": "web",
      "method": "vk",
      "data": {
        "chat_id": 1,
        "access_token": "abcdef"
      }
    },
    {
      "name": "minecraft",
      "method": "vk",
      "data": {
        "chat_id": 2,
        "access_token": "abcdef"
      }
    }
  ],
  "servers": [
    {
      "name": "my raknet server",
      "addr": "127.0.0.1:19132",
      "protocol": "raknet",
      "chats": [
        "minecraft"
      ],
      "mentions_text": "@online"
    },
    {
      "name": "my rcon server",
      "addr": "127.0.0.1:19132",
      "protocol": "rcon",
      "chats": [
        "minecraft",
        "web"
      ],
      "mentions_text": "@online",
      "data": {
        "command": "some_command",
        "password": "abcdef"
      }
    },
    {
      "name": "my http server",
      "addr": "127.0.0.1:8008",
      "protocol": "http",
      "chats": [
        "web"
      ],
      "mentions_text": "@all"
    },
    {
      "name": "my tcp server",
      "addr": "127.0.0.1:3456",
      "protocol": "tcp",
      "chats": [
        "web"
      ],
      "mentions_text": "@all"
    },
    {
      "name": "my udp server",
      "addr": "127.0.0.1:1234",
      "protocol": "udp",
      "chats": [
        "web"
      ],
      "mentions_text": "@online",
      "data": {
        "send_bytes_base64": "c29tZSBieXRlcw=="
      }
    }
  ]
}
ПолеОписание
chatsсписок чатов
serversсписок серверов

Сервер

Описание обязательных полей

ПолеОписание
nameимя сервера (нужно для уведомлений, чтобы Вы поняли какой именно сервер упал)
addrадрес сервера
protocoltcp/udp/raknet/rcon/http. Протокол, используемый сервером
chatsсписок названий способов связи, в которые будет писаться информация о падении сервера
mentions_textстрока, содержащая список упоминаний пользователей, которые ответственны за данный сервер
dataдополнительные данные

Также могут быть дополнительные данные (пишутся в поле "data") в зависимости от используемого протокола.

Для UDP сервера:

ПолеОписание
send_bytes_base64base64 байтов, после отправки которых watcher должен получить ответ от UDP сервера

Для RCON сервера:

ПолеОписание
commandкоманда, которая будет отправлена серверу
passwordпароль RCON

Чат

Чат — способ связи с разработчиком. Это не обязательно может быть в привычном нам понимании чат, здесь это просто некоторый способ доставки сообщений разработчику.

Описание обязательных полей

ПолеОписание
nameимя чата (далее используется в поле сервера "chats")
methodметод (название соц-сети/мессенджера) через который watcher сможет достучаться до разработчика. Пока доступное значение только "vk" (ВКонтакте)
dataдополнительные данные

Также могут быть дополнительные данные (пишутся в поле "data") в зависимости от используемого метода.

Для метода vk:

ПолеОписание
chat_idid чата
access_tokenтокен с доступом к сообщениям

Как watcher проверяет?

Watcher раз в определенное время проверяет возможность подключения к серверу. Если к серверу не удалось подключиться (или он ничего не вернул в случае UDP), то проверка считается проваленной.

Если последняя проверка watcher'а была проваленной, то watcher будет проверять каждую секунду, пока результат проверки не станет успешным

# Packages

No description provided by the author
No description provided by the author