Запуск, останов, журналирование сервера¶
- Содержание
- Запуск, останов, журналирование сервера
- Журналирование работы сервера
- Проверка занятых сетевых портов
Разрешаем автозапуск сервера во время загрузки ОС:
$ systemctl enable tegu.service
Эта команда создает символическую ссылку на копию файла сервиса в /etc/systemd/system/tegu.service в точке на диске, где systemd ищет файлы для автозапуска, а также обновляет конфигурацию systemd. Помните, что вы должны обновлять конфигурацию systemd всякий раз, когда меняете конфигурацию в файле /etc/systemd/system/tegu.service. Обновление выполняется командой sudo systemctl reload tegu.service
Запуск сервера вручную:
$ systemctl start tegu.service
Останов сервера вручную:
$ systemctl start tegu.service
Контролируем запуск сервиса (статус сервиса):
$ systemctl status tegu.service
Правильно работающий сервер возвращает примерно такое:
● tegu.service - Tegu. MBK-Lab Mail Server
Loaded: loaded (/etc/systemd/system/tegu.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-04-11 13:58:09 MSK; 50min ago
Main PID: 88519 (tegu)
Tasks: 9 (limit: 9357)
Memory: 3.3M
CGroup: /system.slice/tegu.service
└─88519 /opt/tegu/sbin/tegu
Журналирование работы сервера¶
По умолчанию сервер ведет краткую версию журнала (log)
Для включения подробного лога необходимо установить параметру "debug" значение "true" в конфигурационном файле:
debug = true
Конфигурационный файл может находиться в каталогах:
- /etc/tegu.conf
- ~/tegu.conf (например, /var/mail/tegu.conf)
Включил журналирование, контролируем поведение сервера:
journalctl -f -u tegu -n 200 -a
Лог за весь день
journalctl -u tegu -a --since today > tegu.log
Если нас интересуют какие то конкретные события, используем дополнительно команду grep
journalctl -u tegu.service --since today | grep billing@profintel.ru
Дополнительные подсказки.
С определенной даты и времени:
journalctl --since "2020-12-18 06:00:00"
С определенной даты и по определенное дату и время:
journalctl --since "2020-12-17" --until "2020-12-18 10:00:00
Со вчерашнего дня:
journalctl --since yesterday
С 9 утра и до момента, час назад:
journalctl --since 09:00 --until "1 hour ago"
Так как мы работаем через journalctl, речь идет о системном журнале systemd-journald.
- В каком файле хранится лог:
Физически логи лежат в бинарном формате в директории /var/log/journal/ (обычно в /var/log/journal/<имя_хоста>/system.journal).
Это общий файл для всех сервисов.
Важно: Увидеть там только логи tegu в сыром виде нельзя, для этого и используется фильтр командой journalctl -u tegu
- Как долго хранится журнал лога:
По умолчанию systemd хранит логи до 1 года или пока размер файлов не достигнет 100 МБ (настройки в файле /etc/systemd/journald.conf).
если в настройках выставить параметр MaxRetentionSec=infinity то журнал будет храниться вечно, пока есть место на диске.
- Как очистить (если нужно освободить место):
Удалять файлы вручную в папке /var/log/journal/ не рекомендуется (можно сломать права доступа).
Очищать нужно специальной командой:
Очистить логи старше 1 дня:
journalctl --vacuum-time=1d
Очистить, оставив только 100 Мб данных:
journalctl --vacuum-size=100M
Если нужно просто сохранить историю, используйте команду
journalctl -u tegu -a > /backup/tegu_log_$(date +%F).log
Новый параметр crushReportsCount сохраняет отчёты о критических сбоях сервера.
crushReportsCount - количество последних отчётов, которые будут сохранены. Ранее созданные будут вычищены.
По умолчанию в конфиге выставлен параметр 10.
папка с отчётами
{dataDir}/crash_reports - создается автоматически.
Проверка занятых сетевых портов¶
Проверить занимаемые программой порты можно командой:
netstat -tulpn | grep tegu