Знания Прости инструкции за работа с услугата Profitserver
основен Знания Как да четете регистрационни файлове на 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. ID на процес - [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
утилита последно

Ако укажете пътя до изпълнимия файл като атрибут, помощната програма ще покаже всички съобщения, изпратени от този файл. Нека покажем всички съобщения, изпратени от файла „ /usr/bin/sudo “ от 04:15 на 18 февруари 2020 г. Всъщност, тя ще покаже всички команди, изпълнени с по-високи разрешения.

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

За да разберете колко дисково пространство заемат регистрационните файлове, за да изпълните следната команда

journalctl --disk-usage

За да ограничите регистрационния файл до 1Gb, изпълнете следната команда

journalctl --vacuum-size=1G

Отваряне на двоични файлове

Сега нека разгледаме някои специални файлове в папката „ /var/log/ “, където се съхраняват всички опити за влизане. Тези файлове са двоични и могат да бъдат отворени само със специални програми.

/var/log/wtmp съдържа информация за успешни опити за влизане. Използвайте помощната програма last, за да я отворите.

утилита lastlog

/var/log/btmp - съдържа всички неуспешни опити за влизане. Може да се отвори с lastb с разширени права. Атрибутът -n определя броя на редовете, показвани от края на файла.

/var/log/lastlog - съдържа времето на последното влизане в системата за всеки запис в акаунта. Може да се отвори с lastlog

❮ Предишна статия Linux текстови редактори
Следваща статия ❯ Как да конфигурирате мрежови интерфейси в CentOS

Попитайте ни за VPS

Винаги сме готови да отговорим на вашите въпроси по всяко време на деня и нощта.