Когато се сблъскате с проблеми с производителността на вашия сървър, първото нещо, което искате да направите, е да проверете вашите Linux логове. В системния регистрационен файл можете да намерите някои полезни диагностични съобщения от различни компоненти на операционната система като ядрото или различни услуги, така че най-вероятно ще намерите причината за повредата там.
Всяко съобщение в дневника се генерира в резултат на определени събития в операционната система: от потребител, оторизация до изключване на услугата или повреда на приложението. Тези събития имат различен приоритет в зависимост от това колко критични са. В Linux има следните видове събития:
emerg- провал, най-висок приоритет;alert- спешно предупреждение;crit- критично събитие;err- обикновена грешка;warn- обикновено предупреждение;notice- уведомяване;info- информационно съобщение;debug- информация за отстраняване на грешки;
В момента основните услуги за събиране на регистрационни файлове в Linux са rsyslog намлява systemd-журнал. Те вървят с повечето съвременни пакети за разпространение и работят самостоятелно.
rsyslog
Регистрационните файлове на тази услуга се намират в „/ var / log /" под формата на обикновени текстови файлове. Регистрационните съобщения се поставят в различни файлове в зависимост от типа на събитието. Например, "/var/log/auth.log” съдържа информация за авторизацията на потребителите в системата, и “/var/log/kern.log" съдържа съобщения на ядрото. Имената на файловете могат да се различават в различните пакети за разпространение, така че нека да разгледаме конфигурационния файл, за да добием представа какво къде има "/etc/rsyslog.d/50-default.conf".
Тези правила показват кой файл съдържа всеки тип регистрационни съобщения. Лявата част показва вида на съобщението в следната форма „[Източник] [Приоритет]", а дясната част показва името на лог файла. Докато пишете типа на съобщението "*може да се добави знак ". Това означава празна стойност или "нито един”, което го премахва от списъка.Нека разгледаме по-отблизо първите две правила.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Първото правило означава, че всички съобщения, получени от механизма за оторизация, ще бъдат записани в „/var/log/auth.log". Всички опити за оторизация (както успешни, така и не) ще бъдат регистрирани в този файл. Второто правило показва, че всички съобщения, с изключение на тези, свързани с оторизация, ще бъдат записани в "/ Var / дневник / Syslog" файл. Тези два файла обикновено са най-популярните. Следните правила определят пътя за съхраняване на регистрационните файлове на ядрото "керн.*" и регистрационни файлове на пощенската услуга "поща.*"
Регистрационните файлове могат да се отварят с помощта на всеки текстов редактор, като по-малко, котка, опашка. Нека отворим „/var/log/auth.log” файл
less /var/log/auth.log
Всеки ред от файла е отделно съобщение, получено от приложението или услугата. Всички съобщения, независимо от техния източник, имат един формат и се състоят от 5 части. Нека вземем за пример маркираното съобщение на екранната снимка.
- Времево клеймо на съобщението - „12 февруари 06:18:33“
- Името на компютъра, изпратил съобщението - “vds”
- Име на приложението или услугата, която е изпратила съобщението - “sshd”
- ID на процес - [653]
- Текст на съобщението - “Приета парола за mihail от 188.19.42.165 порт 2849 ssh2”
Това беше пример за успешна връзка към SSH.
А ето как изглежда един неуспешен опит за влизане:
Този файл също така записва команди с разширени разрешения
Да отворим / Var / дневник / Syslog досие
Маркирано съобщение на екранната снимка е съобщението за изключване на мрежовия интерфейс.
За търсене на информация чрез дълги текстови файлове използвайте Впиши полезност. Можете да намерите всички съобщения, получени от pptpd обслужване в “/ Var / дневник / Syslog” файл.
grep 'pptpd' /var/log/syslog
По време на диагностиката можете да използвате опашка помощна програма, която може да покаже няколко последни реда от файлове. команда "опашката -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 услуга.
Първо, правилото трябва да съдържа пътя до регистрационния файл и след това всички насоки в извити скоби.
- завъртете 7 - брой файлове за съхранение - 7
- ежедневно - създавайте нов файл всеки ден
- компрес - компресиране и архивиране на стари файлове
Можете да видите на екранната снимка, че в „/ var / log /"папка там е основният дневник"Syslog” и 7 архива, което отговаря на правилата в конфигурационния файл.
Можете да намерите по-подробно описание на logrotate в ръководството, изпълнявайки „човек logrotate” команда
Събиране на логове на Linux - дневник
Услуга за събиране на трупи systemd-журнал е част от системата за инициализация 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
За да разберете колко дисково пространство заемат регистрационните файлове, за да изпълните следната команда
journalctl --disk-usage
За да ограничите регистрационния файл до 1Gb, изпълнете следната команда
journalctl --vacuum-size=1G
Отваряне на двоични файлове
Сега нека да разгледаме някои специални файлове в „/ var / log /”, където се съхраняват всички опити за влизане.Тези файлове са двоични и могат да се отварят само със специални програми.
/var/log/wtmp съдържа информация за успешни опити за влизане. Използвайте последната помощна програма, за да го отворите.
/var/log/btmp - съдържа всички неуспешни опити за влизане. Може да се отвори с lastb с разширени разрешения. Атрибут -n определя броя на редовете, показвани от края на файла.
/var/log/lastlog - съдържа времето на последното действие за влизане за всеки запис на акаунт. Може да се отвори с последен журнал