База знань Проста інструкція по роботі з сервісом Профітсервер
головний База знань Як читати журнали Linux і де їх знайти

Як читати журнали Linux і де їх знайти


Коли ви зіткнулися з будь-якими проблемами з продуктивністю вашого сервера, перше, що вам потрібно зробити, це перевірити журнали Linux . У системному журналі ви можете знайти деякі корисні діагностичні повідомлення від різних компонентів операційної системи, таких як ядро ​​або різні служби, тому, найімовірніше, ви знайдете причину збою саме там.

Кожне повідомлення в журналі генерується в результаті певних подій в операційній системі: від користувача, авторизації до завершення роботи служби або збою програми. Ці події мають різні пріоритети залежно від того, наскільки вони критичні. У Linux існують такі типи подій:

  1. emerg - невдача, найвищий пріоритет;
  2. alert - термінове попередження;
  3. crit - критична подія;
  4. err - звичайна помилка;
  5. warn - звичайне попередження;
  6. notice - повідомлення;
  7. info - інформаційне повідомлення;
  8. debug - налагоджувальна інформація;

На даний момент основними сервісами збору журналів у Linux є rsyslog та systemd-journald . Вони входять до складу більшості сучасних дистрибутивів і працюють незалежно.

rsyslog

Журнали цієї служби знаходяться в папці « /var/log/ » у вигляді звичайних текстових файлів. Повідомлення журналів зберігаються в різних файлах залежно від типу події. Наприклад, « /var/log/auth.log » містить інформацію про авторизацію користувачів у системі, а « /var/log/kern.log » містить повідомлення ядра. Назви файлів можуть відрізнятися залежно від дистрибутиву, тому давайте подивимося на конфігураційний файл, щоб зрозуміти, де знаходиться « /etc/rsyslog.d/50-default.conf ».

Збір логів Linux утилітою rsyslog

Ці правила показують, який файл містить кожен тип повідомлень журналу. Ліва частина відображає тип повідомлення у форматі « [Джерело].[Пріоритет] », а права частина відображає назву файлу журналу. Під час запису типу повідомлення можна додати символ « * ». Це означає пусте значення або « немає », що видаляє його зі списку. Давайте детальніше розглянемо перші два правила.

“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”

Перше правило означає, що всі повідомлення, отримані від механізму авторизації, будуть записані у файл « /var/log/auth.log ». Усі спроби авторизації (як успішні, так і невдалі) будуть зареєстровані в цьому файлі. Друге правило вказує, що всі повідомлення, крім тих, що пов'язані з авторизацією, будуть записані у файл « /var/log/syslog ». Ці два файли зазвичай є найпопулярнішими. Наступні правила визначають шлях для зберігання журналів ядра « kern.* » та журналів поштової служби « mail.* ».

Файли журналів можна відкрити за допомогою будь-якого текстового редактора, такого як less , cat , tail . Давайте відкриємо файл « /var/log/auth.log » .

less /var/log/auth.log
Запис у лог-файлі Лінукс про невдалу спробу авторизації SSH

Кожен рядок файлу є окремим повідомленням, отриманим від програми або служби. Усі повідомлення незалежно від джерела мають один формат і складаються з 5 частин. Візьмемо для прикладу виділене повідомлення на скріншоті.

  1. Мітка часу повідомлення - «12 лютого 06:18:33»
  2. Ім'я комп'ютера, який відправив повідомлення - «vds»
  3. Назва програми або служби, яка відправила повідомлення - «sshd»
  4. Ідентифікатор процесу - [653]
  5. Текст повідомлення - “Прийнятий пароль для mihail з 188.19.42.165 порт 2849 ssh2”

Це був приклад успішного підключення до SSH.

А ось як виглядає невдала спроба входу:

Читаємо логі Linux

Цей файл також записує команди з розширеними дозволами

Як правильно прочитати лог Linux

Давайте відкриємо файл /var/log/syslog

На скріншоті виділене повідомлення про відключення мережевого інтерфейсу.

Утиліта logorotate

Для пошуку інформації у довгих текстових файлах використовуйте утиліту grep . Ви можете знайти всі повідомлення, отримані від служби pptpd , у файлі « /var/log/syslog ».

grep 'pptpd' /var/log/syslog
файл “/etc/logrotate.d/rsyslog”

Під час діагностики ви можете скористатися утилітою tail , яка може відображати кілька останніх рядків файлів. Команда “ tail -f /var/log/syslog ” дозволить вам переглядати запис журналів у режимі реального часу.

Сервіс rsyslog дуже гнучкий та потужний. Його можна використовувати для збору логів як у локальних системах, так і на рівні підприємства. Повну документацію можна знайти на офіційному вебсайті https://www.rsyslog.com/

Обертання журналів у Linux

Запис журналів відбувається безперервно, тому розмір файлів постійно зростає. Механізм ротації забезпечує автоматичне архівування старих журналів та створення нових файлів. Залежно від правил, це може відбуватися щодня, щотижня, щомісяця або за обмеженням розміру. У міру створення нових журналів, старі можна просто видаляти або надсилати електронною поштою. Ротація журналів виконується утилітою logrotate . Основну конфігурацію можна знайти у файлі « /etc/logrotate.conf ». Вміст файлів також обробляється у папці « /etc/logrotate.d/ ».

Нові правила можна записувати в головний конфігураційний файл. Однак, найкраще створити окремий файл у « /etc/logrotate.d/ ». За замовчуванням у цьому каталозі є кілька файлів.

Налаштовуємо ротацію логів у Лінукс

Давайте розглянемо файл « /etc/logrotate.d/rsyslog », який містить правила ротації для журналів служби rsyslog.

Приклад виведення всіх помилок pptpd в лог-файлах

Спочатку правило має містити шлях до файлу журналу, а потім усі вказівки в кривих дужках.

  • повернути 7 - кількість файлів для зберігання - 7
  • щодня - щодня створювати новий файл
  • стискати - стискати та архівувати старі файли
Учимся читати логі Лінукс

На скріншоті видно, що в папці « /var/log/ » знаходиться основний журнал « syslog » та 7 архівів, що відповідає правилам у конфігураційному файлі.

Більш детальний опис logrotate можна знайти в інструкції, виконавши команду « man logrotate ».

Збір журналів Linux - журнал

Служба збору журналів systemd-journald є частиною системи ініціалізації systemd . Файли журналів Linux зберігаються в “ /var/log/journal/ ” у спеціальному форматі та можуть бути відкриті за допомогою утиліти journalctl . Формат записів точно такий самий, як у rsyslog.

Команда journalctl без атрибутів показує всі записи, але вона не підходить для великих журналів. Давайте розглянемо деякі опції цієї утиліти.

  • journalctl -b - показати всі записи з моменту останнього запуску
  • journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10" - показати запис протягом певного періоду часу
  • journalctl -u pptpd - показати записи певної послуги
  • journalctl -k - показувати повідомлення ядра
  • journalctl -p err - показувати повідомлення певного пріоритету, в даному випадку повідомлення з вищим пріоритетом (критичний, попереджувальний, аварійний)
  • journalctl -f - показувати повідомлення в режимі реального часу

Для більшої гнучкості ви можете комбінувати ці опції. Давайте покажемо всі помилки служби pptpd

journalctl -u pptpd -p err
utilita last

Якщо вказати шлях до виконуваного файлу як атрибут, утиліта покаже всі повідомлення, надіслані цим файлом. Давайте покажемо всі повідомлення, надіслані файлом “ /usr/bin/sudo ” з 04:15 18 лютого 2020 року. Фактично, вона покаже всі команди, виконані з вищими правами доступу.

journalctl -S "2020-02-18 04:15" /usr/bin/sudo
командой lastb

Щоб дізнатися, скільки місця на диску займають файли журналу, необхідно виконати таку команду

journalctl --disk-usage

Щоб обмежити файл журналу до 1 Гб, виконайте таку команду

journalctl --vacuum-size=1G

Відкриття бінарних файлів

Тепер давайте розглянемо деякі спеціальні файли в папці « /var/log/ », де зберігаються всі спроби входу. Ці файли є двійковими та їх можна відкрити лише за допомогою спеціальних програм.

/var/log/wtmp містить інформацію про успішні спроби входу. Використайте утиліту last, щоб відкрити її.

утиліта lastlog

/var/log/btmp – містить усі невдалі спроби входу. Його можна відкрити за допомогою lastb з розширеними правами доступу. Атрибут -n визначає кількість рядків, що відображаються з кінця файлу.

/var/log/lastlog – містить час останньої дії входу для кожного запису облікового запису. Його можна відкрити за допомогою lastlog

❮ Попередня стаття Текстові редактори Linux
Наступна стаття ❯ Як налаштувати мережеві інтерфейси в CentOS

Запитайте нас про VPS

Ми завжди готові відповісти на ваші запитання в будь-який час дня і ночі.