Кога ќе се соочите со какви било проблеми со перформансите на вашиот сервер, првото нешто што треба да го направите е да ги проверите логовите на вашиот Linux . Во системскиот логов можете да најдете некои корисни дијагностички пораки од различни компоненти на оперативниот систем, како што се јадрото или разни услуги, па најверојатно причината за дефектот ќе ја пронајдете таму.
Секоја порака во дневникот се генерира како резултат на одредени настани во оперативниот систем: од корисникот, овластување за исклучување на сервисот или неуспех на апликацијата. Овие настани имаат различни приоритети во зависност од тоа колку се критични. Постојат следниве типови на настани во Linux:
emerg- неуспех, највисок приоритет;alert- итно предупредување;crit- критичен настан;err- обична грешка;warn- обично предупредување;notice- известување;info- информативна порака;debug- информации за дебагирање;
Во моментов, главните услуги за собирање логови во Linux се rsyslog и systemd-journald . Тие одат со повеќето модерни дистрибутивни пакети и работат независно.
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 “. Овие две датотеки се обично најпопуларни. Следните правила ја дефинираат патеката за складирање на логовите на јадрото „ kern.* “ и логовите на поштенската услуга „ mail.* “ .
Датотеките со логови може да се отворат со помош на кој било текстуален уредувач, како што се less , cat , tail . Ајде да ја отвориме датотеката „ /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 која може да прикаже неколку последни редови од датотеките. Командата „ 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.
Прво, правилото треба да ја содржи патеката до датотеката за евиденција, а потоа да ги следи сите насоки во заоблени загради.
- ротирај 7 - број на датотеки за чување - 7
- секојдневно - креирајте нова датотека секој ден
- компресирате - компресирајте и архивирајте ги старите датотеки
На сликата од екранот можете да видите дека во папката „ /var/log/ “ се наоѓаат главниот лог „ syslog “ и 7 архиви, што одговара на правилата во конфигурациската датотека.
Подетален опис на logrotate можете да најдете во упатството, извршувајќи ја командата „ man logrotate “.
Собирање логови на Линукс - дневник
Услугата за собирање логови 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
За да дознаете колку простор на дискот заземаат датотеките за евиденција за да се изврши следнава команда
journalctl --disk-usage
За да ја ограничите датотеката за евиденција на 1Gb, извршете ја следнава команда
journalctl --vacuum-size=1G
Отворање бинарни датотеки
Сега да погледнеме некои посебни датотеки во папката „ /var/log/ “ каде што се зачувани сите обиди за најавување. Овие датотеки се бинарни и можат да се отворат само со посебни програми.
/var/log/wtmp содржи информации за успешни обиди за најавување. Користете ја алатката last за да ја отворите.
/var/log/btmp - ги содржи сите неуспешни обиди за најавување. Може да се отвори со lastb со напредни дозволи. Атрибутот -n го дефинира бројот на линии прикажани од крајот на датотеката.
/var/log/lastlog - го содржи времето на последното најавување за секој запис на сметката. Може да се отвори со lastlog.