Сервериңиздин иштешинде кандайдыр бир көйгөйлөргө туш болгондо, биринчи кезекте 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/ " файлында өзүнчө файл түзгөн жакшы . Демейки шартта, бул каталогдо бир нече файл бар.
Келгиле, rsyslog кызматынын журналдарын айландыруу эрежелерин камтыган " /etc/logrotate.d/rsyslog " файлын карап көрөлү.
Биринчиден, эреже журнал файлына жолду камтышы керек, андан кийин ийри кашаалардын ичинде бардык көрсөтмөлөрдү өтүңүз.
- 7 айлануу - сактала турган файлдардын саны - 7
- күндө - күн сайын жаңы файл түзүү
- кысуу - эски файлдарды кысуу жана архивдөө
Скриншоттон " /var/log/ " папкасында " syslog " негизги журналы жана конфигурация файлындагы эрежелерге дал келген 7 архив бар экенин көрө аласыз.
logrotate'тин кененирээк сүрөттөмөсүн колдонмодон таба аласыз, ал жерде " man logrotate " буйругун аткарасыз.
Linux журналдарын чогултуу - журнал
Журналдарды чогултуу кызматы systemd-journald инициализациялоо системасынын бир бөлүгү болуп саналат . 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
Эгер сиз атрибут катары аткарылуучу файлдын жолун көрсөтсөңүз, утилита бул файл тарабынан жөнөтүлгөн бардык билдирүүлөрдү көрсөтөт. Келгиле, 2020-жылдын 18-февралында саат 04:15тен бери " /usr/bin/sudo " файлы тарабынан жөнөтүлгөн бардык билдирүүлөрдү көрсөтөлү. Чындыгында, ал жогорку уруксаттар менен аткарылган бардык буйруктарды көрсөтөт.
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 - ар бир аккаунт жазуусу үчүн акыркы кирүү аракетинин убактысын камтыйт. Аны lastlog менен ачса болот