Журнал забит записями о сеансах: Started Session N of user
Каждый вход, включая одиночную команду по ssh, создаёт сеанс, срез и несколько записей в журнале. Система наблюдения, опрашивающая машину каждую минуту, порождает сотни записей в час — и настоящие сообщения в этом потоке не найти.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Внешняя проверка входит по ssh каждую минуту
Каждое обращение — полноценный сеанс с созданием среза и записями в журнале.
-
Записи о сеансах не нужны в общем потоке
Уровень этих записей можно понизить, чтобы они не мешали читать журнал.
-
Сеансы не закрываются и копятся
Оборванные соединения оставляют сеансы. Их число растёт, а вместе с ним и срезы пользователей.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Сколько сеансов создано за текущую загрузку.
journalctl -b --no-pager | grep -c 'Started Session'Сколько сеансов открыто прямо сейчас.
loginctl list-sessions --no-legend | wc -lКто пишет в журнал больше всех за час.
journalctl --since '1 hour ago' --no-pager | awk '{print $5}' | sort | uniq -c | sort -rn | headРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Каждое обращение — полноценный сеанс с созданием среза и записями в журнале.
- Как проверить
-
Посмотрите частоту записей о сеансах и источник.
journalctl -b --no-pager | grep -c 'Started Session' journalctl -u ssh -u sshd --since '1 hour ago' --no-pager 2>/dev/null | grep -oE 'from [0-9.]+' | sort | uniq -c | sort -rn | head -3
- Как исправить
- Снизьте частоту опроса или соберите нужные показатели агентом на самой машине. Опрос по ssh — самый дорогой способ снимать метрики.
- Почему происходит
- Уровень этих записей можно понизить, чтобы они не мешали читать журнал.
- Как проверить
-
Посмотрите, сколько их и от кого.
journalctl -b --no-pager | grep -E 'Started Session|New session' | tail -5
- Как исправить
-
Понизьте уровень записей службы управления сеансами параметром
LogLevelMax=в её переопределении. Полностью отключать их не стоит: по ним видно, кто и когда входил.[Service] LogLevelMax=warning
- Почему происходит
- Оборванные соединения оставляют сеансы. Их число растёт, а вместе с ним и срезы пользователей.
- Как проверить
-
Посмотрите число сеансов.
loginctl list-sessions --no-legend | wc -l loginctl list-sessions --no-legend | head -5
- Как исправить
- Настройте завершение простаивающих сеансов в службе ssh. Тысячи висящих сеансов упираются в пределы среза пользователя.
Пример вывода
Внешняя проверка входит каждую минуту. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
systemd-logind[700]: New session 14201 of user monitor.
systemd[1]: Started session-14201.scope - Session 14201 of User monitor.
systemd-logind[700]: Session 14201 logged out. Waiting for processes to exit.
systemd[1]: session-14201.scope: Deactivated successfully.
Связанные ошибки
- Журнал занимает слишком много места Журнал разросся: где задаются пределы, как обрезать и почему обрезка иногда не помогает.
- systemd-logind: не удалось создать сеанс пользователя Вход не проходит или сеанс неполный: не создаётся срез сеанса, исчерпаны пределы или нет каталога времени работы.
- Suppressed N messages from unit: часть записей потеряна journald отбросил часть записей из-за ограничения частоты. Как понять, что именно потеряно, и когда предел нужно поднять.
- File corrupted or uncleanly shut down, renaming and replacing Журнал повреждён после жёсткой перезагрузки: что означает сообщение и когда нужно вмешательство.
- journalctl -b -1: Failed to look up boot, no such boot ID Запрос журнала прошлой загрузки не находит её: журнал непостоянный или обрезан.
- rsyslog: ошибка файла состояния при чтении журнала Приёмник журналов теряет записи или читает их заново: файл состояния повреждён или недоступен.
- В журнале контейнера видны записи хоста Журнал внутри контейнера показывает не то, что ожидалось: каталог журнала хоста проброшен внутрь.
- В журнале нет сообщений об ошибке, хотя служба падает Ошибки не видны: уровень подробности обрезан параметрами unit-файла или настройками журнала.
Где встречается чаще всего
Источники
-
systemd-logind.service(8)
Сеансы, срезы сеансов и записи о них. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Наблюдалось на машине с опросом по ssh раз в минуту.