В документе описаны команды, с помощью которых можно собирать серверные логи Почты. Также описано, как собирать логи при возникновении ошибок.
При кластерной инсталляции команды ниже нужно выполнять на всех серверах и виртуальных машинах, где установлена Почта.
Посмотреть версию продукта:
curl -s localhost:8888/api/v1/products/list | jq -r .products.mail.version
Посмотреть состояние сервисов Почты:
systemctl | grep onprem
Получить неработающие сервисы Почты:
systemctl | grep onprem | grep -v run
Получить информацию о состоянии контейнеров:
docker ps -a
Получить неработающие контейнеры:
docker ps -a | grep Exit
Посмотреть информацию о сети Почты:
docker network inspect mail-on-premise-net
Получить информацию о дисках и созданных на них разделах:
lsblk
Посмотреть список всех файловых систем по именам устройств, занятое и свободное пространство, точки монтирования:
df -m
Посмотреть время работы, количество текущих пользователей в системе и нагрузку за последние 1, 5 и 15 минут:
uptime
Собрать в архив сообщения ядра:
dmesg -H | gzip > dmesg.logs.gz
Получить глобальные системные журналы ВМ:
tar -czvf messages.logs.gz /var/log/messages*
При сборе логов может быть рассмотрено 3 случая:
-
Ошибку не получается воспроизвести.
journalctl --utc --since="2 days ago" --no-pager -uonpremise-container-* |gzip > 20230320.logs.gzЗапустите команду на всех серверах, она соберет логи за последние 2 дня и сложит их в папку «2023», название папки и количество дней можно изменять.
-
Ошибку не получается воспроизвести, но известна дата. Например, позавчера:
journalctl --utc --since="2 days ago" --until="yesterday" --no-pager -uonpremise-container-* |gzip > /tmp/`date +"%Y%m%d"`"-"`hostname`.logs.gzЗапустите команду на каждом сервере.
-
Ошибку можно воспроизвести повторно. Запустите сбор логов на каждом из серверов:
journalctl --utc --no-pager -fu onpremise-container-*|gzip > /tmp/`date +"%Y%m%d"`"-"`hostname`.logs.gzВоспроизведите ошибку и остановите сбор логов.
journalctl -u deployer --no-pager | gzip > deployer.log.gz
В этом случае нужно собрать логи контейнеров biz-celery-beat*, bizf* со всех ВМ:
journalctl -u biz-celery-beat1 --no-pager | gzip > biz-celery-beat1.log.gzjournalctl -u bizf1 --no-pager | gzip > bizf1.log.gz
Если наблюдаются проблемы с синхронизацией писем между MS Exchange и Почтой, то нужно собрать логи контейнеров picker*, rimap*, mpop*:
journalctl -u picker1 --no-pager | gzip > picker1.log.gzjournalctl -u rimap1 --no-pager | gzip > rimap1.log.gzjournalctl -u mpop1 --no-pager | gzip > mpop1.log.gz
При обращении в поддержку нужно также собрать заголовки проблемных писем.
В этом случае нужно собрать журналы сервисов контейнера pub-imap*. Перед тем как воспроизводить проблему, нужно:
-
В файле
/opt/mailOnPremise/dockerVolumes/pub-imapN/conf/config.yamlпоменять:log:level: warnна
log:level: debug -
В файле
/opt/mailOnPremise/dockerVolumes/pub-imapN/conf/nginx/mail.imap.confдобавить строку:error_log /dev/stdout debug;После строки:
access_log /dev/stdout all; -
Перезапустить все контейнеры pub-imap*:
systemctl restart onpremise-container-pub-imap1
После этого нужно:
- Воспроизвести проблему.
- Собрать журналы сервисов onpremise-container-pub-imap* и onpremise-container-pub-imap-clauth*.
- Передать поддержке архив с логами сервисов.
Технический писатель: Груздев Никита