Skip to content

facilisdes/sqt

Repository files navigation

SQT - server queued tester

Модуль первый - configPacker

Отвечает за генерацию, сборку и распаковку шифруемого файла конфигурации для сервера.

Создание базового конфига (файл .sqt_raw):

configPacker generate

Затем, после внесения нужных изменений производится сборка закрытого конфига (.sqt_raw → .sqt):

configPacker pack

При необходимости производится распаковка конфига (.sqt → .sqt_raw):

configPacker unpack

Модуль второй - server

Отвечает за получение команд, их обработку и отправку ответа. Использует как закрытый, так и открытый конфиги. Запуск:

server

Локальная конфигурация (адрес и доступы к серверу кеша и серверу БД, порт для соединений) читается из файла .sqtconfig, глобальная (параметры работы очереди) - из файла .sqt. Файлы должны находиться в той же директории, что и исполняемые файлы.

Модуль третий - client

Отвечает за запрос команд, разбор и проверка ответов. Отправка одной команды на проверку ключа key на сервере 127.0.0.1 в режиме healthcheck (игнорируем очередь):

client -key=key -host=127.0.0.1 -с=1 -hc

Запускаем постоянное отслеживание ключа key на сервере 127.0.0.1 каждые 30 секунд:

client -key=key -host=127.0.0.1 -pf=30000 -pt=30000

Заваливаем запросами ключа key сервер 127.0.0.1 со случайной периодичностью в пределах от 0.5 до 3 секунд:

client -key=key -host=127.0.0.1 -pf=500 -pt=3000

Помощь по параметрам:

client -h

Dashboard

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

php -S localhost:8000

Перед эксплуатацией рекомендуется создать пользователя с логином admin и произвольным паролем. Все остальные пользователи - клиенты, они видят только свою статистику. Логин клиента должен быть в виде 1.2.3.4:13343, где 1.2.3.4 - IP-адрес клиента, а 13343 - порт, по которому к нему будет обращаться клиентский модуль. Если запросы ходят, а статистики нет, админу стоит просмотеть страницу "Все запросы" без фильтрации по клиенту, найти записи с соответствующим значением столбца "Клиент" и убедиться, что на странице "Клиенты" адрес проблемного клиента совпадает с адресом из запросов.

Сборка проекта

Устанавливаем go, затем

go build configPacker.go
go build server.go
go build client.go

Кросс-компиляция

Go позволяет собирать пакеты под одной OS для другой.

Для macOS → Linux:

env GOOS=linux GOARCH=amd64 go build package.go

Для Linux → Windows:

GOOS=windows GOARCH=amd64 go build package.go

Для Windows → MacOS:

$Env:GOOS = "darwin"; $Env:GOARCH = "amd64"; go build package.go

Все значения для GOOS и GOARCH: https://golang.org/doc/install/source#environment

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published