Поиск по сайту:
Истинно знать что-либо — значит знать его причины (Ф. Бэкон).

Понимание системных журналов Linux: Руководство для начинающих

04.02.2025
Понимание системных журналов Linux

Системные журналы Linux похожи на дневник вашего компьютера. Они записывают всё, что происходит в вашей системе, от загрузки до выключения, и даже ошибки или предупреждения в промежутке между этими событиями. Если вы новичок в Linux, умение читать и интерпретировать эти журналы поможет вам устранять неполадки, отслеживать действия системы и стать более уверенным пользователем Linux.

В этой статье мы рассмотрим:

  1. Что такое системные журналы Linux?
  2. Типы журналов Linux
  3. Где хранятся логи?
  4. Как просматривать журналы в Systemd и несистемных системах
  5. Советы по анализу журналов
  6. Анализ логов

 

В конце мы приведём несколько часто задаваемых вопросов с ответами и шпаргалку для быстрого ознакомления.

Давайте начнем!

 

1. Что такое системные журналы Linux?

Системные журналы Linux — это файлы, в которых записываются события и действия, происходящие в вашей системе. Эти журналы создаются операционной системой, приложениями и службами, чтобы помочь администраторам (или таким любопытным пользователям, как вы!) понять, что происходит.

Представьте, что журналы — это чёрный ящик для вашего компьютера. Если что-то пойдёт не так, вы можете проверить журналы, чтобы узнать, что произошло и почему.

 

2. Типы журналов Linux

Linux генерирует множество типов журналов, каждый из которых служит определённой цели. Вот наиболее распространённые из них:

 

A. Системные журналы

Эти журналы отслеживают общую активность системы и события. Они записывают сообщения ядра, системных служб и приложений.

  • В Debian/ Ubuntu/var/log/syslog.
  • О Red Hat/ CentOS/var/log/messages.

 

B. Журналы аутентификации

Журналы, связанные с аутентификацией пользователей, такие как попытки входа в систему, использование sudo и доступ по SSH.

  • Debian/Ubuntu/var/log/auth.log.
  • Red Hat/CentOS/var/log/secure.

 

C. Журналы ядра

Помогает в отладке аппаратных неполадок и ошибок, связанных с ядром.

  • /var/log/kern.logЖурналы, относящиеся к ядру Linux, например, о проблемах с оборудованием или ошибках драйверов.
  • /var/log/dmesg: Сообщения кольцевого буфера ядра, полезные для устранения неполадок с оборудованием и загрузкой.

 

D. Загрузочные журналы

  • /var/log/boot.log: Записывает события, связанные с процессом загрузки системы.

 

E. Журналы приложений

Отдельные приложения хранят журналы в /var/log/ или пользовательских расположениях.

 

Пример:

  • /var/log/apache2/ или /var/log/nginx/: Журналы для веб-серверов, таких как Apache или Nginx.
  • /var/log/mysql/: Журналы для баз данных MySQL.
Читать  Установка Graylog в Ubuntu 24.04

 

F. Журналы Cron

  • /var/log/cron: Журналы для запланированных задач (cron-заданий).

 

G. Журналы диспетчера пакетов

Отслеживает установки и обновления программного обеспечения.

  • Debian/Ubuntu/var/log/dpkg.log
  • RHEL/Fedora/var/log/dnf.log

 

3. Где хранятся логи в Linux?

Все логи Linux хранятся в каталоге /var/log/. Это центральное хранилище для файлов журналов, и каждый файл журнала имеет определённое назначение, как мы обсуждали выше.

Чтобы просмотреть содержимое этого каталога, откройте свой терминал и запустите:

ls /var/log/

 

Пример вывода из моей системы Debian 12:

alternatives.log        debug.4.gz      messages.3.gz
alternatives.log.1      dpkg.log        messages.4.gz
alternatives.log.10.gz  dpkg.log.1      openvpn
alternatives.log.11.gz  dpkg.log.10.gz  private
alternatives.log.12.gz  dpkg.log.11.gz  auth.log.3.gz
auth.log.4.gz           installer       runit
boot.log                journal         samba
boot.log.1              kern.log        speech-dispatcher
boot.log.2              kern.log.1      syslog
boot.log.3              kern.log.2.gz   syslog.1
boot.log.4              kern.log.3.gz   syslog.2.gz
boot.log.5              kern.log.4.gz   syslog.3.gz
...

 

4. Как просматривать журналы в системах Linux с Systemd и без Systemd

В системах Linux для управления журналами используются разные инструменты в зависимости от того, используют ли они systemd (современные системы) или syslog (более старые системы).

 

4.1. Просмотр журналов в системах Systemd

Большинство современных дистрибутивов Linux (например, Ubuntu, Fedora, CentOS) используют systemd, который поставляется с мощным инструментом под названием journalctl.

 

Основные команды

Примечание: вам может потребоваться запустить эти команды от имени root или с правами sudo пользователя.

Просмотреть все журналы:

journalctl

 

Пример вывода:

Hint: You are currently not seeing messages from other users and the system.
      Users in groups 'adm', 'systemd-journal' can see all messages.
      Pass -q to turn off this notice.
Aug 24 11:32:12 debian cinnamon-killer-daemon[2023]: Bound Cinnamon restart to <Control><Alt>Escape.
Aug 24 11:32:12 debian dbus-daemon[1720]: [session uid=1000 pid=1720] Activating via systemd: service name='org.bluez.obex' unit='obex.service>
Aug 24 11:32:12 debian systemd[1700]: Starting Bluetooth OBEX service...
Aug 24 11:32:12 debian obexd[2107]: OBEX daemon 5.55
Aug 24 11:32:12 debian dbus-daemon[1720]: [session uid=1000 pid=1720] Successfully activated service 'org.bluez.obex'
Aug 24 11:32:12 debian systemd[1700]: Started Bluetooth OBEX service.
Aug 24 11:32:13 debian dbus-daemon[1720]: [session uid=1000 pid=1720] Activating via systemd: service name='org.freedesktop.portal.Desktop' un>
Aug 24 11:32:13 debian systemd[1700]: Starting Portal service...
[...]

 

Просмотр журналов в режиме реального времени:

journalctl -f

 

Нажмите CTRL+C, чтобы выйти.

Фильтровать журналы по приоритету (например, только по ошибкам):

journalctl -p err

 

Читать  Как использовать команду Logger в Linux

Просмотр журналов для определенной службы (например, SSH):

journalctl -u ssh

 

Просмотр журналов с момента последней загрузки:

journalctl -b

 

Фильтровать журналы по времени:

journalctl --since "1 hour ago"

 

Основные параметры:

  • -xe: Показать подробные журналы с пояснениями.
  • --since "yyyy-mm-dd": Просмотр журналов с определенной даты.
  • --until "yyyy-mm-dd": Просмотр журналов до определенной даты.

 

4.2. Чтение журналов в системах, не связанных с Systemd

В более старых системах Linux (или при минимальной установке) для ведения журнала может использоваться syslog. В этих системах журналы хранятся в виде обычных текстовых файлов в /var/log/.

 

Основные команды

Примечание: вам может потребоваться запустить эти команды от имени root или с правами sudo пользователя.

Просмотр всего файла журнала:

cat /var/log/syslog

 

Просмотрите последние несколько строк (например, 20) в файле журнала:

tail -n 20 /var/log/auth.log

 

Следите за файлом журнала в режиме реального времени:

tail -f /var/log/syslog

 

Найдите конкретные ключевые слова (например, «ошибка» или «неверный пароль»):

grep "error" /var/log/syslog
grep "Failed password" /var/log/auth.log

 

5. Очистка журналов

Со временем журналы могут разрастаться, занимая место на диске. Очищая старые журналы, вы освобождаете место, сохраняя при этом последние журналы для устранения неполадок.

Очистить системные журналы:

sudo journalctl --vacuum-time=7d

 

Эта команда очищает системные журналы, которые старше 7 дней.

Для очистки журналов старше 30 дней:

sudo journalctl --vacuum-time=30d

 

Очистка традиционных журналов (несистемных):

sudo truncate -s 0 /var/log/syslog

 

Эта команда очищает содержимое файла /var/log/syslog без удаления самого файла.

Если в вашей системе заканчивается место на диске, очистка журналов может помочь. Очистка журналов может привести к удалению конфиденциальной информации, но будьте осторожны — журналы часто необходимы для устранения неполадок.

Рекомендуется использовать такие инструменты, как logrotate, для автоматизации ротации и удаления журналов.

 

6. Советы по анализу журналов

Вот несколько советов, которые помогут вам разобраться в журналах Linux:

Ищите временные метки:

Каждая запись в журнале имеет временную метку, которая показывает, когда произошло событие. Это полезно для отслеживания проблем.

 

Сосредоточьтесь на Ошибках и предупреждениях:

Начните с поиска по ключевым словам, таким как «ошибка»«предупреждение» или «сбой». Эти записи часто указывают на проблемы, требующие внимания.

Читать  Руководство для начинающих по системным журналам в Linux

Используйте инструменты для лучшей визуализации:

  • less: Просмотр журналов страница за страницей.
  • grep: Ищите конкретные шаблоны.
  • awk: Извлекать определенные столбцы или поля из журналов.

 

Автоматизируйте Мониторинг и ротацию журналов:

  • Используйте logrotate для управления ротацией и сжатием файлов журналов. Это поможет вам избежать ручной очистки журналов.
  • Настройте fail2ban для отслеживания подозрительной активности в журналах и блокировки вредоносных IP-адресов.

 

7. Часто задаваемые вопросы

Вопрос 1: В чем разница между systemd и syslog?

  • systemd — это современный менеджер систем и служб, который включает в себя собственную систему ведения журналов (journalctl).
  • syslog — это более старая система ведения журналов, которая хранит журналы в виде обычных текстовых файлов в /var/log/.

 

Вопрос 2: Как мне очистить журналы?

Для системных журналов:

sudo journalctl --vacuum-size=100M  # Keep only the last 100MB of logs

 

Для журналов системного журнала:

sudo truncate -s 0 /var/log/syslog  # Clear the syslog file

 

Вопрос 3: Могу ли я удалить файлы журналов?

Да, но будьте осторожны. Удаление файлов журналов может освободить место на диске, но при этом удаляется ценная информация. Вместо этого используйте такие инструменты, как logrotate для управления журналами.

 

8. Шпаргалка по системным журналам Linux

8.1. Расположение файлов журнала

Файл журналаЦель
/var/log/syslogОбщие системные журналы (Debian / Ubuntu).
/var/log/messagesОбщие системные журналы (Red Hat/CentOS).
/var/log/auth.logЖурналы аутентификации (Debian / Ubuntu).
/var/log/secureЖурналы аутентификации (Red Hat / CentOS).
/var/log/kern.logЖурналы ядра (оборудование, драйверы и т.д.).
/var/log/dmesgСообщения кольцевого буфера ядра (проблемы с загрузкой и оборудованием).
/var/log/boot.logЖурналы загрузки системы.
/var/log/cronЖурналы для заданий cron (запланированные задачи).
/var/log/apache2/Журналы веб-сервера Apache (Debian / Ubuntu).
/var/log/nginx/Журналы веб-сервера Nginx.
/var/log/mysql/Журналы базы данных MySQL.
/var/log/maillogЖурналы почтового сервера.

 

8.2. Просмотр внесистемных журналов

КомандаОписание
cat /var/log/syslogОтобразите весь файл журнала.
less /var/log/syslogПросматривайте журналы постранично.
tail -n 20 /var/log/syslogПросмотрите последние 20 строк файла журнала.
tail -f /var/log/syslogСледите за файлом журнала в режиме реального времени.
grep "error" /var/log/syslogНайдите ключевое слово «ошибка» в журналах.
dmesgПросмотр сообщений кольцевого буфера ядра.

 

8.3. Просмотр системных журналов

КомандаОписание
journalctlПросмотрите все системные журналы.
journalctl -xeПросмотрите подробные журналы с пояснениями.
journalctl -fСледите за журналами в режиме реального времени.
journalctl -p errПросмотр журналов с приоритетом «ошибка».
journalctl -u sshПросмотр журналов для службы SSH.
journalctl --since "2023-10-01"Просматривайте журналы с определенной даты.
journalctl --until "2023-10-01"Просматривайте журналы до определенной даты.
journalctl --vacuum-time=7dОчистите журналы старше 7 дней.

 

8.4. Очистка журналов

КомандаОписание
sudo journalctl --vacuum-time=7dОчистите журналы systemd старше 7 дней.
sudo truncate -s 0 /var/log/syslogОчистите содержимое файла журнала (несистемного).
sudo rm /var/log/syslogУдалите файл журнала (используйте с осторожностью).

 

8.5. Общие советы по анализу журналов

  • Поиск ошибок: Используйте grep "error" /var/log/syslog.
  • Фильтр по дате: Используйте journalctl --since "yyyy-mm-dd".
  • Мониторинг в режиме реального времени: Используйте tail -f /var/log/syslog.
  • Автоматизация оповещений: настройте Rsyslog или Fail2ban для критических проблем.

 

Заключение

Системные журналы Linux содержат важную информацию о системе. Научившись читать и анализировать файлы журналов Linux, вы сможете устранять неполадки, отслеживать производительность системы и лучше понимать, как работает ваша система Linux.

Независимо от того, используете ли вы современный дистрибутив на основе systemd или более старый дистрибутив на основе syslog, инструменты и методы, описанные в этом руководстве, помогут вам уверенно читать и понимать логи Linux.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
В современном мире, где интернет играет ключевую роль в формировании…

Спасибо!

Теперь редакторы в курсе.