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

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

Назначение документа

В документе представлено описание вопросов, возникающих при установке, администрировании и эксплуатации VK WorkMail. Документ предназначен для инженеров и системных администраторов, ответственных за установку и настройку продукта.

Можно ли запускать программу-установщик, находясь в другой директории

Нет. Запустите программу-установщик именно из той директории, в которой она находится. В противном случае установщик не сможет найти директорию source с файлами-исходниками.

Почему во время установки перезагрузился сервер?

Это нормально, так как в процессе установки вносятся изменения в системные настройки машин.

Есть ли в Почте ограничения на размер хранилища и почтового ящика?

Есть только физические ограничения дисков, которые подключены к Почте. Теоретически вы можете подключить диски любых возможных объемов и не ограничивать размеры почтовых ящиков и хранилищ.

Можно ли вносить изменения в настройки хранилищ после установки?

Нет. Хранилища необходимо настроить до завершения установки. Если у вас появилась необходимость изменить настройки хранилищ, обратитесь в службу поддержки.

Какие файлы можно удалять после установки?

По завершении установки допускается только удаление архива, из которого был распакован дистрибутив.

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

Нет. Пользователь, от имени которого производится первичная установка, также будет использоваться для установки обновлений.

Где взять информацию по динамическим данным контейнера?

В веб-интерфйейсе установщика на верхней панели нажмите на вкладку Обслуживание, затем перейдите на вкладку Контейнеры.

Как попасть в контейнер?

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

docker exec -it имя_контейнера bash

Для некоторых контейнеров, например, для etcd

docker exec -it имя_контейнера sh

Как запустить сервис из командной строки?

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

systemctl start onpremise-container-имя_контейнера

Как остановить сервис из командной строки?

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

systemctl stop onpremise-container-имя_контейнера

Как изменить пароль пользователя admin@admin.qdit?

  1. В веб-интерфейсе установщика перейдите к списку контейнеров, кликнув по логотипу Admin Panel

    faq-general

  2. Найдите в списке контейнеров fmail1 и нажмите на значок шестеренки справа от названия контейнера.

    faq-general

  3. Запустите выполнение шага get_biz_owner.

    faq-general

  4. Дождитесь окончания выполнения, затем скопируйте новый пароль.

    Пароль находится в файле bizOwner.pass, файл расположен в директории с установщиком Почты onpremise-deployer_linux. Например, если установка происходила под пользователем deployer, проверить пароль можно, используя команду:

    cat /home/deployer/bizOwner.pass
    

Как обновить лицензионный ключ?

Если вам нужно обновить лицензионный ключ, в веб-интерфейсе установщика нажмите на значок иконка и в выпадающем меню выберите Обновить лицензионный ключ.

обновление лицензии

В открывшемся окне вы сможете просмотреть информацию о текущих лицензиях, а также обновить лицензионный ключ.

обновление лицензии

Если вы вносили какие-либо изменения, кликните по кнопке Сохранить.

Как собрать журналы работы системы и базовой диагностики?

Внимание

Утилита дорабатывается, представлена ее бета-версия.

Чтобы собрать логи, нужно выполнить следующие действия:

  1. Скачать архив logs.tgz.

    Скачать архив logs.tgz

  2. Скопировать архив logs.tgz на один из серверов системы.

  3. Распаковать архив.

  4. Запустить скрипт:

    bash lc.sh
    
  5. Скачать сформированный по результатам выполнения скрипта архив.

В процессе могут быть запрошены пароли для пользователя, под которым скрипт запущен для входа на остальные сервера, на которых установлена система. Пользователь должен иметь права на sudo.

Как собрать логи с сервера установщика при распределенной установке?

  1. Проверить версию утилиты systemd:

    [root]# systemctl --version
    systemd 246 (v246.10-15.el7)
    

    Внимание

    Если установлена версия 223 и выше, то можно использовать маски для поиска сервисов. То есть не нужно перечислять номера сервисов: onpremise-container-s3storage1 onpremise-container-s3storage2 onpremise-container-s3storage3. Вместо этого можно использовать: onpremise-container-s3storage?.

  2. Запустить следующий скрипт на сервере, где находится установщик:

for i in `sudo calicoctl get nodes --output=yaml |grep ipv4IPIPTunnelAddr|awk '{ print($2) }' `;
do ssh -o StrictHostKeychecking=no $i "sudo journalctl --since \"2 days ago\"
-u onpremise-container-s3storage? -u onpremise-container-clddispatcher? 
-u onpremise-container-webdav-streamer? -u onpremise-container-s3pairdb?";
done |gzip >  /tmp/20230901.ONPREMIA-376.overall.log.gz

При работе данного скрипта происходит перебор всех серверов почты.

Как получить список доменов в почте?

docker exec -i bizdb1 mysql -N -B <<< "select id,name from biz.domain;"

Примечание

Выполнив эту команду, вы получите список всех доменов, добавленных в административной панели. Вы также можете увидеть их в интерфейсе по https://biz.<mail_domain>.

Как конвертировать сертификат pfx в pem при выгрузке из AD?

При выгрузке сертификата с AD может потребоваться его конвертация в pem файл. Для это выполните следующие команды:

# Объединенный PEM файл
openssl pkcs12 -in instmail.pfx -out cert.pem -nodes

# PEM файл без ключа
openssl pkcs12 -in instmail.pfx -clcerts -nokeys -out cert.pem

# Приватный ключ
openssl pkcs12 -in instmail.pfx -nocerts -out key.pem

# Удалить пароль с ключа
openssl rsa -in key.pem -out server.key

# Получить сертификат из URL
openssl s_client -showcerts -connect <server-address>:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >mycertfile.pem

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

docker exec -it fmail1 bash
curl -X POST --data 'email=admin2@admin.qdit&password=password' 'http://serverside-api.qdit/api/v1/user/password/change'

Как добавить пользователя из консоли?

docker exec -it fmail1 bash
curl -X POST --data-urlencode 'users=[{"login":"admin2","domain":"admin.qdit","password":"password"}]' 'http://serverside-api.qdit/api/v1/users/add'

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

  1. Убедиться, что письма, по которым производится поиск не находятся в архиве Outlook.

  2. Найти ID пользователя:

    docker exec -i bizdb1 mysql -N -B <<< "use biz";  select id,mid,username,domain_name,nick from user where username = 'o.kosyankov' order by id;"
    
  3. Запустить повторную индексацию:

    docker exec -it crow-frontend1 bash
    # USER_ID = mid из предыдущего запроса
    curl  -H 'x-request-id: DEBUG' 'http://localhost:5229/api/crow_frontend/trigger_reindex?user_id=USER_ID&dont_wait=false&reconcile=2'
    

Как в установщике посмотреть версии почты и облака?

Версии можно посмотреть по следующим ссылкам:

  • http://server-adress:8888/api/v1/roles/list?yaml=true
  • http://server-adress:8888/develop/roles

Как отправить e-mail сообщение через ssh и powershell?

Линукс

echo "This is the email body" | mail -r user000@example.local -S smtp=smtp.vk-workmail-srvmail.example.local:25 -s "test linux email" user001@example.local

Windows

Send-MailMessage -From "user000@example.local" -to "user004@example.local" -Subject "test from PS3" -Body "test321" -SmtpServer "smtp.vk-workmail-srvmail.example.local"

MacOS

user000@example.local"~ % echo "This is the email body" | mail -s user001@example.local" -s smtp=mxs.supermail.onprem.ru:1025 -s "test linux email" user002@example.local"
user000@example.local" ~ %

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

systemctl stop onpremise-container-\* 
docker stop $(docker ps -q)
systemctl stop docker
systemctl start docker
systemctl start onpremise-mail.target #(на каждой ВМ)

Как настроить отправку журналов системы во внешний агрегатор?

Для этого необходимо настроить rsyslog.

  1. В файле /etc/systemd/journald.conf установите параметр:

    ForwardToSyslog=yes
    
  2. Перезапусите journald:

    systemctl restart systemd-journald
    
  3. Проверьте наличие logrotate и установите при отсутствии:

    rpm -qa |grep logr
    logrotate-3.8.6-19.el7.x86_64
    
  4. Настройте ротацию системных журналов в файле /etc/logrotate.d/syslog.

  5. Проверьте содержимое:

    /var/log/cron
    /var/log/maillog
    /var/log/messages
    /var/log/secure
    /var/log/spooler
    {
        missingok
        compress
        daily
        sharedscripts
        postrotate
            /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        endscript
    }
    
  6. Добавьте в crontab строки:

    crontab -e
    
    15 0 * * * logrotate /etc/logrotate.conf 2>&1 > /dev/null
    
  7. В файл /etc/rsyslog.conf добавьте строку:

    *.* @@(o)<server>:<port>;RSYSLOG_SyslogProtocol23Format
    

    где

    • server — имя или адрес сервера агрегации журналов
    • port — порт сбора журналов
  8. Перезапустите сервис rsyslog:

    systemctl restart rsyslog
    

Как удалить данные из Clickhouse?

Бывает, что в контейнере graphite* (БД для метрик мониторинга) утекает память. В таком случае нужно перезапустить контейнер с помощью команды:

systemctl restart onpremise-container-graphite1

Также graphite* может занять всё свободное пространство диска. Чтобы освободить место на диске следует удалить соответствующие таблицы в контейнере ClickHouse. Дисковое пространство, используемое контейнером, проверяется командами du, или ncdu:

root@server:~# ncdu /opt/mailOnPremise/dockerVolumes/
root@server:~# docker exec -it graphite1 clickhouse-client --query "TRUNCATE TABLE graphite.graphite"

Если по каким-то причинам невозможно выполнить TRUNCATE, тогда удаляем сами контейнеры:

root@server:~# rm /etc/systemd/system/onpremise-container-zookeeper1.service
root@server:~# rm /etc/systemd/system/onpremise-container-graphite1.service
root@server:~# systemctl stop onpremise-container-zookeeper1
root@server:~# systemctl stop onpremise-container-graphite1
root@server:~# rm -rf /opt/mailOnPremise/dockerVolumes/zookeeper1
root@server:~# rm -rf /opt/mailOnPremise/dockerVolumes/graphite1
root@server:~# systemctl restart deployer

Или одной строкой:

systemctl stop onpremise-container-zookeeper1 && systemctl stop onpremise-container-graphite1 && 
rm -rf /opt/mailOnPremise/dockerVolumes/zookeeper1 /opt/mailOnPremise/dockerVolumes/graphite1 &&
systemctl restart deployer && journalctl -fu onpremise-container-graphite1 -fu onpremise-container-zookeeper1

up_container:

  • zookeeper1
  • graphite1

Как удалить данные из ClickHouse до определенной даты?

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

alter table graphite.graphite delete where dateDiff('day', Date, toDate('2023-06-13')) > 0;

где внутри функции toDate укажите дату.

Как посмотреть состояние нод в etcd кластере?

Нужно выполнить следующие команды внутри контейнера etcd:

etcdctl --write-out=table --endpoints="http://172.20.2.215:2379,http://172.20.12.215:2379,http://172.20.1.216:2379" endpoint health

etcdctl --write-out=table --endpoints="http://172.20.2.215:2379,http://172.20.12.215:2379,http://172.20.1.216:2379" endpoint status

Примечание

IP-адреса, перечисленные в команде, являются стандартными, и их можно найти в веб-интерфейсе установщика.

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

  1. Перейти в файл:

    /opt/mailOnPremise/dockerVolumes/bizf1/app.env
    
  2. Изменить строчку SUPERUSERS=admin@admin.qdit, где указать пользователей с правами SuperUser:

    SUPERUSERS=admin@admin.qdit,admin2@admin.qdit
    
  3. Перезапустить контейнер bizf1:

    systemctl restart onpremise-container-bizf1
    
  4. Повторить операцию для всех контейнеров вида bizf*.

Как очистить гипервизор для переустановки системы (без удаления дистрибутива)?

Примечание

В командах ниже используется директория /home/deployer/. Но если при установке Почты вы распаковали архив с дистрибутивом в другую директорию, корректно укажите ее в командах.

  1. Остановите систему и удалите юнит-файлы:

    systemctl stop onpremise-*
    systemctl stop deployer
    find /etc/systemd/system/onpremise-* -type f | xargs rm
    rm -rf /etc/systemd/system/onpremise-mail.target.wants
    systemctl daemon-reload
    
  2. Остановите и удалите контейнеры (и их образы):

    docker stop $(docker ps -q)
    docker rm -f $(docker ps -aq)
    for i in $(docker images -a |awk '{ print($3) }' |grep -v IMAGE); do docker rmi -f $i; done
    
  3. Удалите логи:

    find /var/log/ -maxdepth 1  | egrep "(.*1$|calico)" | xargs rm -rf
    > /var/log/daemon.log
    > /var/log/syslog
    sudo journalctl --rotate
    sudo journalctl --vacuum-time=1s
    
  4. Очистите установщик:

    rm -rf /home/deployer/logs/
    rm -rf /home/deployer/yamlBak/
    rm -rf /home/deployer/bizOwner.pass
    rm -rf /home/deployer/computes*
    rm -rf /home/deployer/*.yaml
    
  5. Очистите папку opt:

    rm -rf /opt/*
    
  6. Очистите iptables:

    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    
    iptables -F
    iptables -X
    iptables -Z
    
    iptables -t nat -F
    iptables -t nat -X
    iptables -t mangle -F
    iptables -t mangle -X
    iptables -t raw -F
    iptables -t raw -X
    
  7. Очистите конфигурации calico:

    rm -rf /etc/calico
    rm -f /usr/bin/calicoctl
    
  8. Запустите повторную установку:

    systemctl restart deployer  
    

Как полностью очистить гипервизор для переустановки системы?

Примечание

В командах ниже используется директория /home/deployer/. Но если при установке Почты вы распаковали архив с дистрибутивом в другую директорию, корректно укажите ее в командах.

  1. Остановите систему и удалите юнит-файлы:

    systemctl stop onpremise-*
    systemctl stop deployer
    find /etc/systemd/system/onpremise-* -type f | xargs rm
    rm -rf /etc/systemd/system/onpremise-mail.target.wants
    systemctl daemon-reload
    
  2. Остановите и удалите контейнеры (и их образы):

    docker stop $(docker ps -q)
    docker rm -f $(docker ps -aq)
    for i in $(docker images -a |awk '{ print($3) }' |grep -v IMAGE); do docker rmi -f $i; done
    
  3. Удалите логи:

    find /var/log/ -maxdepth 1  | egrep "(.*1$|calico)" | xargs rm -rf
    > /var/log/daemon.log
    > /var/log/syslog
    sudo journalctl --rotate
    sudo journalctl --vacuum-time=1s
    
  4. Очистите установщик:

    rm -rf /home/deployer/configs/
    rm -rf /home/deployer/static/
    rm -rf /home/deployer/logs/
    rm -rf /home/deployer/yamlBak/
    rm -rf /home/deployer/onpremise-deployer_linux
    rm -rf /home/deployer/bizOwner.pass
    rm -rf /home/deployer/computes*
    rm -rf /home/deployer/deployerParams.yaml
    rm -rf /home/deployer/main.yaml
    rm -rf /home/deployer/source/dockerRepo.tar
    rm -rf /home/deployer/source/repo.tar
    rm -rf /home/deployer/source/tarballs.tar
    
  5. Очистите папку opt:

    rm -rf /opt/*
    
  6. Очистите iptables:

    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    
    iptables -F
    iptables -X
    iptables -Z
    
    iptables -t nat -F
    iptables -t nat -X
    iptables -t mangle -F
    iptables -t mangle -X
    iptables -t raw -F
    iptables -t raw -X
    
  7. Очистите конфигурации calico:

    rm -rf /etc/calico
    rm -f /usr/bin/calicoctl
    
  8. Запустите повторную установку:

    systemctl restart deployer  
    

Как посмотреть мониторинг очередей?

В версии 1.12 почты появилась возможность просматривать графики для мониторинга очередей. Перейдите к мониторингу очередей по следующей ссылке:

https://biz.<mail_domain>/grafana/d/Pfg5iJP7z/exim-deliverability-metrics

где <mail_domain> — это ваш домен.

Примечание

Перед тем, как переходить к веб-интерфейсу Grafana, необходимо войти в панель администратора https://biz.<mail_domain>