Отвечает за генерацию, сборку и распаковку шифруемого файла конфигурации для сервера.
Создание базового конфига (файл .sqt_raw):
configPacker generate
Затем, после внесения нужных изменений производится сборка закрытого конфига (.sqt_raw → .sqt):
configPacker pack
При необходимости производится распаковка конфига (.sqt → .sqt_raw):
configPacker unpack
Отвечает за получение команд, их обработку и отправку ответа. Использует как закрытый, так и открытый конфиги. Запуск:
server
Локальная конфигурация (адрес и доступы к серверу кеша и серверу БД, порт для соединений) читается из файла .sqtconfig, глобальная (параметры работы очереди) - из файла .sqt. Файлы должны находиться в той же директории, что и исполняемые файлы.
Отвечает за запрос команд, разбор и проверка ответов. Отправка одной команды на проверку ключа 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
За него отвечает файл 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