Решение проблем
- Проверка работы контейнеров и журналы ошибок
- Решение проблем с публикацией приложений RemoteApp
- Чек-лист для решения проблем с Panda
Проверка работы контейнеров и журналы ошибок
JumpServer устанавливается в виде набора контейнеров Docker, выполняющих различные функции.
Для проверки состояния контейнеров достаточно авторизоваться на сервер с установленным JumpServer и ввести команду
# docker ps -a
Все контейнеры в списке должны быть со статусом Healthy
Список контейнеров
jms_panda
jms_magnus
jms_celery
jms_chen
jms_koko
jms_lion
jms_razor
jms_video
jms_web
jms_redis
jms_kael
jms_xrdp
jms_mysql
jms_core
Для просмотра журнала ошибок того или иного модуля, введите команду
docker logs -f #ИМЯ_КОНТЕЙНЕРА --tail 200
Например:
Журнал ошибок веб-интерфейса:
docker logs -f jms_web --tail 200
Журнал ошибок Panda:
docker logs -f jms_panda --tail 200
Решение проблем с публикацией приложений RemoteApp
В этой статье я подробно опишу, как взаимодействуют JumpServer, RDS Server и Tinker, чтобы можно было выяснить, в чем проблема.
Описание процесса интеграции RDS и JumpServer.
1. JumpServer подключается по SSH к серверу RDS:
- устанавливает там сервис Tinker, которому сообщает адрес JS (параметр Core API)
- создает локальные сервисные УЗ вида js_* и jms_* на RDS
- добавляет созданные УЗ в группу "Remote Desktop Users"
Важно: группа "Remote Desktop Users" может называться по-другому в Windows, название может зависеть от языка ОС, если эти УЗ не присутствуют в группе, нужно будет добавить их вручную.
2. Tinker связывается с JumpServer по заданному адресу (параметр Core API)
- Tinker сообщает, что он работает, и статус RDS становится "online".
- Загружает дистрибутивы выбранных апплетов, например, Chrome и DBeaver загружаются с сервера JS по тому же адресу, указанному в Core API. Другие апплеты он может пытаться загрузить из интернета.
- Tinker устанавливает загруженные апплеты.
Описание Tinker:
Tinker - вспомогательное приложение для интеграции с JumpServer, участвует в поддержке связи между RDS и JS, устанавливает нужные для публикации приложения(апплеты), а также управляет публикацией приложений RemoteApp при запуске сессий.
По умолчанию устанавливается в папку C:\Users\[ACCOUNT]\AppData\Local\Programs\Tinker\ ([ACCOUNT] - это УЗ, которая использовалась для интеграции JS и RDS)
Устанавливает сервис JumpServer Tinker Service - он всегда должен быть запущен
Подробный лог работы и ошибок Tinker доступен в папке
C:\Users\[ACCOUNT]\AppData\Local\Programs\Tinker\data\logs
Апплеты Tinker
Аплеты - это набор из приложения и скриптов автоматизации для управления приложением, по умолчанию апплеты устанавливаются в папку
C:\Program Files\JumpServer
Именно в этой папке находятся запускаемые приложения и python скрипты с параметрами запуска, вы их можете изменять, если нужно.
Итоговый чек-лист:
-
На Windows RDS должен быть установлен OpenSSH, 22 порт должен быть открыт на Windows файрволле.
-
УЗ для интеграции с RDS должно иметь права администратора RDS.
-
В IP/Host должен быть указан IP адрес RDS сервера или его DNS имя, которое резолвится с JumpServer.
-
В Core API должен быть указан URL JumpServer, который доступен с RDS Server.
-
На RDS должны быть созданы УЗ вида JS_XX и JMS_XX.
-
УЗ вида JS_XX и JMS_XX на RDS должны находиться в группе пользователей удаленного рабочего стола на RDS сервере.
-
Сервис JumpServer Tinker на RDS сервере должен быть запущен.
-
Статус RDS сервера в интерфейсе JumpServer: Normal.
-
Статус апплетов в свойствах RDS сервера в интерфейсе JumpServer: Success.
Скриншоты стенда JS:
Чек-лист для решения проблем с Panda
1. Проверка успешности развертывания приложения.
Просмотр ошибок в логах:
cat /data/jumpserver/panda/data/logs/panda.log
cat /data/jumpserver/lion/data/logs/lion.log
- Проверка регистрации Panda в JumpServer (System settings - RemoteApp - Application providers - Panda).
- Проверка токена BOOTSTRAP_TOKEN.
- Проверка параметров в конфигурационном файле.
- Проверка соединения Panda - Lion.
- Ресурсы машины — минимум 4 ядра / 8 ГБ RAM.
- Конфликт портов в контейнерах.
2. Типовые ошибки
Ошибка: API таймаут
Причина: невозможность загрузки образа.
Решение: смена зеркала Docker-репозитория, предварительная загрузка:
Открыть файл конфигурации:
sudo nano /etc/docker/daemon.json
Добавить в него адрес зеркала репозитария:
"registry-mirrors": ["https://your-mirror.example.com"]
И перезапустить докер с применением настроек:
sudo systemctl daemon-reload
sudo systemctl restart docker
docker pull 2970298425/docker-chrome-app:v0.1.0
docker pull 2970298425/docker-dbeaver-app:v0.1.0
Примечание: если сервер не имеет выхода в интернет, вместо указания зеркала, вы можете вручную загрузить нужные контейнеры в докер
Error 9001: access denied
Причина: ошибка соединения.
Решение: проверить конфигурацию:
PANDA_ENABLED=1
VIRTUAL_APP_ENABLED=1
PANDA_HOST_IP=10.1.12.20
PANDA_HOST=http://panda:9001
Избыточное использование памяти файловым кэшем
Решение: очистка кэша после инициализации:
sync
echo 3 > /proc/sys/vm/drop_caches