ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Вторник, 4 февраля, 2025
Сегодня у нас 1 праздник:
В 1943 году в Новом Орлеане (штат Луизиана) родился Кеннет Томпсон, один из создателей операционной системы UNIX.

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

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

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

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

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

 

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

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

 

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

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

 

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

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

 

Пример:

 

F. Журналы Cron

 

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

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

 

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

 

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

journalctl -u ssh

 

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

journalctl -b

 

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

journalctl --since "1 hour ago"

 

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

 

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:

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

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

 

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

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

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

 

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

 

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

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

 

Вопрос 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. Общие советы по анализу журналов

 

Заключение

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

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

Exit mobile version