Калі вы сутыкаецеся з якімі-небудзь праблемамі з прадукцыйнасцю вашага сервера, першае, што вы хочаце зрабіць, гэта праверце свае часопісы 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/auth.log» файл
less /var/log/auth.log
Кожны радок файла - гэта асобнае паведамленне, атрыманае ад прыкладання або службы. Усе паведамленні незалежна ад іх крыніцы маюць адзін фармат і складаюцца з 5 частак. Давайце ў якасці прыкладу возьмем вылучанае паведамленне на скрыншоце.
- Пазнака часу паведамлення - «12 лютага 06:18:33»
- Імя кампутара, які адправіў паведамленне - «vds»
- Назва праграмы або службы, якія адправілі паведамленне - «sshd»
- Ідэнтыфікатар працэсу - [653]
- Тэкст паведамлення - “Прыняты пароль для mihail ад 188.19.42.165 порт 2849 ssh2”
Гэта быў прыклад паспяховага падключэння да SSH.
А вось як выглядае няўдалая спроба ўваходу ў сістэму:
Гэты файл таксама запісвае каманды з пашыранымі дазволамі
Давайце адкрыем / Вар / Часопіс / сістэмны часопіс файл
Выдзеленае паведамленне на скрыншоце - паведамленне аб адключэнні сеткавага інтэрфейсу.
Для пошуку інфармацыі праз доўгія тэкставыя файлы выкарыстоўвайце Grep карыснасць. Вы можаце знайсці ўсе паведамленні, атрыманыя ад pptpd абслугоўванне ў «/ Вар / Часопіс / сістэмны часопіс” файл.
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/"папка, у якой знаходзіцца галоўны журнал"сістэмны часопіс» і 7 архіваў, што адпавядае правілам у канфігурацыйным файле.
Вы можаце знайсці больш падрабязнае апісанне logrotate ў кіраўніцтве, выконваючы «чалавек 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
Каб даведацца, колькі месца на дыску займаюць файлы часопісаў, трэба выканаць наступную каманду
journalctl --disk-usage
Каб абмежаваць файл часопіса да 1 Гб, выканайце наступную каманду
journalctl --vacuum-size=1G
Адкрыццё бінарных файлаў
Зараз давайце паглядзім на некаторыя спецыяльныя файлы ў «/var/log/"Папка, у якой захоўваюцца ўсе спробы ўваходу. Гэтыя файлы з'яўляюцца бінарнымі і могуць быць адкрыты толькі з дапамогай спецыяльных праграм.
/var/log/wtmp змяшчае інфармацыю аб паспяховых спробах уваходу. Выкарыстоўвайце апошнюю ўтыліту, каб адкрыць яго.
/var/log/btmp - змяшчае ўсе няўдалыя спробы ўваходу. Яго можна адкрыць з дапамогай lastb з пашыранымі дазволамі. Атрыбут -n вызначае колькасць радкоў, якія адлюстроўваюцца з канца файла.
/var/log/lastlog - змяшчае час апошняга ўваходу ў сістэму для кожнага запісу ўліковага запісу. Яго можна адкрыць з дапамогай апошні журнал