База ведаў Простая інструкцыя па працы з сэрвісам Профітсервер
галоўны База ведаў Як чытаць журналы 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. Ідэнтыфікатар працэсу - [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
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 змяшчае інфармацыю пра паспяховыя спробы ўваходу. Каб адкрыць яго, выкарыстайце ўтыліту last.

утыліта lastlog

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

/var/log/lastlog — змяшчае час апошняга ўваходу ў сістэму для кожнага запісу ўліковага запісу. Яго можна адкрыць з дапамогай lastlog.

❮ Папярэдні артыкул Лінукс тэкставыя рэдактары
Наступны артыкул ❯ Як наладзіць сеткавыя інтэрфейсы ў CentOS

Спытайце нас пра VPS

Мы заўсёды гатовы адказаць на вашы пытанні ў любы час дня і ночы.