Systemd¶
Команды Systemd¶
Управление юнитами¶
Запустить юнит:
systemctl start unit
Остановить юнит:
systemctl stop unit
Перезапустить юнит:
systemctl restart unit
Перезагрузить конфигурацию юнита:
systemctl reload unit
Статус¶
Проверить статус юнита:
systemctl status unit
Автозапуск¶
Проверить, включен ли юнит в автозапуск:
systemctl is-enabled unit
Включить автозапуск:
systemctl enable unit
Отключить автозапуск:
systemctl disable unit
Маскирование¶
Маскировать юнит, чтобы сделать невозможным его запуск:
systemctl mask unit
Снять маску юнита:
systemctl unmask unit
Справка¶
Показать страницу справочного руководства юнита. Необходима поддержка этой функции в указанном файле юнита.
systemctl help unit
Обновление конфигурации systemd¶
Перезагрузить systemd для поиска новых или измененных юнитов:
systemctl daemon-reload
Работа с журналами (journalctl)¶
Основные команды¶
Просмотр логов с момента последней загрузки:
journalctl -b
Последние записи:
journalctl -n
Просмотр в реальном времени:
journalctl -f
Размер журнала:
journalctl --disk-usage
Фильтрация по дате¶
journalctl --since yesterday
journalctl --since 09:00 --until now
journalctl --since 10:00 --until "1 hour ago"
Фильтрация по службе¶
journalctl -u nginx.service
journalctl -u nginx.service --since yesterday
journalctl -u nginx.service -u php-fpm.service --since today
Фильтрация по PID и UID¶
По PID:
journalctl _PID=381
По UID:
journalctl _UID=33
Список всех UID в логах:
journalctl -F _UID
Список всех полей для фильтрации:
man systemd.journal-fields
Фильтрация по пути¶
journalctl /usr/bin/docker
Просмотр сообщений ядра¶
journalctl -k
Фильтрация по уровню ошибок¶
journalctl -p err
Ошибки:
0 — EMERG (система неработоспособна);
1 — ALERT (требуется немедленное вмешательство);
2 — CRIT (критическое состояние);
3 — ERR (ошибка);
4 — WARNING (предупреждение);
5 — NOTICE (всё нормально, но следует обратить внимание);
6 — INFO (информационное сообщение);
7 — DEBUG (отложенная печать).
Управление выводом¶
Вывод без less:
journalctl --no-pager
Форматы вывода:
journalctl -u nginx.service -o json
Доступные форматы:
cat — только сообщения из логов без служебных полей;
export — бинарный формат, подходит для экспорта или резервного копирования логов;
short — формат вывода syslog;
short-iso — формат вывода syslog с метками времени в формате ISO 8601;
short-monotonic — формат вывода syslog c метками монотонного времени (monotonic timestamp);
short-precise — формат вывода syslog с метками точного времени (время событий указывается с точностью до микросекунд);
verbose — максимально подробный формат представления данных (включает даже те поля, которые в других форматах не отображаются).
Ограничение размера журнала¶
Ограничить размер:
sudo journalctl --vacuum-size=1G
Ограничить по времени хранения:
sudo journalctl --vacuum-time=1years
Настройка параметров журнала¶
Файл: /etc/systemd/journald.conf
Основные параметры:
SystemMaxUse — максимальный объем, который логи могут занимать на диске;
SystemKeepFree — объем свободного места, которое должно оставаться на диске после сохранения логов;
SystemMaxFileSize — объем файла лога, по достижении которого он должен быть удален с диска;
RuntimeMaxUse — максимальный объем, который логи могут занимать в файловой системе /run;
RuntimeKeepFree — объем свободного места, которое должно оставаться в файловой системе /run после сохранения логов;
RuntimeMaxFileSize — объем файла лога, по достижении которого он должен быть удален из файловой системы /run.
Централизованное хранение логов¶
systemd-journal-remote --url https://some.host:19531/