သင့်ဆာဗာ၏စွမ်းဆောင်ရည်နှင့်ပတ်သက်၍ ပြဿနာတစ်စုံတစ်ရာနှင့် ရင်ဆိုင်ရသည့်အခါ၊ သင်ပထမဆုံးလုပ်လိုသည်မှာ သင့် Linux မှတ်တမ်းများကို စစ်ဆေးရန် ဖြစ်သည် ။ system log တွင် kernel သို့မဟုတ် ဝန်ဆောင်မှုအမျိုးမျိုးကဲ့သို့သော operating system ၏ အစိတ်အပိုင်းအမျိုးမျိုးမှ အသုံးဝင်သော diagnostics မက်ဆေ့ချ်အချို့ကို သင်တွေ့ရှိနိုင်သောကြောင့် ချို့ယွင်းမှုအကြောင်းရင်းကို ထိုနေရာတွင် ရှာတွေ့နိုင်ဖွယ်ရှိသည်။
မှတ်တမ်းရှိ မက်ဆေ့ဂျ်တိုင်းကို လည်ပတ်မှုစနစ်ရှိ အချို့သောဖြစ်ရပ်များ၏ ရလဒ်ဖြင့် ထုတ်ပေးသည်- အသုံးပြုသူထံမှ ခွင့်ပြုချက်၊ ဝန်ဆောင်မှုပိတ်ခြင်း သို့မဟုတ် အက်ပ်ပလီကေးရှင်း မအောင်မြင်ခြင်းအထိ။ ဤဖြစ်ရပ်များသည် ၎င်းတို့မည်မျှဝေဖန်ခံရမှုအပေါ် မူတည်ပြီး ကွဲပြားသောဦးစားပေးမှုများရှိသည်။ Linux တွင် အောက်ပါ ပွဲအမျိုးအစားများ ရှိပါသည်။
emerg- ကျရှုံးမှု၊ အမြင့်ဆုံးဦးစားပေး။alert- အရေးပေါ်သတိပေးချက်;crit- အရေးကြီးသောဖြစ်ရပ်;err- သာမန်အမှား;warn- သာမန်သတိပေးချက်;notice- အသိပေးချက်;info- သတင်းအချက်အလက်သတင်းစကား;debug- အမှားပြင်ဆင်ခြင်းအချက်အလက်;
လောလောဆယ်တွင် Linux တွင် အဓိက logs harvesting service များမှာ rsyslog နှင့် systemd-journald တို့ဖြစ်သည် ။ ၎င်းတို့သည် ခေတ်မီ distribution package အများစုနှင့်အတူ လိုက်ပါသွားပြီး သီးခြားစီအလုပ်လုပ်ကြသည်။
rsyslog
ဤဝန်ဆောင်မှု၏ မှတ်တမ်းများကို သာမန်စာသားဖိုင်များပုံစံဖြင့် “ /var/log/ ” ဖိုင်တွဲ တွင် တည်ရှိသည် ။ မှတ်တမ်းမက်ဆေ့ချ်များကို ဖြစ်ရပ်အမျိုးအစားပေါ် မူတည်၍ မတူညီသောဖိုင်များတွင် ထည့်ထားသည်။ ဥပမာအားဖြင့်၊ “ /var/log/auth.log ” တွင် စနစ်အတွင်းရှိ အသုံးပြုသူများ၏ ခွင့်ပြုချက်ဆိုင်ရာ အချက်အလက်များပါဝင်ပြီး “ /var/log/kern.log ” တွင် kernel မက်ဆေ့ချ်များပါဝင်သည်။ ဖိုင်အမည်များသည် ဖြန့်ဖြူးမှု package များအလိုက် ကွဲပြားနိုင်သောကြောင့် “ /etc/rsyslog.d/50-default.conf ” သည် မည်သည့်နေရာတွင်ရှိသည်ကို သိရှိရန် config ဖိုင်ကို ကြည့်ကြပါစို့။
ဤစည်းမျဉ်းများသည် လော့ဂ်မက်ဆေ့ချ်အမျိုးအစားတစ်ခုစီပါရှိသော ဖိုင်ကိုပြသသည်။ ဘယ်ဘက်ခြမ်းသည် အောက်ပါပုံစံဖြင့် " [Source].[Priority] " မက်ဆေ့ချ်အမျိုးအစားကိုပြသပြီး ညာဘက်ခြမ်းသည် လော့ဂ်ဖိုင်၏အမည်ကိုပြသသည်။ မက်ဆေ့ချ်အမျိုးအစားကိုရေးသားနေစဉ် " * " စာလုံးကိုထည့်သွင်းနိုင်သည်။ ၎င်းသည် လစ်လပ်နေသောတန်ဖိုး သို့မဟုတ် စာရင်းမှဖယ်ရှားသည့် " none " ကိုဆိုလိုသည် ။ ပထမစည်းမျဉ်းနှစ်ခုကို အနီးကပ်ကြည့်ကြပါစို့။
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
ပထမစည်းမျဉ်းက ခွင့်ပြုချက်ယန္တရားကနေ လက်ခံရရှိတဲ့ မက်ဆေ့ချ်အားလုံးကို “ /var/log/auth.log ” ဖိုင်ထဲမှာ မှတ်တမ်းတင်ထားမယ်လို့ ဆိုလိုပါတယ်။ ခွင့်ပြုချက်ကြိုးပမ်းမှုအားလုံးကို (အောင်မြင်သည်ဖြစ်စေ မအောင်မြင်သည်ဖြစ်စေ) ဒီဖိုင်ထဲမှာ မှတ်ပုံတင်ထားမှာပါ။ ဒုတိယစည်းမျဉ်းက ခွင့်ပြုချက်နဲ့ ချိတ်ဆက်ထားတဲ့ မက်ဆေ့ချ်တွေကလွဲလို့ ကျန်တဲ့ မက်ဆေ့ချ်အားလုံးကို “ /var/log/syslog ” ဖိုင်ထဲမှာ မှတ်တမ်းတင်ထားမယ်လို့ ဆိုလိုပါတယ်။ ဒီဖိုင်နှစ်ခုက အသုံးအများဆုံးပါ။ အောက်ပါစည်းမျဉ်းတွေက kernel logs “ kern.* ” နဲ့ mail service logs “ mail.* ” တွေကို သိမ်းဆည်းဖို့ လမ်းကြောင်းကို သတ်မှတ်ပေးပါတယ်။
Log ဖိုင်တွေကို less , cat , tail စတဲ့ text editor တစ်ခုခုရဲ့ အကူအညီနဲ့ ဖွင့်နိုင်ပါတယ် ။ “ /var/log/auth.log ” ဖိုင်ကို ဖွင့်ကြည့်ရအောင်။
less /var/log/auth.log
ဖိုင်လိုင်းတိုင်းသည် အပလီကေးရှင်း သို့မဟုတ် ဝန်ဆောင်မှုမှရရှိသော သီးခြားမက်ဆေ့ဂျ်ဖြစ်သည်။ ၎င်းတို့၏ အရင်းအမြစ်နှင့် မသက်ဆိုင်ဘဲ မက်ဆေ့ဂျ်များအားလုံးတွင် ဖော်မတ်တစ်ခု ရှိပြီး အပိုင်း ၅ ပိုင်း ပါဝင်ပါသည်။ နမူနာအဖြစ် စခရင်ရှော့ရှိ မီးမောင်းထိုးပြထားသည့် မက်ဆေ့ချ်ကို ယူကြပါစို့။
- မက်ဆေ့ဂျ်အချိန်တံဆိပ် - “ဖေဖော်ဝါရီ ၁၂ ၀၆:၁၈:၃၃”
- မက်ဆေ့ချ်ပို့သော ကွန်ပျူတာအမည် - "vds"
- မက်ဆေ့ချ်ပို့သော အက်ပ် သို့မဟုတ် ဝန်ဆောင်မှုအမည် - “sshd”
- လုပ်ငန်းစဉ် ID - [653]
- မက်ဆေ့ချ်စာသား - "188.19.42.165 port 2849 ssh2 မှ mihail အတွက် လက်ခံထားသော စကားဝှက်
ဤသည်မှာ SSH သို့ အောင်မြင်သော ချိတ်ဆက်မှု၏ ဥပမာတစ်ခုဖြစ်သည်။
မအောင်မြင်သော အကောင့်ဝင်ရန် ကြိုးစားပုံသည် ဤအရာဖြစ်သည်-
ဤဖိုင်သည် အဆင့်မြင့်ခွင့်ပြုချက်များဖြင့် အမိန့်များကို မှတ်တမ်းတင်ပါသည်။
/var/log/syslog ဖိုင်ကို ဖွင့်ကြည့်ရအောင်။
ဖန်သားပြင်ပေါ်တွင် မီးမောင်းထိုးပြထားသည့် မက်ဆေ့ဂျ်သည် ကွန်ရက်ချိတ်ဆက်မှု ပိတ်ခြင်းအကြောင်း မက်ဆေ့ချ်ဖြစ်သည်။
ရှည်လျားသောစာသားဖိုင်များမှတစ်ဆင့် အချက်အလက်များကိုရှာဖွေရန်အတွက် grep utility ကိုသုံးပါ။ pptpd ဝန်ဆောင်မှုမှလက်ခံရရှိသော မက်ဆေ့ချ်အားလုံးကို “ /var/log/syslog ” ဖိုင် တွင် သင်ရှာဖွေနိုင်ပါသည် ။
grep 'pptpd' /var/log/syslog
ရောဂါရှာဖွေနေစဉ်အတွင်း ဖိုင်တွေရဲ့ နောက်ဆုံးစာကြောင်းတွေကို ပြသပေးနိုင်တဲ့ tail utility ကို အသုံးပြုနိုင်ပါတယ် ။ “ tail -f /var/log/syslog ” command က မှတ်တမ်းတင်ထားတဲ့ log တွေကို အချိန်နဲ့တပြေးညီ ကြည့်ရှုနိုင်စေပါလိမ့်မယ်။
rsyslog ဝန်ဆောင်မှု သည် အလွန်ပြောင်းလွယ်ပြင်လွယ်ရှိပြီး အစွမ်းထက်ပါသည်။ ၎င်းကို ဒေသတွင်းစနစ်များအပြင် enterprise အဆင့်တွင် မှတ်တမ်းများစုဆောင်းရန်အတွက် အသုံးပြုနိုင်ပါသည်။ စာရွက်စာတမ်းအပြည့်အစုံကို https://www.rsyslog.com/ ၏ တရားဝင်ဝက်ဘ်ဆိုက်တွင် ရှာဖွေနိုင်ပါသည်။
Linux တွင် မှတ်တမ်းများလှည့်ခြင်း။
မှတ်တမ်းမှတ်တမ်းတင်ခြင်းသည် အဆက်မပြတ်ဖြစ်ပေါ်နေသောကြောင့် ဖိုင်များ၏အရွယ်အစားသည် အဆက်မပြတ်တိုးလာပါသည်။ လည်ပတ်မှုယန္တရားသည် မှတ်တမ်းဟောင်းများကို အလိုအလျောက် မော်ကွန်းတင်ခြင်းနှင့် ဖိုင်အသစ်များဖန်တီးခြင်းကို သေချာစေသည်။ စည်းမျဉ်းများပေါ် မူတည်၍ ၎င်းသည် နေ့စဉ်၊ အပတ်စဉ်၊ လစဉ် သို့မဟုတ် အရွယ်အစားကန့်သတ်ချက်အရ ဖြစ်ပေါ်နိုင်သည်။ မှတ်တမ်းအသစ်များ ဖန်တီးသည်နှင့်အမျှ မှတ်တမ်းဟောင်းများကို ဖျက်ပစ်နိုင်သည် သို့မဟုတ် အီးမေးလ်ဖြင့် ပေးပို့နိုင်သည်။ မှတ်တမ်းများ လည်ပတ်မှုကို logrotate utility မှ လုပ်ဆောင်သည်။ အဓိက configuration ကို “ /etc/logrotate.conf ” ဖိုင်တွင် သင်ရှာဖွေနိုင်သည်။ ဖိုင်အကြောင်းအရာများကို “ /etc/logrotate.d/ ” ဖိုင်တွဲ တွင်လည်း စီမံဆောင်ရွက်သည်။
စည်းမျဉ်းအသစ်များကို အဓိက config ဖိုင်ထဲသို့ မှတ်တမ်းတင်နိုင်ပါသည်။ သို့သော် “ /etc/logrotate.d/ ” တွင် သီးခြားဖိုင်တစ်ခု ဖန်တီးခြင်းသည် အကောင်းဆုံးဖြစ်သည်။ မူရင်းအားဖြင့် ဤ directory တွင် ဖိုင်အနည်းငယ်ရှိသည်။
rsyslog service ရဲ့ log တွေအတွက် rotation rules တွေပါတဲ့ “ /etc/logrotate.d/rsyslog ” ဖိုင်ကို ကြည့်ကြရအောင် ။
ဦးစွာ၊ စည်းမျဉ်းသည် မှတ်တမ်းဖိုင်သို့ လမ်းကြောင်းပါ၀င်ပြီး လမ်းညွှန်ချက်အားလုံးကို အကွေးကွင်းပိတ်ဖြင့် သွားရပါမည်။
- 7 လှည့် - သိမ်းဆည်းရန် ဖိုင်အရေအတွက် - ၇
- နေ့စဉ် - နေ့တိုင်း ဖိုင်အသစ်ဖန်တီးပါ။
- သိပ် - ဖိုင်ဟောင်းများကို ချုံ့ပြီး သိမ်းဆည်းပါ။
“ /var/log/ ” folder ထဲမှာ main log “ syslog ” နဲ့ config file ထဲက rules တွေနဲ့ ကိုက်ညီတဲ့ archive ၇ ခု ရှိတာကို screenshot မှာ မြင်နိုင်ပါတယ် ။
logrotate အကြောင်း ပိုမိုအသေးစိတ်ဖော်ပြချက်ကို လက်စွဲစာအုပ်တွင် ရှာတွေ့နိုင်ပြီး “ man logrotate ” command ကို လုပ်ဆောင်နိုင်ပါသည်။
Linux မှတ်တမ်းများ စုဆောင်းခြင်း - ဂျာနယ်
မှတ်တမ်းများ ရိတ်သိမ်းခြင်း ဝန်ဆောင်မှု systemd-journald သည် initialization system systemd ၏ အစိတ်အပိုင်းတစ်ခုဖြစ်သည်။ Linux မှတ်တမ်းဖိုင်များကို “ /var/log/journal/ ” တွင် အထူးဖော်မတ်ဖြင့် သိမ်းဆည်းထားပြီး journalctl utility ၏ အကူအညီဖြင့် ဖွင့်နိုင်သည် ။ မှတ်တမ်းဖော်မတ်သည် rsyslog တွင်နှင့် တစ်ထပ်တည်းဖြစ်သည် ။
attribute တွေမပါတဲ့ journalctl command က record အားလုံးကိုပြပေမယ့် log ကြီးတွေအတွက်တော့ မသင့်တော်ပါဘူး။ ဒီ utility ရဲ့ option အချို့ကို ကြည့်ကြရအောင်။
journalctl -b- နောက်ဆုံးစတင်ချိန်မှစ၍ မှတ်တမ်းအားလုံးကိုပြသပါ။journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- သတ်မှတ်ထားသောအချိန်ကာလတစ်ခုအတွင်း မှတ်တမ်းကိုပြသပါ။journalctl -u pptpd- အချို့သောဝန်ဆောင်မှု၏မှတ်တမ်းများကိုပြသပါ။journalctl -k- kernel မက်ဆေ့ခ်ျကိုပြသပါ။journalctl -p err- ဤကိစ္စတွင် အချို့သော ဦးစားပေး မက်ဆေ့ချ်များ၊ ပိုမို ဦးစားပေး မက်ဆေ့ချ်များ (crit၊ သတိပေးချက်၊ ထွက်လာသည်)journalctl -f- အချိန်နှင့်တပြေးညီမက်ဆေ့ချ်များကိုပြသပါ။
ပိုမိုကောင်းမွန်သော ပြောင်းလွယ်ပြင်လွယ်ရှိစေရန်အတွက် ဤရွေးချယ်မှုများကို ပေါင်းစပ်နိုင်ပါသည်။ pptpd ဝန်ဆောင်မှု ၏ အမှားအယွင်းအားလုံးကို ပြသကြပါစို့။
journalctl -u pptpd -p err
executable file ရဲ့ path ကို attribute အနေနဲ့ သတ်မှတ်မယ်ဆိုရင် utility က ဒီ file က ပို့လိုက်တဲ့ message အားလုံးကို ပြပါလိမ့်မယ်။ ၂၀၂၀ ဖေဖော်ဝါရီ ၁၈ ရက် ၀၄:၁၅ နာရီကတည်းက “ /usr/bin/sudo ” file က ပို့လိုက်တဲ့ message အားလုံးကို ပြကြည့်ရအောင်။ အမှန်တော့၊ permission မြင့်မြင့်နဲ့ execute လုပ်ထားတဲ့ command အားလုံးကို ပြပါလိမ့်မယ်။
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
အောက်ပါ command ကို execute လုပ်ရန် disk space log files မည်မျှယူသည်ကို သိရှိရန်
journalctl --disk-usage
မှတ်တမ်းဖိုင်ကို 1Gb ကန့်သတ်ရန်အတွက် အောက်ပါ command ကို လုပ်ဆောင်ပါ။
journalctl --vacuum-size=1G
binary ဖိုင်များကိုဖွင့်ခြင်း။
အခု login ကြိုးစားမှုအားလုံးကို သိမ်းဆည်းထားတဲ့ “ /var/log/ ” folder ထဲက အထူးဖိုင်တချို့ကို ကြည့်ကြရအောင် ။ ဒီဖိုင်တွေက binary ဖြစ်ပြီး အထူးပရိုဂရမ်တွေနဲ့ပဲ ဖွင့်လို့ရပါတယ်။
/var/log/wtmp တွင် အောင်မြင်စွာ ဝင်ရောက်နိုင်ခဲ့သည့် အချက်အလက်များ ပါဝင်သည်။ ၎င်းကိုဖွင့်ရန် နောက်ဆုံး utility ကို အသုံးပြုပါ။
/var/log/btmp - မအောင်မြင်သော login ကြိုးပမ်းမှုအားလုံးပါဝင်သည်။ ၎င်းကို အဆင့်မြင့်ခွင့်ပြုချက်များဖြင့် lastb ဖြင့်ဖွင့်နိုင်သည်။ Attribute -n သည် ဖိုင်၏အဆုံးမှပြသသောစာကြောင်းအရေအတွက်ကို သတ်မှတ်ပေးသည်။
/var/log/lastlog - အကောင့်မှတ်တမ်းတိုင်းအတွက် နောက်ဆုံးဝင်ရောက်ခဲ့သည့်အချိန် ပါဝင်သည်။ ၎င်းကို lastlog ဖြင့်ဖွင့်နိုင်သည်။