Симптомы
DNS возвращает NXDOMAIN на записи вида:
dig statd.idig cluster.local
Решение
-
Откройте для редактирования файл
/home/deployer/configs/coredns/corefile:vi /home/deployer/configs/coredns/corefile -
Добавьте следующие строки в файл:
:53 {prometheus 0.0.0.0:9256auto {directory /etc/coredns/common{1}reload 10s}reload 30s}cluster.local:53 {prometheus 0.0.0.0:9257auto {directory /etc/coredns/common (cluster.local) {1}reload 10s}reload 30s} -
Перезапустите все контейнеры bind*, пример команды:
systemctl restart onpremise-container-bind1
За постоянное хранение вложений отвечает сервис stz. Чтобы увеличить память, расширьте LVM-тома и в одном из контейнеров stz-valkyrie*, выполните команду:
pairdb_admin noncorp autoresize -i 1-3
Где 1-3 — это диапазон дисковых пар, это значение может отличаться для вашей инсталляции. Номера дисковых пар можно получить из первого столбца таблицы в веб-интерфейсе установщика: http://server-ip-address:8888/config/main/storage/mailcloud/
На примере stz-valkyrie1, чтобы попасть в контейнер используйте команду:
docker exec -it stz-valkyrie1 bash
Overlord требует работы с выключенной синхронной репликацией. Убедитесь, что синхронная репликация отключена с помощью команд:
box.info.synchro.queue.owner— владелец синхронной очереди. Правильное значение:0.box.cfg.election_mode— тип выборов встроенных в tarantool. Правильное значение:off.
Если не будет выключена синхронная репликация, то будет конфликт с overlord.
Пример проблемы:
фев 20 11:56:18 dev15 onpremise-container-autogen-tar1[2540431]: 2026-02-2011:56:18.829 [42] main/103/autogen.lua box.cc:358 E> ER_READONLY: Can't modifydata on a read-only instance - synchro queue with term 2 belongs to 1 (ca4256748af3-488e-a21f-dfad79a887a6) and is frozen until promotionфев 20 11:56:18 dev15 onpremise-container-autogen-tar1[2540431]: 2026-02-2011:56:18.829 [42] main box.cc:358 E> ER_READONLY: Can't modify data on a read-onlyinstance - synchro queue with term 2 belongs to 1 (ca425674-8af3-488e-a21fdfad79a887a6) and is frozen until promotion
Решение
-
Найдите работающий контейнер Tarantool в системе:
docker ps -a | grep <имя_роли>В качестве примера предположим, что это контейнер autogen-tar2.
-
Перейдите в консоль Tarantool:
docker exec -it autogen-tar2 bashtarantoolctl connect /var/run/tarantool/tarantool.sock -
Проверьте, что режим выборов выключен через команду
box.cfg.election_mode. Правильное значение:off.unix/:/var/run/tarantool/tarantool.sock> box.cfg.election_mode----off...Если указано другое значение, выполните команду
box.cfg{election_mode="off"}. -
Определите владельца очереди, с помощью команды
box.info.synchro.queue.owner:unix/:/var/run/tarantool/tarantool.sock> box.info.synchro.queue.owner--- 1... -
Убедитесь, что текущий контейнер является владельцем синхронной очереди:
box.info.id. Если id совпадает со значением из предыдущего шага, то выполните команду:box.ctl.demote()Если id не совпадает выполните две команды:
box.ctl.promote()box.ctl.demote() -
Убедитесь, что владелец синхронной очереди имеет идентификатор
0. -
Выполните up_container для неработающих Tarantool'ов.
Симптом:
В логах контейнера consul есть следующие ошибки:
failed to parse /etc/consul.d/server_metadata.json: 1 error occurred: * invalid config key last_seen_unix
Решение:
-
При формировании кластера consul, после перезагрузки ВМ, выполните команду по примеру:
rm /opt/mailOnPremise/dockerVolumes/consul1/consul/data/server_metadata.json -
Повторите команду для каждого контейнера consul в кластере.
-
Выполните шаг up_container для каждого контейнера consul в веб-интерфейсе установщика.
-
В веб-интерфейсе установщика проверьте состояние кластера БД MySQL на странице Настройки → Шардирование и репликация БД, по кнопке Опросить базы данных.
Проблема преобладает на установках с сильно перегруженной сетью.
Симптом:
В логах mailetcd можно наблюдать такие предупреждения:
{"level":"warn","ts":"2025-12-19T07:24:30.529512+0300","caller":"etcdserver/util.go:170","msg":"apply request took too long","took":"5.000138281s","expected-duration":"100ms","prefix":"read-only range ","request":"key:\"/mailonpremise/overlord/clusters/snooze-queue-tar-1/\" range_end:\"/mailonpremise/overlord/clusters/snooze-queue-tar-10\" ","response":"","error":"context deadline exceeded"}
Рекомендации по устранению:
Основной способ устранения проблемы: снизить количество обращений к ETCD.
Для этого увеличьте таймаут на запросы:
- В веб-интерфейсе установщика перейдите на страницу Настройки → Переменные окружения.
- Для всех ролей с тегом Tarantool нужно изменить переменную
OVERLORD_ELECTION_TIMEOUT. - В поле Значение переменной укажите
(5s, 15s]. - Нажмите кнопку Сохранить.
- Выполните шаг up_container для всех машин с тегом Tarantool.
После этого важно наблюдать за состоянием системы:
- В логах mailetcd снилизилось количество предупреждений о слишком долгих запросах.
- Контейнеры не перезапускаются слишком часто. Можно посмотреть с помощью команды
docker ps -a. - В дашборде Grafana Database → Etcd, графики: RPC Rate, High Number Of Failed HTTP Requests, Client Traffic In.
- В дашборде Grafana Database → Overlording, графики: Overlord Restarts, Failed ETCD Requests.
Если ситуация не улучшилась, то увеличьте интервал для OVERLORD_ELECTION_TIMEOUT.
-
Найдите бакеты вышедшие из строя:
zeptoctl buckets status!=ok -
Найдите бакеты с неповторяющимся bid. Если bid не повторяется, значит бакет вышел из строя в одной из реплик.
-
Для каждого найденного bid запустите команду:
zeptoctl tasks schedule --fix bid=<найденный bid> -
Проверьте статус задач:
zeptoctl tasks show <скопированный id задачи> -
Дождитесь пока закончатся все задачи. Для всех задач (task) со статусом
status = running, значение в столбцеsucceededдолжно стать равным цифре изsubtasks. -
Если задачи завершится со статусом failed, то скопируйте id задачи (task) и посмотрите причины ошибки:
zeptoctl tasks show <скопированный id задачи>
-
Определите какие bucketmaster работают с проблемном бакетом:
zeptoctl buckets bid=<id проблемного бакета> -
Найдите файлы в директориях bucketmaster, например:
find /opt/mailOnPremise/dockerVolumes/stz-[NAME]-bm[NUM]/zepto -name 2.bucket -
Сделайте копию-бекап бакета в директории всех bucketmaster, которые за ним закреплены.
-
Скопируйте полученный файл в докер контейнер на все сервисах вида
stz-*-bm.docker cp <путь/до/брокен/бакета> stz-[NAME]-bm[NUM]:/ -
Чтобы определить где находится более актуальный бакет и какая ошибка возникает, выполните внутри контейнера обеих реплик команду:
/usr/local/zepto/bin/bucketfixer --show-broken </путь/до/бакета/внутри/контейнера/id.bucket> -
На реплике, где более актуальный бакет, выполните:
/usr/local/zepto/bin/bucketfixer --trim-broken --out <Введите имя бакета, который будет создан с фиксом> </путь/до/бакета/внутри/контейнера/id.bucket>Если актуальность бакетов одинаковая, то команду можно выполнить в любом из бакетов.
-
Замените старый бакет на актуальный из шага 5. Путь до устаревшего бакета был получен на шаге 2.
docker cp stz-[NAME]-bm[NUM]:<путь/до/исправленного/бакета/в контейнере> <путь из пункта 2> -
Выполните команду:
zeptoctl tasks schedule --recheck-full bid=<id-бакета>Следить за статусом задачи можно с помощью:
zeptoctl tasks show <скопированный id задачи> -
Если в итоге восстановился только один бакет — в одной реплике отображается статус
succeeded, а в другойfailed, то после завершения задачи выполните:zeptoctl tasks schedule --fix bid=<id-бакета>Так восстановится второй бакет.
-
Если для обоих бакетов отображается статус
failed, а в результате выполнения задачи выводится ошибка:Calling ... returned error (500): unable to read record: unexpected EOF record while scanning the data, file broken, file broken.То обратитесь к шагам по исправлению ошибки file broken
-
Измените имена бакетов, задав другое имя на каждой реплике.
-
Перезапустите реплики с помощью systemctl.
-
Внутри контейнера одной из реплик выполните команду и дождитесь успешного завершения:
zeptoctl tasks schedule --forget bid=<bid проблемного бакета> -
Верните названия бакетов, которые изменялись на шаге 1.
-
Выполните команду:
zeptoctl tasks schedule --recheck-full bid=<id-бакета> -
После завершения команды, выполните:
zeptoctl tasks schedule --fix bid=<id-бакета>
-
Выполните команду:
zeptoctl tasks schedule --fix bid=<id-бакета>После этого группа должна остаться одна группа.
-
Перезапустите реплику, которая работает с этим бакетом.
-
Выполните команду:
zeptoctl tasks schedule --recheck-full bid=<id-бакета>
Симптомы:
- При высокой нагрузке на систему пользователи стали массово видеть ошибку с кодом 500.
- В PostgreSQL calendarpg закончилось место.
- Высокое потребление CPU у calendarapi.
Решение:
-
На машине с установщиком откройте для редактирования файл
custom_roles.yaml. -
Увеличьте значение параметра
shm_size:calendarpg:shm_size: "2gb" -
Перезапустите установщик:
systemctl restart deployer -
Перейдите в веб-интерфейс установщика, в раздел Настройки → Переменные окружения.
-
В левом меню найдите calendarpg.
-
Увеличьте значение переменной
SHARED_BUFFERS. Новое значение не должно превышать значение указанное в параметреshm_size. -
Нажмите кнопку Сохранить.
-
Выполните шаг up_container для всех машин calendarpg.
Проблемы:
- Если пользователь мигрируется из Exchange, то изменения в календаре синхронизируются обратно в Exchange. Это генерирует уведомления на старые события от EWS.
- Если при миграции пользователя не отключен сервис уведомлений в Почте VK WorkSpace, то по всем мигрированным событиям будут разосланы уведомления от календаря. События рассылаются даже по старым событиям.
Решение:
-
Отключите уведомления в сервисе calendar-notifyd. Выполните команду:
vim configs/calendar/notifier/notifyd/notifyd.yamlВ блоке ниже, в поле
emails:укажите значениеfalse:notification:service:channels:emails: false -
Выполните шаг up_container для всех контейнеров calendar-notifyd.
-
Исправьте файл конфигурации
/app/distr/VK/custom_configs/cexsy/etc/config.yaml. Уберите комемнтарии со следующих строк или добавьте их, если они отсутствуют:skip_notify_past_events:permille: 1000domains:- ur_domain.ru -
Выполните шаг up_container для всех контейнеров calendar-cexsy.
-
Выполните миграцию календарей по инструкции: Шаг 4. Выполните синхронизацию календарей
-
Включите уведомления в сервисе calendar-notifyd. Выполните команду:
vim configs/calendar/notifier/notifyd/notifyd.yamlВ блоке ниже, в поле
emails:укажите значениеtrue:notification:service:channels:emails: true -
Выполните шаг up_container для всех контейнеров calendar-notifyd.
Чтобы исправить проблему:
-
Проверьте наличие закрывающего символа
;в конфигурационном файле$DEPLOYER_HOME/configs/swa/nginx/auth.mail.ru.conf, где$DEPLOYER_HOME— папка в которую распаковывался установщик. Например,/home/deployer:{{- if .products.sso }}...location ~ ^/sso/clauth/?$ {...proxy_set_header X-Real-IP $x_k8s_real_ip; // Эта строка должна заканчиваться на ;} -
Перейдите в веб-интерфейс установщика.
-
Перейдите в раздел Настройки → Настройки компонентов → Авторизация.
-
Нажмите кнопку редактировать
. -
Включите опцию Включить систему ограничения SSO-авторизации по IP/группе в LDAP.

-
Нажмите Сохранить.
-
На машине с установщиком откройте для редактирования файл
$DEPLOYER_HOME/configs/rimap/zubr/picker-zubr.yaml, где$DEPLOYER_HOME— папка в которую распаковывался установщик. Например,/home/deployer:vim /home/deployer/configs/rimap/zubr/picker-zubr.yaml -
Добавьте сервис
- 94 # arbuzapiв раздел:constructor:services:Общий вид раздела после изменения:
services:- 12 # MEMC_NEWMAIL- 25 # ADDRBOOK- 36 # autoreply_limiter- 37 # PDD- 41 # RIMA- 46 # IRINA- 57 # SPAMABUSE- 62 # DOMEN- 64 # HERMES- 76 # RICO- 94 # arbuzapi- 103 # USPATH 2- 108 # XTAZIK- 130 # RIMAP-API -
В веб-интерфейсе установщика Почты перейдите на главную страницу веб-интерфейса установщика.
-
Для всех контейнеров вида picker* выполните шаг up_container.
-
На машине с установщиком откройте для редактирования файл
$DEPLOYER_HOME/configs/rimap/envoy/envoy-rimap.yaml, где$DEPLOYER_HOME— папка в которую распаковывался установщик. Например,/home/deployer:vim /home/deployer/configs/rimap/envoy/envoy-rimap.yaml -
В раздел
static_resourcesдобавьте следующие разделы:static_resources:listeners:{{- genEnvoyTarListener "mfiledb" "127.0.77" false }}{{- genEnvoyTarListener "mpairdb" "127.0.79" false }}clusters:{{- genEnvoyTarCluster "mfiledb" "127.0.77" false }}{{- genEnvoyTarCluster "mpairdb" "127.0.79" false }} -
Откройте для редактирования файл
$DEPLOYER_HOME/configs/rimap/zubr/zubr.yaml:vim /home/deployer/configs/rimap/zubr/zubr.yaml -
Обновите разделы
servicesиvariables:constructor:services:- 77 # FILEDB_NONCORP- 79 # PAIRDB...variables:filedb_noncorp_server:{{- range $k, $v := (index . "tarantool15::mfiledb").clusters }}- 127.0.77.{{$k}}:3301,127.0.77.{{$k}}:3401{{- end }}pairdb_noncorp_server:{{- range $k, $v := (index . "tarantool15::mpairdb").clusters }}- 127.0.79.{{$k}}:3301,127.0.79.{{$k}}:3401{{- end }} -
Выполните команду:
sudo systemctl restart deployer -
В веб-интерфейсе установщика Почты перейдите на главную страницу веб-интерфейса установщика.
-
По очереди выполните шаг up_container для всех контейнеров rimap*.
Проблема может возникать для различных контейнеров с БД, рассмотри проблему на примере контейнера cinemadb*.
Если до обновления на версию 1.24 вы по каким-то причинам удаляли контейнеры cinemadb*, то после обновления возникают проблемы с нумерацией контейнеров, репликацией кластера и запуском сервисов.
Пример 1
До обновления вы по каким-то причинам удаляли контейнеры cinemadb2 и cinemadb3. И у вас остались контейнеры cinemadb1 и cinemadb4.
Решение
-
Удалите контейнер cinemadb4.
-
Переименуйте Volume в cinemadb2 с помощью команды:
mv /opt/mail/dockerVolumes/cinemadb11 /opt/mail/dockerVolumes/cinemadb2 -
В веб-интерфейсе установщика создайте новый контейнер cinemadb2.
Пример 2
После обновления у вас следующая нумерация контейнеров: cinemadb1, cinemadb11, cinemadb23.
Решение
-
Предварительно запишите или запомните как собираетесь переименовать контейнеры cinemadb11 и cinemadb23. Например: cinemadb11 → cinemadb2 и cinemadb23 → cinemadb3.
-
Остановите и удалите контейнеры cinemadb11 и cinemadb23. Если удалить только контейнер cinemadb23, то новый контейнер создастся с названием cinemadb12.
-
В веб-интерфейсе установщика создайте новые контейнеры cinemadb2 и cinemadb3.
-
Переименуйте Volume в cinemadb2 и cinemadb3 с помощью команд:
mv /opt/mail/dockerVolumes/cinemadb11 /opt/mail/dockerVolumes/cinemadb2mv /opt/mail/dockerVolumes/cinemadb23 /opt/mail/dockerVolumes/cinemadb3 -
Выполните шаг up_container для контейнеров cinemadb2 и cinemadb3.
Система расширенных транспортных правил при интеграции с внешними DLP системами может привести к дублированию исходящего почтового трафика и другим непредвиденным эффектам.
При работе кластерной инсталляции .wal файлы могут занимать много места на диске. Чтобы очистить место, на примере контейнера exchange-importer-pg:
-
Проверьте, что реплика имеет большой лаг в мастере PostgreSQL:
docker exec exchange-importer-pgN bash -c "patronictl -c /etc/patroni/patroni.yml list" -
Проверьте статус реплики:
docker exec exchange-importer-pgN psql exchange_sync postgres -c "SELECT slot_name, active FROM pg_stat_replication;" -
Удалите проблемный слот:
docker exec exchange-importer-pgN psql exchange_sync postgres -c "SELECT pg_drop_replication_slot('<имя слота из пункта 2>');" -
Проверьте, что слот удален:
docker exec exchange-importer-pgN psql exchange_sync postgres -c "SELECT slot_name FROM pg_replication_slots;" -
Остановите проблемную реплику, для которой удалили слот:
systemctl stop onpremise-container-exchange-importer-pgN -
Удалите файлы
dataдля этой реплики:rm -rf /opt/mailOnpremise/dockerVolumes/exchange-importer-pgN/postgresql/data/* -
Запустите реплику:
systemctl start onpremise-container-exchange-importer-pgN -
Передайте данные из мастера:
docker exec exchange-importer-pgN bash -c "patronictl -c /etc/patroni/patroni.yml reinit exchange-importer-pg exchange-importer-pgN.qdit"
Это не ошибка, а предупреждение о том, что файлов нет, так как их действительно пока еще нет (не сформировались). Не обращайте внимание, это нормально.
Убедитесь, что firewall отключен.
При попытке залогинится в панель администратора под пользователем admin@admin.qdit после установки Почты возникает сообщение "Неверный пароль, попробуйте еще раз"
-
Перепроверить, что пароль скопирован верно.
Пароль находится в файле **bizOwner.pass**, файл расположен в директории с установщиком Почты onpremise-deployer_linux. Например, если установка происходила под пользователем deployer, проверить пароль можно, используя команду:```bashcat /home/deployer/bizOwner.pass``` -
В веб-интерфейсе установщика перейти на главную страницу веб-интерфейса установщика
-
Найти в списке контейнеров fmail1 и нажать на значок шестеренки справа от названия контейнера
-
Запустить выполнение шага get_biz_owner
-
После того как шаг get_biz_owner будет выполнен, скопировать новый пароль из файла bizOwner.pass.
У администратора есть возможность выполнить вход в аккаунт пользователя от его имени. Это действие не требует знания пароля, оно выполняется анонимно.
Как правило, доступ к аккаунту пользователя необходим для выполнения каких-либо операций, связанных с поддержкой. Например, если пользователь случайно очистил содержимое корзины, и нужно восстановить удаленные письма.
Чтобы получить доступ к конкретному ящику, администратор использует опцию Войти как пользователь в профиле пользователя в административной панели. Доступ к ящику пользователя предоставляется по сгенерированной ссылке. При попытке воспользоваться этой ссылкой администратор может получить сообщение про неверный пароль.
Чтобы исправить ситуацию:
-
В веб-интерфейсе установщика перейдите на главную страницу веб-интерфейса установщика..
-
Найдите в списке контейнеров autogen-tar1 и нажмите на значок шестеренки справа от названия контейнера.
-
Запустите выполнение шага init_autogen_tokens.

Последовательность действий
-
Проверьте, что сертификаты и DNS в порядке.
-
Проверьте наличие ошибок в консоли браузера (инструменты разработчика, Development Tools).
Вероятные ошибки: «ошибка загрузки login.css - 404 not found».
-
Выполните up_container для контейнера img1:
1. В веб-интерфейсе установщика Почты перейдите на главную страницу веб-интерфейса установщика.2. Найдите в списке контейнеров **img1** и нажмите на значок шестеренки справа от названия контейнера.3. Выполните шаг **up_container**.
При кластерной установке после добавления гипервизора в установщике может появиться ошибка: установщик не может получить доступ до гипервизора по ssh. Это может произойти из-за того, что автоматически выбранная сетевая маска не покрывает все узлы или соединение между машинами работает по конкретному сетевому интерфейсу.
Чтобы исправить проблему:
-
В веб-интерфейсе установщика перейдите на главную страницу веб-интерфейса установщика.
-
Найдите проблемный гипервизор и нажмите на значок шестеренки справа от названия.
-
На странице гипервизора еще раз нажмите на значок шестеренки.

-
В поле Интерфейс для межсерверного взаимодействия выберите сетевую маску, по которой установщик сможет получить доступ по SSH к гипервизору.

-
Нажмите на кнопку Обновить.
-
Зафиксировать имя сервиса, на котором зависла установка (далее «целевой сервис»)
Найти такой сервис можно, например, в веб-интерфейсе установщика, посмотрев, установка какого сервиса находится в статусе in progress.
Также определить, на каком шаге зависла установка, можно по логам установщика. Для просмотра логов используйте следующую команду:
sudo journalctl -fu deployer -
Проверить, какие сервисы еще не запустились и могут препятствовать установке целевого сервиса:
sudo systemctl | grep onprem | grep -v running -
Проверить, какие сервисы необходимы для установки целевого сервиса. Убедиться, что незапущенные сервисы с предыдущего шага препятствуют установке:
sudo cat /etc/systemd/system/<целевой сервис> | grep <незапущенный сервис>Wants=<название незапущенного сервиса>After=<название незапущенного сервиса> -
Устранить причину сбоя незапущенного сервиса.
Ниже приведен пример для случая, когда зависла установка сервиса pub1:
sudo systemctl | grep onprem | grep -v runningonpremise-container-mailapi1.service loaded activating auto-restart Mail.Ru onpremise mailapi1 service# видим, что не запустился сервис mailapi1sudo cat /etc/systemd/system/onpremise-container-pub1.service | grep mailapi# проверяем, что для продолжения установки pub1 должна завершить установка mailapi1Wants=onpremise-container-mailapi1.serviceAfter=onpremise-container-mailapi1.service
Если деплоер зависает на этапе запуска data-compose файла, то может помочь принудительное удаление data-container'ов на виртуальной машине:
sudo docker rm $(docker ps -a | grep data-container | awk {'print $1'})
Процесс установки обновления доходит до определенного этапа, после чего останавливается. Перезапуск автоматической установки, отдельный запуск шага, отмеченного красным цветом в веб-интерфейсе установщика, не дают результата.
Один из самых распространенных сценариев — проблемы на шаге генерации контейнеров. В 99% случаев не запускаются какие-то из уже установленных контейнеров. Соответственно, следует начать с их починки и запуска.
Для просмотра логов установщика используется команда:
sudo journalctl -fu deployer
-
Получить список всех не запущенных контейнеров:
sudo systemctl | grep onpremise | grep -v running -
Найти контейнеры со статусом auto-restrating.
У этих контейнеров, как правило, более высокий приоритет на запуск, поэтому они тормозят запуск всех остальных контейнеров.
-
Посмотреть логи конкретного контейнера
sudo journalctl -eu 'имя контейнера'
Один из вариантов решения — удалить контейнер, чтобы systemd его пересоздал.
sudo docker rm имя контейнера
При установке обновлений в логах установщика:
deployer[377192]: [mirage1][add_profile_keys] add prfoile key <ParentEmail> fail: cant insert into 'mPOP.profile_keys':[Error 1290: The MySQL server is running with the --read-only option so it cannot execute this statement]
В веб-интерфейсе установщика красным подсвечен контейнер mirage1.
Последовательность действия для устранения ошибки:
-
Проверить какие БД в read_only (проверяем по master)
cat /home/deployer/main.yaml | egrep "mysql.*db:$" -A 5 | grep master | awk -F ":" '{print $NF}' | xargs -I % sh -c "echo DB=%; docker exec % mysql -uroot -e 'SELECT @@global.read_only;'" -
Снять read_only на master
cat /home/deployer/main.yaml | egrep "mysql.*db:$" -A 5 | grep master | awk -F ":" '{print $NF}' | xargs -I % sh -c "echo DB=%; docker exec % mysql -uroot -e 'UNLOCK TABLES; SET GLOBAL read_only=OFF;’"
Проверить состояние и логи контейнера pub-mx.
Запущенный на машине Postfix – одна из возможных причин, почему контейнер pub-mx не стартует. Соответственно, Postfix нужно остановить и отключить.
systemctl disable postfixsystemctl stop postfixsystemctl mask --now postfix
Проверить tarantool'ы в abookpdd-tar
docker exec -it abookpdd-tar1 bashtarantool -a 3303lua box.space[0]:len()lua for k, v in box.space[0]:pairs() do print(v) end
-
В интерфейсе установщика перейти на главную страницу веб-интерфейса установщика.
-
Найти в списке контейнеров mailetcd и нажать на значок шестеренки справа от названия контейнера.
-
Выполнить шаг lightning_etcd_settings.
-
Найти следующие контейнеры и выполнить для каждого из них команду up_container:
- fcloud
- beaver
- lightning1
-
Найти в списке контейнеров cld-docs и нажать на значок шестеренки справа от названия контейнера.
-
Выполнить шаг upload_file_templates.
См. также Ошибка CE_BADBLOB при создании файла в облаке
Проблема может воспроизводить при миграции, например при миграции с MS Exchange.
Симптомы
В логах контейнера biz-celery-worker-pdd*:
{"email":"user@vk.tech","status":400,"htmlencoded":true,"body":{"collect[0].server":{"value":"exchange.vk.tech","error":"invalid"},"collect[0].port":{"error":"invalid","value":993},"collect[0].ssl":{"value":true,"error":"invalid"}}})
В логах контейнера mpop*:
2024-09-06T14:54:48.902 E 12345 @ abcdef0123 >>> Connection error: server: exchange.vk.tech port: 993 ssl: 1
Решение
-
Перейдите в веб-интерфейс установщика
http://server-ip-address:8888/. -
Перейдите в раздел Настройки → Интеграции → Сборщик почты.
-
Нажмите кнопку редактировать
. -
Нажмите на кнопку + Добавить.
-
В появившемся поле введите адрес вашего exchange. Например:
exchange.vk.tech. -
Нажмите на кнопку Сохранить.
-
Перейдите на главную страницу веб-интерфейса установщика и запустите автоматическую установку.

-
Подтвердить запуск автоматической установки, нажав на кнопку Запустить во всплывающем окне.
Дождитесь окончания установки.
Симптомы
В логах установщика выводится ошибка:
2024-10-03T12:53:06.119295+03:00 m-mail sudo[26695]: deployer : TTY=pts/3 ; PWD=/home/deployer ; USER=root ; COMMAND=/bin/echo ok2024-10-03T12:53:06.129066+03:00 m-mail sudo[26695]: pam_unix(sudo: session): session opened for user root(uid=0) by deployer(uid=1007)2024-10-03T12:53:06.130101+03:00 m-mail sudo[26695]: pam_unix(sudo: session): session closed for user root2024-10-03T12:53:06.700493+03:00 m-mail sshd[4840]: refused local port forward: originator 0.0.0.0 port 0, target 10.132.65.24 port 2379
Решение
Ошибка возникает в случае, если в настройках SSH на машине не разрешен TCP Forwarding. Чтобы изменить настройку TCP Forwarding, в файле /etc/ssh/sshd_config установите следующее значение:
AllowTcpForwarding yes
Если ошибка была найдена во время установки Почты, то после изменения файла /etc/ssh/sshd_config перезапустите установщик, чтобы он сбросил активные ssh подключения:
sudo systemctl restart deployer
Чтобы файлы с расширением .ics корректно обрабатывались Календарем, нужно настроить отправку уведомлений под пользователем отличным от admin@admin.qdit:
-
Перейдите в панель администратора по адресу
biz.<mail_domain>. -
Перейдите в раздел Почта → Настройки.
-
Переключитесь на вкладку Письма календаря.
-
В поля Логин для SMTP и Email отправителя писем введите адрес пользователя, от имени которого будут отправляться письма-уведомления.

-
Нажмите кнопку Сохранить.
Симптомы
При попытке установки VKWorkMail 1.20.2 происходит ошибка контейнера onpremise-container-addrbook-tar1.service. В логах dmesg в момент воспроизведения проблемы присутствуют ошибки:
cali0: renamed from temp6ccdc4087c0docker-entrypoi[732625] vsyscall attempted with vsyscall=none ip:ffffffffff600400 cs:33 sp:7ffd3bb7fe68 ax:ffffffffff600400 si:7ffd3bb81daf di:0docker-entrypoi[732625]: segfault at ffffffffff600400 ip ffffffffff600400 sp 00007ffd3bb7fe68 error 15 likely on CPU 28 (core 0, socket 56)Code: Unable to access opcode bytes at 0xffffffffff6003d6.
Решение
-
Добавьте в файл
/etc/default/grubстроку:vsyscall=emulate -
Перезагрузите операционную систему.
Технический писатель: Груздев Никита