SystemD¶
В Ubuntu 16.04 сменилась система инициализации. Иногда это ведет к появлению 502 ошибки, потому что сервис Staffcop не стартует автоматически. Для решения этой проблемы нужно явно разрешить запуск данного юнита. sudo systemctl enable staffcop
Другие команды для юнитов: Незамедлительно запустить юнит:
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 для поиска новых или измененных юнитов:
systemctl daemon-reload
все логи с момента последний загрузки
journalctl -b
фильтруем по дате.
$ 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
по ID
journalctl _PID=381
по ID
journalctl _UID=33
кто есть в логах
journalctl -F _UID
все фильтры
man systemd.journal-fields
смотрим по пути
journalctl /usr/bin/docker
что там у ядра
journalctl -k
по уровню ошибок
journalctl -k
ошибки такие:
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 — максимально подробный формат представления данных (включает даже те поля, которые в других форматах не отображаются).
недавние
journalctl -n
реал тайм
journalctl -f
скока логов?
journalctl --disk-usage
ужать логи до
sudo journalctl --vacuum-size=1G
ужать логи по времени
sudo journalctl --vacuum-time=1years
то же в конф файле
/еtc/systemd/journald.conf, which contain next parameters:
SystemMaxUse = максимальный объём, который логи могут занимать на диске;
SystemKeepFree = объём свободного места, которое должно оставаться на диске после сохранения логов;
SystemMaxFileSize = объём файла лога, по достижении которого он должен быть удален с диска;
RuntimeMaxUse = максимальный объём, который логи могут занимать в файловой системе /run;
RuntimeKeepFree = объём свободного места, которое должно оставаться в файловой системе /run после сохранения логов;
RuntimeMaxFileSize = объём файла лога, по достижении которого он должен быть удален из файловой системы /run.
Централизованное хранение логов¶
systemd-journal-remote --url https://some.host:19531/