Serveringizning ishlashi bilan bog'liq biron bir muammoga duch kelsangiz, birinchi navbatda Linux jurnallaringizni tekshirishingiz kerak . Tizim jurnalida siz operatsion tizimning yadrosi yoki turli xizmatlar kabi turli komponentlaridan foydali diagnostika xabarlarini topishingiz mumkin, shuning uchun siz u yerda nosozlik sababini topishingiz mumkin.
Jurnaldagi har bir xabar operatsion tizimdagi ma'lum hodisalar natijasida hosil bo'ladi: foydalanuvchi, avtorizatsiyadan tortib, xizmatni o'chirish yoki dasturning ishlamay qolishigacha. Bu voqealar qanchalik muhimligiga qarab turli ustuvorliklarga ega. Linuxda quyidagi hodisalar turlari mavjud:
emerg- muvaffaqiyatsizlik, eng yuqori ustuvorlik;alert- shoshilinch ogohlantirish;crit- tanqidiy hodisa;err- oddiy xato;warn- oddiy ogohlantirish;notice- xabarnoma;info- axborot xabari;debug- disk raskadrovka ma'lumotlari;
Hozirgi vaqtda Linuxda asosiy jurnallarni yig'ish xizmatlari rsyslog va systemd-journald hisoblanadi . Ular zamonaviy distributiv paketlarning aksariyati bilan ishlaydi va mustaqil ravishda ishlaydi.
rsyslog
Ushbu xizmatning jurnallari “ /var/log/ ” papkasida oddiy matnli fayllar ko'rinishida joylashgan . Jurnal xabarlari hodisa turiga qarab turli fayllarga joylashtiriladi. Masalan, “ /var/log/auth.log ” tizimdagi foydalanuvchilarning avtorizatsiyasi haqidagi ma'lumotlarni, “ /var/log/kern.log ” esa yadro xabarlarini o'z ichiga oladi. Fayl nomlari tarqatish paketlarida farq qilishi mumkin, shuning uchun “ /etc/rsyslog.d/50-default.conf ” qayerda joylashganligini tushunish uchun konfiguratsiya faylini ko'rib chiqaylik.
Ushbu qoidalar har bir turdagi jurnal xabarlarini o'z ichiga olgan faylni ko'rsatadi. Chap qismda xabar turi quyidagi “ [Manba].[Ustuvorlik] ” shaklida, o'ng qismda esa jurnal faylining nomi ko'rsatiladi. Xabar turini yozishda “ * ” belgisi qo'shilishi mumkin. Bu bo'sh qiymat yoki uni ro'yxatdan olib tashlaydigan “ yo'q ” degan ma'noni anglatadi. Keling, dastlabki ikkita qoidani batafsil ko'rib chiqaylik.
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
Birinchi qoida avtorizatsiya mexanizmidan olingan barcha xabarlar “ /var/log/auth.log ” fayliga yozib olinishini anglatadi . Barcha avtorizatsiya urinishlari (ham muvaffaqiyatli, ham muvaffaqiyatsiz) ushbu faylda qayd etiladi. Ikkinchi qoida avtorizatsiya bilan bog'liq xabarlardan tashqari barcha xabarlar “ /var/log/syslog ” fayliga yozib olinishini ko'rsatadi. Bu ikkita fayl odatda eng mashhur hisoblanadi. Quyidagi qoidalar yadro jurnallari “ kern.* ” va pochta xizmati jurnallari “ mail.* ” ni saqlash yo'lini belgilaydi.
Jurnal fayllarini istalgan matn muharriri, masalan, less , cat , tail yordamida ochish mumkin . Keling, “ /var/log/auth.log ” faylini ochamiz.
less /var/log/auth.log
Faylning har bir satri ilova yoki xizmatdan olingan alohida xabardir. Barcha xabarlar manbasidan qat'iy nazar bitta formatga ega va 5 qismdan iborat. Misol tariqasida skrinshotdagi ta'kidlangan xabarni olaylik.
- Xabar vaqti belgisi - “12-fevral 06:18:33”
- Xabarni yuborgan kompyuter nomi - "vds"
- Xabarni yuborgan dastur yoki xizmat nomi - "sshd"
- Jarayon identifikatori - [653]
- Xabar matni - "Mihail uchun 188.19.42.165 port 2849 ssh2 dan qabul qilingan parol"
Bu SSH ga muvaffaqiyatli ulanishning namunasi edi.
Muvaffaqiyatsiz kirish urinishi quyidagicha ko'rinadi:
Ushbu fayl kengaytirilgan ruxsatnomalarga ega buyruqlarni ham yozib oladi
Keling , /var/log/syslog faylini ochamiz
Skrinshotda ta'kidlangan xabar tarmoq interfeysining o'chirilishi haqidagi xabardir.
Uzun matnli fayllar orqali ma'lumot qidirish uchun grep yordam dasturidan foydalaning. Siz pptpd xizmatidan olingan barcha xabarlarni " /var/log/syslog " faylida topishingiz mumkin .
grep 'pptpd' /var/log/syslog
Diagnostika paytida siz fayllarning bir nechta oxirgi qatorlarini ko'rsata oladigan tail yordam dasturidan foydalanishingiz mumkin. " tail -f /var/log/syslog " buyrug'i sizga jurnallarning yozilishini real vaqt rejimida ko'rish imkonini beradi.
rsyslog xizmati juda moslashuvchan va kuchli. Undan mahalliy tizimlarda ham, korxona darajasida ham jurnallarni yig'ish uchun foydalanish mumkin. To'liq hujjatlarni rasmiy veb-saytda topishingiz mumkin https://www.rsyslog.com/
Linuxda jurnallar aylanishi
Jurnallarni yozib olish doimiy ravishda amalga oshiriladi, shuning uchun fayllar hajmi doimiy ravishda o'sib boradi. Aylantirish mexanizmi eski jurnallarni avtomatik arxivlashni va yangi fayllarni yaratishni ta'minlaydi. Qoidalarga qarab, bu har kuni, haftalik, oylik yoki o'lcham chegarasi bo'yicha amalga oshirilishi mumkin. Yangi jurnallar yaratilganda, eskilarini shunchaki o'chirish yoki elektron pochta orqali yuborish mumkin. Jurnallarni aylantirish logrotate yordamchi dasturi tomonidan amalga oshiriladi. Asosiy konfiguratsiyani “ /etc/logrotate.conf ” faylida topishingiz mumkin . Fayllar tarkibi ham “ /etc/logrotate.d/ ” papkasida qayta ishlanadi.
Yangi qoidalarni asosiy konfiguratsiya fayliga kiritish mumkin. Biroq, " /etc/logrotate.d/ " da alohida fayl yaratish yaxshidir . Odatiy bo'lib, bu katalogda bir nechta fayllar mavjud.
Keling, rsyslog xizmati jurnallari uchun aylanish qoidalarini o'z ichiga olgan “ /etc/logrotate.d/rsyslog ” faylini ko'rib chiqaylik.
Birinchidan, qoida jurnal fayliga yo'lni o'z ichiga olishi kerak va keyin barcha ko'rsatmalarni egri qavslar ichida o'tkazish kerak.
- 7. aylantirish - saqlanadigan fayllar soni - 7
- kundalik - har kuni yangi fayl yarating
- siq - eski fayllarni siqish va arxivlash
Skrinshotda " /var/log/ " papkasida asosiy " syslog " jurnali va konfiguratsiya faylidagi qoidalarga mos keladigan 7 ta arxiv mavjudligini ko'rishingiz mumkin.
Logrotate ning batafsil tavsifini qo'llanmada “ man logrotate ” buyrug'ini bajarib topishingiz mumkin.
Linux jurnallarini yig'ish - jurnalda
systemd-journald jurnallarni yig'ish xizmati systemd boshlang'ich tizimining bir qismidir . Linux jurnal fayllari “ /var/log/journal/ ” da maxsus formatda saqlanadi va journalctl yordamchi dasturi yordamida ochilishi mumkin . Yozuvlar formati rsyslog bilan bir xil.
Atributsiz journalctl buyrug'i barcha yozuvlarni ko'rsatadi, lekin u katta jurnallar uchun mos emas. Keling, ushbu yordamchi dasturning ba'zi variantlarini ko'rib chiqaylik.
journalctl -b- oxirgi boshlanganidan beri barcha yozuvlarni ko'rsatishjournalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- ma'lum vaqt oralig'ida yozuvni ko'rsatishjournalctl -u pptpd- ma'lum bir xizmatning yozuvlarini ko'rsatishjournalctl -k- yadro xabarlarini ko'rsatishjournalctl -p err- ma'lum bir ustuvorlikdagi xabarlarni ko'rsatish, bu holda muhimroq xabarlar (kritik, ogohlantirish, favqulodda)journalctl -f- real vaqtda xabarlarni ko'rsatish
Yaxshiroq moslashuvchanlik uchun siz ushbu variantlarni birlashtirishingiz mumkin. Keling, pptpd xizmatining barcha xatolarini ko'rsataylik.
journalctl -u pptpd -p err
Agar siz bajariladigan faylga yo'lni atribut sifatida ko'rsatsangiz, yordamchi dastur ushbu fayl tomonidan yuborilgan barcha xabarlarni ko'rsatadi. Keling, 2020-yil 18-fevral kuni soat 04:15 dan beri " /usr/bin/sudo " fayli tomonidan yuborilgan barcha xabarlarni ko'rsataylik. Aslida, u yuqori ruxsatnomalar bilan bajarilgan barcha buyruqlarni ko'rsatadi.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
Quyidagi buyruqni bajarish uchun jurnal fayllari qancha disk maydoni egallashini bilish uchun
journalctl --disk-usage
Jurnal faylini 1 Gb bilan cheklash uchun quyidagi buyruqni bajaring
journalctl --vacuum-size=1G
Ikkilik fayllarni ochish
Endi barcha kirish urinishlari saqlanadigan “ /var/log/ ” papkasidagi ba'zi maxsus fayllarni ko'rib chiqaylik . Bu fayllar ikkilik bo'lib, faqat maxsus dasturlar yordamida ochilishi mumkin.
/var/log/wtmp faylida muvaffaqiyatli kirish urinishlari haqida ma'lumotlar mavjud. Uni ochish uchun oxirgi yordamchi dasturdan foydalaning.
/var/log/btmp - barcha muvaffaqiyatsiz kirish urinishlarini o'z ichiga oladi. Uni kengaytirilgan ruxsatnomalar bilan lastb bilan ochish mumkin. -n atributi fayl oxiridan boshlab ko'rsatiladigan qatorlar sonini belgilaydi.
/var/log/lastlog - har bir hisob yozuvi uchun oxirgi kirish amalining vaqtini o'z ichiga oladi. Uni lastlog bilan ochish mumkin