Кога ќе се соочите со какви било проблеми со перформансите на вашиот сервер, првото нешто што сакате да направите е да го направите проверете ги вашите дневници на 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 / log / 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 / log / syslog датотека
Означената порака на сликата од екранот е пораката за исклучување на мрежниот интерфејс.
За пребарување информации преку долги текстуални датотеки користете grep корисност. Можете да ги најдете сите пораки добиени од pptpd услуга во „/ var / log / syslog“ датотека.
grep 'pptpd' /var/log/syslog
За време на дијагностиката можете да користите опашка алатка која може да прикаже неколку последни линии на датотеки. команда „tail -f / var / log / syslog” ќе ви овозможи да гледате снимање на дневници во реално време.
Услугата rsyslog е многу флексибилен и моќен. Може да се користи за берба на трупци во локални системи, како и на ниво на претпријатие. Целосната документација можете да ја најдете на официјалната веб-страница https://www.rsyslog.com/
Ротација на дневници во Linux
Снимањето на дневниците се случува континуирано, така што големината на датотеките постојано расте. Механизмот за ротација обезбедува автоматско архивирање на старите дневници и создавање нови датотеки. Во зависност од правилата, тоа може да се случи дневно, неделно, месечно или според ограничување на големината. Како што се создаваат нови дневници, старите може само да се избришат или да се испратат по е-пошта. Ротација на трупци се врши со постигне корисност. Главната конфигурација можете да ја најдете во „/etc/logrotate.conf" датотека. Содржината на датотеките исто така се обработува во "/etc/logrotate.d/”Папка
Новите правила може да се најават во главната конфигурациска датотека. Сепак, најдобро е да креирате посебна датотека во “/etc/logrotate.d/Стандардно, има неколку датотеки во овој директориум
Ајде да ја погледнеме датотеката “/etc/logrotate.d/rsyslog" што содржи правила за ротација за дневниците на rsyslog услуги.
Прво, правилото треба да ја содржи патеката до датотеката за евиденција, а потоа да ги следи сите насоки во заоблени загради.
- ротирај 7 - број на датотеки за чување - 7
- секојдневно - креирајте нова датотека секој ден
- компресирате - компресирајте и архивирајте ги старите датотеки
Можете да видите на скриншот дека во „/ var / log /„Папка има главниот дневник“системски лог” и 7 архиви, што одговара на правилата во конфигурациската датотека.
Можете да најдете подетален опис на logrotate во прирачникот, со извршување на „човек логротат“ команда
Собирање логови на Линукс - дневник
Служба за берба на трупци systemd-дневник е дел од системот за иницијализација systemd. Датотеките за евиденција на Linux се зачувани во „/var/log/journal/” во посебен формат и може да се отвори со помош на журналктл корисност. Форматот на записи е сосема ист како во rsyslog.
Команда журналктл без атрибути ги прикажува сите записи, но не е погоден за поголеми логови. Ајде да погледнеме некои опции на оваа алатка.
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 - го содржи времето на последното дејство за најавување за секој запис на сметката. Може да се отвори со последен запис