База знань Проста інструкція по роботі з сервісом Профітсервер
головний База знань Як читати журнали 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.*" та журнали поштових служб "пошта.*"

Файли журналів можна відкрити за допомогою будь-якого текстового редактора, наприклад менше, як, хвіст. Давайте відкриємо "/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”

Під час діагностики можна використовувати хвіст утиліта, яка може відобразити кілька останніх рядків файлів. Команда "хвіст -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 /"тека, де знаходиться головний журнал"системний журнал” та 7 архівів, що відповідає правилам конфігураційного файлу.

Ви можете знайти більш детальний опис logrotate в посібнику, виконавши “чоловік logrotate” команда

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

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

Command 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 містить інформацію про успішні спроби входу. Скористайтеся останньою утилітою, щоб відкрити його.

утиліта lastlog

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

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

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

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

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