Перейти к содержанию

Вопросы и ответы

Эксплуатация

Поддерживается ли административная панель VK Teams?

Административная панель VK Teams более не поддерживается.

Мониторинг параметров инсталляции осуществляется при помощи сервисов Grafana и VictoriaMetrics. Для доступа к ним необходимо авторизоваться в интерфейсе администратора. Подробнее про сервисы мониторинга и подключение к ним см. в документации по мониторингу системы.

Будет ли работать Android-приложение с Self-Signed сертификатом?

Мы не поддерживаем Self-Signed сертификаты в нашем Android-приложении, чтобы обеспечить высокий уровень безопасности данных. Self-Signed сертификаты не проходят проверку доверия через публичные удостоверяющие центры (CA), что делает их более уязвимыми для MITM-атак. Поддержка таких сертификатов потенциально ставит под угрозу конфиденциальность передаваемых данных. Мы фокусируемся на создании продукта, который соответствует высоким стандартам безопасности и готов к масштабированию в крупных корпоративных средах. Использование только проверенных сертификатов снижает риски утечек данных.

Где найти документацию по архитектуре VK Teams?

Описание архитектуры VK Teams не является публичной документацией. Обратитесь к представителю VK Tech, чтобы ознакомиться с документом.

Как отправить логи из мобильного приложения, если нет соответствующей кнопки?

Сбор логов мобильного приложения до и после авторизации описан в документации по логам.

Работа с системой

Как узнать версию VK Teams?

Выполните в консоли команду:

cat /etc/myteam-release
При запуске команды происходит ошибка PermissionError: [Errno 13] Permission denied

Все команды необходимо выполнять под пользователем root.

Сервер недоступен по SSH

Зайдите на сервер через консоль средствами виртуализации и посмотрите, что происходит с виртуальной машиной.

Как поменять DNS после установки VK Teams?
  1. Внесите необходиые изменения в конфигурационный файл /usr/local/etc/premsetup/defaults.yaml в секции dns.

  2. Примените изменения:

    im_deployer --install --skip-check --no-init -m coredns
  3. Перезапустите DNS-сервер:

    systemctl restart coredns
Как использовать скрипт mon.sh?

Под пользователем root выполните в консоли команду:

mon.sh

Скрипт mon.sh проверяет наличие процессов, состояние баз данных и сервисов, основные TCP-порты (следует учесть что проверка происходит изнутри системы по внутренним IP-адресам и не отражает наличие доступов из внешнего мира, поэтому такие доступы необходимо проверять отдельно). Часть проверок выполняется по логам приложений.

Как проверить дату истечения SSL-сертификата?

Выполните в консоли команду:

x509 -enddate -noout -in /usr/local/etc/im_ssl/default_ssl.cert 

Дата истечения SSL-сертификата будет в выводе:

notAfter=Sep 26 11:06:44 2024 GMT
Какие проверки инсталляции можно производить?
  1. Проверить текущее состояние системы:

    systemctl status | grep '^ *State:'

    В выводе команды должно быть:

    State: running // не starting и не degraded, система находится в рабочем состоянии
  2. Проверить запуск сервисов:

    sudo systemctl --all --failed

    В выводе команды должно быть:

    0 loaded units listed // все сервисы стартовали успешно, ошибок нет
  3. Выполнить скрипт mon.sh:

    sudo $(which mon.sh)

    Скрипт mon.sh проверяет наличие процессов, состояние баз данных и сервисов, основные TCP-порты (следует учесть что проверка происходит изнутри системы по внутренним IP-адресам и не отражает наличие доступов из внешнего мира, поэтому такие доступы необходимо проверять отдельно). Часть проверок выполняется по логам приложений.

Как узнать пароль от сервиса Grafana?

Как настроить доступ и получить пароль от сервиса Grafana - см. документацию по мониторингу.

Как сохранять изменения в /usr/local/nginx-im/html/myteam/myteam-config.json?

После внесения изменений в конфигурационный файл пересоздайте под админ-консоли:

kubectl delete pod -n vkteams myteam-admin-\*

, где: * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:

kubectl get pods -A | grep myteam-admin

Работа с сервисами

Где можно посмотреть краткое описание сервисов?

Описание сервисов VK Teams представлено в документации по архитектуре системы. Не является частью публичной документации, обратитесь к представителю VK Tech, чтобы ознакомиться с документом.

Как можно смотреть логи сервисов?

В документации по логам представлена информация об инструментах сбора клиентских и серверных логов и описано их расположение.

Как можно смотреть состояние сервисов?

Если сервис развернут в k8s(k3s):

Состояние подов Kubernetes можно посмотреть в k9s.
В k9s можно посмотреть только логи с момента последнего запуска. Архивные логи Docker и k3s лежат в директории /var/log/vector.

Если сервис развернут в Docker:

Для просмотра состояния контейнеров выполните в консоли команду:

docker ps -a

Если тип развертки сервиса Raw:

Для просмотра состояния сервисов выполните в консоли команду:

ic srvs

Все команды необходимо выполнять под пользователем root.

Как пользоваться скриптом ic?

Чтобы запросить у контроллера информацию о состоянии сервисов инсталляции, под пользователем root выполните в консоли команду:

ic srvs

Скрипт отображает состояние инстансов всех сервисов, которые зарегистрированы в контроллере в данный момент. Отображает IP-адрес и порт, на котором зарегистрирован сервис, а также его состояние.

Возможны три состояния сервиса:

  • alive — сервис функционирует. Если сервис не в статусе alive, посмотрите состояние инстансов сервиса при помощи команды:
    systemctl status <наименование сервиса>
    
  • busy — сервис какое-то время не связывался с контроллером (например, из-за большой нагрузки на виртуальную машину), или очередь IPROS-сообщений переполнена.
  • dead — сервис не функционирует. Для такого состояния отображается последнее время регистрации сервиса в контроллере.

Работа с пользователями и авторизация

Как изменить порт отправки OTP-пароля?
  1. Перейдите в конфигурационный файл /etc/postfix/main.cf и скорректируйте порт.

  2. Перезапустите postfix-сервис:

    systemctl restart postfix.service
Как настроить авторизацию в VK Teams по паролю (не OTP)?

Если нет интеграции с Active Directory и пользователя не добавляли вручную ранее:

Чтобы настроить для пользователя авторизацию по паролю, используйте расширенный формат файла users.yaml и CLI-утилиту users.py (подробнее см. документацию по управлению пользователями без контроллера домена).

  1. В любой удобной папке создайте файл users.yaml и заполните его данными пользователя.

    Формат файла users.yaml:

    users:  
        user01@vkteams.example.com:  
            email: user01@vkteams.example.com #почта
            firstName: FirstName01 #имя
            lastName: LastName01 #фамилия
            password: 123456 #пароль для авторизации (не ОТР)
    
  2. Добавьте пользователя командой:

    /usr/local/bin/users.py --cmd add -c ./users.yaml
  3. Если нет интеграции с Active Directory и пользователя добавили вручную ранее:

    Укажите в файле users.yaml пароль пользователя и обновите пользователей командой:

    /usr/local/bin/users.py --cmd update -c ./users.yaml

    Если настроена интеграция с Active Directory:

    Пароль пользователя настраивается в интерфейсе сервиса Keycloak. Подробнее о сервисе Keycloak см. в документации.

Как создать SSH-туннель до сервиса Keycloak?

Выполните в консоли команду:

ssh -L 8080:keycloak-http.keycloak.svc.cluster.local:80 centos@

и перейдите в браузере http://127.0.0.1:8080/auth

Логин: admin

Пароль: пароль необходимо получить в службе технической поддержки.

Или в SSH-клиенте (PuTTY):

Где посмотреть пароль от сервиса Keycloak?

Пароль от сервиса Keyckloak необходимо получить в службе технической поддержки.

Как узнать rid пользователя?

Выполните в консоли команды:

nc 127.1 4281
show <почтовый ящик пользователя>

В выводе команды будет видно rid пользователя:

log# nc 127.1 4281
show <почтовый ящик пользователя>
rid: 0:100001
friendly: Ivan Testov
fn: Ivan
ln: Testov
am: -
-
Мобильный: -
sn: <почтовый ящик пользователя>
lastLogin: 1716366105 (2024-05-22/11:21:45)
lastLoginIP: 95.131.148.212
lastLoginUA: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15
lastStartSession: 1716366106 (2024-05-22/11:21:46)
lastStartSessionIP: 95.131.148.212
Если настроена синхронизация с Active Directory по протоколу LDAP, то при увольнении надо отключить пользователя в Active Directory, чтобы он не мог зайти в VK Teams?

Если настроена интеграция с Active Directory по протоколу LDAP, то при отключении/удалении пользователя из Active Directory, его учетная запись в VK Teams блокируется.

У меня был пользователь, добавленный вручную. А потом настроили синхронизацию с Active Directory, и теперь есть ошибки. Что делать?

Удалите одного пользователя (лучше того, который был добавлен вручную):

/usr/local/bin/users.py --cmd delete --users user01@example.com

С момента удаления пользователя из Keycloak до момента его полного удаления может пройти до 4х часов.

Как узать общее количество пользователей в системе?

Выполните в консоли команду:

/usr/local/bin/users.py --cmd list | grep username | wc -l
Уволенные сотрудники находятся по email. Как скрыть уволенных сотрудников из поиска?
  1. Перейдите в БД сервиса Nomail:

    tarantoolctl enter nomail-1
  2. Найдите уволенного сотрудника по email:

    box.execute([[select * from "Users" where "sn" like 'email_уволенного_сотрудника';]]);

    email сотрудника указывается в нижнем регистре, пример команды в консоли:

    box.execute([[select * from "Users" where "sn" like 'e.ivanov@domain;]]);
  3. Удалите сотрудника:

    box.execute([[delete from "Users" where "sn" like 'email_уволенного_сотрудника';]]);
  4. Реиндекс БД сервиса Nomail:

    nomail.search.full_reindex()

Боты

Как создавать ботов?

Пошаговая инструкция к написанию своего первого бота для VK Teams

После инсталляции VK Teams не работает чат-бот

Выполните в консоли команды:

  1. Перезапустите Метабот:

    systemctl restart metabot.service
  2. Зарегистрируйте чат-бот:

    /usr/local/bin/register-bots.sh 

Чаты и переписка

Как поменять владельца чата?

Для управления администраторами групп в VK Teams необходимо выполнить следующие шаги:

  1. Получите токен администратора сервера VK Teams — откройте файл /usr/local/etc/import_prismtokens.yaml и выполните поиск значения admin_key.

  2. Получите ID группы — перейдите в информацию о группе, в ссылке на группу часть после /profile/ и есть ID группы, например u.vktserver.ru/profile/<your_group_id>.

  3. Запустите POST-запрос на сервере VK Teams, исправив его под нужного пользователя:

    curl --location --request POST 'https://u.myteaminternal/rapi' --header 'Content-Type:application/json' --data '{
        "method": "modChat",
        "reqId": "admin_key",
        "authToken": "Вписать токен аутентификации, полученный на шаге 1",
        "clientId": 1,
        "params":
        { "senderSn": "Учетная запись сотрудника, которого делаем администратором", "creator": "Учетная запись сотрудника, которого делаем администратором", "sn":"ID группы, в которой надо поменять администратора" }
    }'
    

    Если используется самоподписанный SSL-сертификат, запустите запрос с ключом -k.

В мобильном приложении VK Teams перестали приходить уведомления о новых сообщениях. Проблема и на Android и на iOS

За отправку уведомлений отвечает сервис Gosender.

Чтобы посмотреть статус сервиса, выполните в консоли команду:

systemctl status gosender.service

Чтобы перезапустить сервис, выполните в консоли команду:

systemctl restart gosender.service

Если после перезапуска сервиса проблема не решается, посмотрите логи сервиса Gosender:

ic srvs

В документации по логам представлена информация об инструментах сбора серверных логов и описано расположение логов.

Как включить «тихое» удаление сообщений?

«Тихое» удаление сообщений включено по умолчанию.

Возможно отключить «тихое» удаление сообщений. В таком случае после удаления в чате отображается уведомление «Сообщение удалено».

Чтобы выключить «тихое» удаление сообщений:

  1. В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json необходимо для поля "silent-message-delete" установить значение false:

    "silent-message-delete": false
  2. Пересоздать под админ-консоли:

    kubectl delete pod -n vkteams myteam-admin-\*

    , где: * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:

    kubectl get pods -A | grep myteam-admin

Файлы и медиа

Есть ли ограничение на размер отправляемых файлов?

Ограничение — 4 Гб.

Как изменить лимит на размер отправляемого файла?
  1. В конфигурационном файле /usr/local/go.files.icq.com/files.icq.com.config.yaml в секции /max_upload_size: укажите размер файла.

    Размер файла не должен быть меньше 104857600, так как Android по умолчанию резервирует такой размер, даже при загрузке 4 Кб.

  2. Перезапустите сервис Go-files командой:

    systemctl restart gofiles_httpd
    
Файлы, которыми обмениваются пользователи, хранятся на сервере. Можно ли для хранения файлов использовать диск, расположенный физически на другом сервере?

Возможна настройка интеграции с внешним S3-хранилищем. Подробнее см. в документации по интеграции с S3.

Есть ли ограничения по сроку хранения файлов и переписки в VK Teams?

Личные сообщения: хранятся 50 000 сообщений для каждого чата или 190 дней.

Группы,каналы: хранятся 20 000 сообщений или 190 дней.

Файлы хранятся вечно.

Звонки

Как отключить функциональность записи звонков?
  1. Перейдите в конфигурационный файл /usr/local/nginx-im/html/myteam/myteam-config.json

  2. Установите для поля call-recording-enabled значение false:

    call-recording-enabled: false
  3. Пересоздайте под админ-консоли:

    kubectl delete pod -n vkteams myteam-admin-\*

    , где: * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:

    kubectl get pods -A | grep myteam-admin
Как включить функциональность размытия фона в звонках?
  1. Перейдите в конфигурационный файл /usr/local/nginx-im/html/myteam/myteam-config.json

  2. Установите для поля call-background-blur-enabled значение true :

    call-background-blur-enabled: true
    
  3. Пересоздайте под админ-консоли:

    kubectl delete pod -n vkteams myteam-admin-\*
    

    , где: * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:

    kubectl get pods -A | grep myteam-admin
    
Сколько UDP-портов занимается во время звонка с видео 1-1?

Один UDP-порт на сервер, начиная с 1024.

Будет ли видеопоток идти через сервер при видеозвонке «точка-точка»?

Если оба клиента за NAT-ом и нет возможности соединиться напрямую, то сервер будет релеем. Иначе «точка-точка».

Есть ли у организатора видеоконференции какие-то привилегии (добавлять и отключать участников звонка)?

Пользователь, который инициировал звонок (начал звонок или создал ссылку на звонок), является создателем и имеет права на управление звонком. Подробное описание см. в руководстве пользователя.

Профиль пользователя

Как разрешить смену аватара пользователя?

Во время установки VK Teams:

В конфигурационном файле инсталляции /usr/local/etc/premsetup/defaults.yaml установите для поля allow-self-avatar-change значение true:

"allow-self-avatar-change": true

Если VK Teams уже установлен:

  1. В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json установите для поля allow-self-avatar-change значение true:
    "allow-self-avatar-change": true
  2. Пересоздайте под админ-консоли:

    kubectl delete pod -n vkteams myteam-admin-\*

    , где: * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:

    kubectl get pods -A | grep myteam-admin
Как разрешить пользователям изменять информацию о себе в профиле мессенджера?

Во время установки VK Teams:

В конфигурационном файле инсталляции /usr/local/etc/premsetup/defaults.yaml установите для поля allow_self_info_change значение true:

"allow_self_info_change": true

Если VK Teams уже установлен:

  1. В конфигурационном файле /usr/local/nginx-im/html/myteam/myteam-config.json установите для поля allow_self_info_change значение true:
    "aallow_self_info_change": true
  2. Пересоздайте под админ-консоли:

    kubectl delete pod -n vkteams myteam-admin-\*

    , где: * — уникальное имя пода. Имя пода необходимо получить с помощью вывода команды:

    kubectl get pods -A | grep myteam-admin
Как изменить порядок отображения фамилии, имени и отчества в клиентском приложении?

По умолчанию отображение фамилии, имени и отчества в инсталляциях следующее: имя, отчество, фамилия.

Чтобы изменить отображение, выполните шаги, описанные в документации по администрированию.