Zimbra OSE မှတ်တမ်းများနှင့် အလုပ်လုပ်ပုံ

ဖြစ်ပေါ်နေသော အဖြစ်အပျက်များအားလုံးကို မှတ်တမ်းတင်ခြင်းသည် မည်သည့်ကော်ပိုရိတ်စနစ်၏ အရေးကြီးဆုံးလုပ်ဆောင်ချက်များထဲမှ တစ်ခုဖြစ်သည်။ မှတ်တမ်းများသည် သင့်အား ပေါ်ပေါက်လာသော ပြဿနာများကို ဖြေရှင်းရန်၊ သတင်းအချက်အလက်စနစ်များ၏ လည်ပတ်မှုကို စစ်ဆေးရန်နှင့် သတင်းအချက်အလက် လုံခြုံရေးဆိုင်ရာ အဖြစ်အပျက်များကို စုံစမ်းရန် ခွင့်ပြုပေးပါသည်။ Zimbra OSE သည် ၎င်း၏လုပ်ဆောင်ချက်အသေးစိတ်မှတ်တမ်းများကို သိမ်းဆည်းထားသည်။ ၎င်းတို့တွင် ဆာဗာစွမ်းဆောင်ရည်မှ သုံးစွဲသူများ၏ အီးမေးလ်များ ပေးပို့ခြင်းနှင့် လက်ခံခြင်းအထိ ဒေတာအားလုံး ပါဝင်ပါသည်။ သို့သော် Zimbra OSE မှထုတ်ပေးသောမှတ်တမ်းများကိုဖတ်ခြင်းသည်အသေးအဖွဲမဟုတ်သောအလုပ်ဖြစ်သည်။ ဤဆောင်းပါးတွင်၊ တိကျသောဥပမာကိုအသုံးပြု၍ Zimbra OSE မှတ်တမ်းများကိုမည်ကဲ့သို့ဖတ်ရမည်နှင့်၎င်းတို့ကိုဗဟိုချုပ်ကိုင်ထားပုံကိုပြောပြပါမည်။

Zimbra OSE မှတ်တမ်းများနှင့် အလုပ်လုပ်ပုံ
Zimbra OSE သည် /opt/zimbra/log ဖိုင်တွဲတွင် ဒေသဆိုင်ရာမှတ်တမ်းများအားလုံးကို သိမ်းဆည်းထားပြီး မှတ်တမ်းများကို /var/log/zimbra.log ဖိုင်တွင်လည်း တွေ့ရှိနိုင်ပါသည်။ ယင်းတို့အနက် အရေးကြီးဆုံးမှာ mailbox.log ဖြစ်သည်။ ၎င်းသည် မေးလ်ဆာဗာတွင် ဖြစ်ပေါ်သည့် လုပ်ဆောင်ချက်များကို မှတ်တမ်းတင်သည်။ ၎င်းတို့တွင် အီးမေးလ်များ ပေးပို့ခြင်း၊ အသုံးပြုသူ စစ်မှန်ကြောင်း အတည်ပြုခြင်း ဒေတာ၊ အကောင့်ဝင်ရန် ကြိုးပမ်းမှု မအောင်မြင်ခြင်းနှင့် အခြားအရာများ ပါဝင်သည်။ mailbox.log တွင် ထည့်သွင်းမှုများသည် ဖြစ်ရပ်ဖြစ်ပွားသည့်အချိန်၊ ဖြစ်ရပ်အဆင့်၊ ဖြစ်ရပ်ဖြစ်ပွားခဲ့သည့် thread နံပါတ်၊ အသုံးပြုသူအမည်နှင့် IP လိပ်စာအပြင် ပွဲ၏ စာသားဖော်ပြချက်တို့ပါရှိသော စာသားစာတန်းတစ်ခုဖြစ်သည်။ .

Zimbra OSE မှတ်တမ်းများနှင့် အလုပ်လုပ်ပုံ

မှတ်တမ်းအဆင့်သည် ဆာဗာ၏ လုပ်ဆောင်မှုအပေါ် ဖြစ်ရပ်၏ လွှမ်းမိုးမှုအတိုင်းအတာကို ညွှန်ပြသည်။ ပုံမှန်အားဖြင့် အဖြစ်အပျက်အဆင့် 4 ခုရှိသည်- INFO၊ သတိပေးချက်၊ အမှားနှင့် FATAL။ ပြင်းထန်မှုအစီအစဥ်ကို တိုးမြှင့်ရန်အတွက် အဆင့်အားလုံးကို ကြည့်ကြပါစို့။

  • အချက်အလက် - ဤအဆင့်ရှိ အစီအစဉ်များသည် Zimbra OSE ၏ တိုးတက်မှုအကြောင်း အသိပေးရန် ရည်ရွယ်ပါသည်။ ဤအဆင့်ရှိ မက်ဆေ့ဂျ်များတွင် စာတိုက်ပုံးတစ်ခု ဖန်တီးခြင်း သို့မဟုတ် ဖျက်ခြင်းဆိုင်ရာ အစီရင်ခံစာများ စသည်တို့ ပါဝင်ပါသည်။
  • သတိပေးချက် - ဤအဆင့်၏ဖြစ်ရပ်များသည် အန္တရာယ်ရှိနိုင်သည့် အခြေအနေများကို အသိပေးသော်လည်း ဆာဗာ၏လည်ပတ်မှုကို မထိခိုက်စေပါ။ ဥပမာအားဖြင့်၊ သတိပေးချက်အဆင့်သည် မအောင်မြင်သောအသုံးပြုသူ၏ဝင်ရောက်ရန်ကြိုးပမ်းမှုအကြောင်း မက်ဆေ့ချ်ကို အမှတ်အသားပြုပါသည်။
  • အမှားအယွင်း - မှတ်တမ်းရှိ ဤဖြစ်ရပ်အဆင့်သည် စက်တွင်းသဘောသဘာဝဖြစ်ပြီး ဆာဗာ၏လုပ်ဆောင်မှုကို အနှောင့်အယှက်မဖြစ်စေသော အမှားတစ်ခုဖြစ်ပွားမှုအကြောင်း အသိပေးသည်။ ဤအဆင့်သည် သုံးစွဲသူတစ်ဦးချင်းစီ၏ အညွှန်းဒေတာ ပျက်စီးသွားသည့် အမှားတစ်ခုကို အလံပြနိုင်သည်။
  • FATAL - ဤအဆင့်သည် ဆာဗာအား ပုံမှန်အတိုင်း ဆက်လက်မလည်ပတ်နိုင်သောကြောင့် အမှားအယွင်းများကို ညွှန်ပြပါသည်။ ဥပမာအားဖြင့်၊ FATAL အဆင့်သည် DBMS သို့ ချိတ်ဆက်နိုင်စွမ်းမရှိခြင်းကို ညွှန်ပြသည့် မှတ်တမ်းတစ်ခုအတွက် ဖြစ်လိမ့်မည်။

မေးလ်ဆာဗာ မှတ်တမ်းဖိုင်ကို နေ့စဉ် အပ်ဒိတ်လုပ်သည်။ ဖိုင်၏နောက်ဆုံးဗားရှင်းတွင် Mailbox.log ဟူသောအမည် အမြဲရှိသော်လည်း အချို့သောရက်စွဲများအတွက် မှတ်တမ်းများတွင် အမည်တွင် ရက်စွဲတစ်ခုရှိပြီး မော်ကွန်းတွင် ပါရှိသည်။ ဥပမာ mailbox.log.2020-09-29.tar.gz။ ၎င်းသည် လုပ်ဆောင်ချက်မှတ်တမ်းများကို အရန်သိမ်းဆည်းရန်နှင့် မှတ်တမ်းများမှတစ်ဆင့် ရှာဖွေရန် ပိုမိုလွယ်ကူစေသည်။

စနစ်စီမံခန့်ခွဲသူ၏အဆင်ပြေစေရန်အတွက် /opt/zimbra/log/ ဖိုဒါတွင် အခြားမှတ်တမ်းများပါရှိသည်။ ၎င်းတို့တွင် သီးခြား Zimbra OSE ဒြပ်စင်များနှင့် သက်ဆိုင်သည့် ထည့်သွင်းမှုများသာ ပါဝင်သည်။ ဥပမာအားဖြင့်၊ audit.log တွင် အသုံးပြုသူ စစ်မှန်ကြောင်းအထောက်အထားပြခြင်းဆိုင်ရာ မှတ်တမ်းများသာ ပါ၀င်သည်၊ clamd.log တွင် antivirus ၏ လုပ်ဆောင်မှုဆိုင်ရာ အချက်အလက် စသည်တို့ပါရှိသည်။ စကားမစပ်၊ Zimbra OSE ဆာဗာကို ကျူးကျော်သူများထံမှ ကာကွယ်ရန် အကောင်းဆုံးနည်းလမ်းဖြစ်သည်။ Fail2Ban ကို အသုံးပြု၍ ဆာဗာကာကွယ်မှုaudit.log ကို အခြေခံ၍ အလုပ်လုပ်ပါသည်။ command ကို execute လုပ်ရန် cron task ကိုထည့်ခြင်းသည်လည်း အလေ့အကျင့်ကောင်းတစ်ခုဖြစ်သည်။ grep -ir "မမှန်ကန်သော စကားဝှက်" /opt/zimbra/log/audit.logနေ့စဉ်ဝင်ရောက်မှုမအောင်မြင်သောအချက်အလက်များကိုလက်ခံရရှိရန်။

Zimbra OSE မှတ်တမ်းများနှင့် အလုပ်လုပ်ပုံ
audit.log သည် နှစ်ကြိမ် မှားယွင်းထည့်သွင်းထားသော စကားဝှက်ကို နှစ်ကြိမ် မမှန်မကန် ပြသပုံနှင့် အောင်မြင်သော အကောင့်ဝင်ရန် ကြိုးပမ်းမှု၏ ဥပမာ။

Zimbra OSE တွင် မှတ်တမ်းများ သည် အမျိုးမျိုးသော အရေးကြီးသော ကျရှုံးမှုများ၏ အကြောင်းရင်းများကို ရှာဖွေဖော်ထုတ်ရာတွင် အလွန်အသုံးဝင်ပါသည်။ အရေးကြီးသော အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်သည့်အချိန်တွင် စီမံခန့်ခွဲသူသည် မှတ်တမ်းများကို ဖတ်ရန် အချိန်မရှိပေ။ ဆာဗာကို အမြန်ဆုံး ပြန်လည်ရယူရန် လိုအပ်ပါသည်။ သို့သော်လည်း နောက်ပိုင်းတွင်၊ ဆာဗာသည် အရန်သိမ်းပြီး မှတ်တမ်းများစွာကို ဖန်တီးသောအခါ၊ ဖိုင်ကြီးတစ်ခုတွင် လိုအပ်သော ထည့်သွင်းမှုကို ရှာဖွေရန် ခက်ခဲနိုင်သည်။ အမှားအယွင်းမှတ်တမ်းတစ်ခုကို အမြန်ရှာဖွေနိုင်ရန်၊ ဆာဗာကို ပြန်လည်စတင်သည့်အချိန်ကို သိရှိရန်နှင့် ဤအချိန်မှစ၍ ချိန်းတွေ့ထားသည့် မှတ်တမ်းများတွင် ထည့်သွင်းမှုကို ရှာဖွေရန် လုံလောက်ပါသည်။ ယခင်ထည့်သွင်းမှုသည် ဖြစ်ပွားခဲ့သော အမှား၏မှတ်တမ်းဖြစ်လိမ့်မည်။ FATAL သော့ချက်စာလုံးကို ရှာဖွေခြင်းဖြင့် အမှားသတင်းကို သင်ရှာဖွေနိုင်သည်။

Zimbra OSE မှတ်တမ်းများသည် သင့်အား အရေးကြီးသော မအောင်မြင်မှုများကို ဖော်ထုတ်နိုင်စေပါသည်။ ဥပမာအားဖြင့်၊ handler ခြွင်းချက်များကို ရှာရန်၊ handler ခြွင်းချက်ကို သင်ရှာဖွေနိုင်သည်။ မကြာခဏဆိုသလို၊ ကိုင်တွယ်သူမှထုတ်ပေးသောအမှားများသည် ခြွင်းချက်ဖြစ်ရသည့်အကြောင်းရင်းကို ရှင်းပြသည့် stack trace တစ်ခုဖြင့် ပါသွားပါသည်။ မေးလ်ပေးပို့မှုတွင် အမှားအယွင်းများရှိခဲ့ပါက၊ သင်သည် LmtpServer သော့ချက်စကားလုံးဖြင့် သင်၏ရှာဖွေမှုကို စတင်သင့်ပြီး POP သို့မဟုတ် IMAP ပရိုတိုကောများနှင့် ပတ်သက်သည့် အမှားအယွင်းများကို ရှာဖွေရန် ImapServer နှင့် Pop3Server သော့ချက်စာလုံးများကို သင်အသုံးပြုနိုင်ပါသည်။

မှတ်တမ်းများသည် သတင်းအချက်အလက်လုံခြုံရေးဖြစ်ရပ်များကို စုံစမ်းစစ်ဆေးရာတွင်လည်း အထောက်အကူဖြစ်စေနိုင်ပါသည်။ တိကျသော ဥပမာတစ်ခုကို စဉ်းစားကြည့်ကြပါစို့- စက်တင်ဘာလ ၂၀ ရက်နေ့တွင် ဝန်ထမ်းတစ်ဦးသည် ဗိုင်းရပ်စ်ကူးစက်ခံရသော အီးမေးလ်တစ်စောင်ကို client ထံ ပေးပို့ခဲ့သည်။ ရလဒ်အနေဖြင့် client ၏ ကွန်ပျူတာရှိ ဒေတာကို encrypt လုပ်ထားသည်။ သို့သော် ဝန်ထမ်းက ဘာမှမပို့ခဲ့ကြောင်း ကျိန်ဆိုသည်။ ဖြစ်ရပ်စုံစမ်းစစ်ဆေးမှု၏ တစ်စိတ်တစ်ပိုင်းအနေဖြင့် ကုမ္ပဏီ၏ လုံခြုံရေးဝန်ဆောင်မှုသည် စနစ်စီမံခန့်ခွဲသူအား စုံစမ်းစစ်ဆေးခံနေရသော အသုံးပြုသူနှင့် သက်ဆိုင်သည့် စက်တင်ဘာလ ၂၀ ရက်နေ့အတွက် မေးလ်ဆာဗာမှတ်တမ်းများကို ပေးရန် တောင်းဆိုသည်။ timestamp ကို အသုံးပြု၍ စနစ်စီမံခန့်ခွဲသူသည် သက်ဆိုင်ရာ log ဖိုင်ကို ရှာဖွေပြီး လိုအပ်သော အချက်အလက်များကို ထုတ်ယူကာ လုံခြုံရေးကျွမ်းကျင်သူများထံ ပေးပို့သည်။ ၎င်းတို့သည် မှတ်တမ်းများကို ပြန်လည်သုံးသပ်ပြီး အီးမေးလ်ပေးပို့ခဲ့သော IP လိပ်စာနှင့် ကိုက်ညီကြောင်း တွေ့ရှိသည်။ IP လိပ်စာ အသုံးပြုသူရဲ့ကွန်ပျူတာ။ CCTV မှတ်တမ်းတွေအရ အီးမေးလ်ပို့တဲ့အချိန်မှာ ဝန်ထမ်းဟာ သူ့စားပွဲမှာရှိနေတယ်ဆိုတာ အတည်ပြုနိုင်ခဲ့ပါတယ်။ ဒီအထောက်အထားက သူ့ကို သတင်းအချက်အလက်လုံခြုံရေးစည်းမျဉ်းတွေကို ချိုးဖောက်မှုနဲ့ တရားစွဲဆိုပြီး အလုပ်ထုတ်ဖို့ လုံလောက်ပါတယ်။ 

Zimbra OSE မှတ်တမ်းများနှင့် အလုပ်လုပ်ပုံ
Mailbox.log မှ အကောင့်များထဲမှ အကောင့်တစ်ခုအကြောင်း မှတ်တမ်းများကို သီးခြားဖိုင်တစ်ခုသို့ လော့ဂ်ထုတ်ခြင်း ဥပမာ

ဆာဗာပေါင်းများစွာ အခြေခံအဆောက်အအုံနှင့်ပတ်သက်လာသောအခါ အရာအားလုံးသည် ပိုမိုရှုပ်ထွေးလာသည်။ မှတ်တမ်းများကို ပြည်တွင်းတွင် စုဆောင်းထားသောကြောင့်၊ ဆာဗာပေါင်းများစွာ၏ အခြေခံအဆောက်အဦတွင် ၎င်းတို့နှင့် လုပ်ဆောင်ရန်မှာ အလွန်အဆင်မပြေသောကြောင့် မှတ်တမ်းများစုစည်းမှုကို ဗဟိုချုပ်ကိုင်ရန် လိုအပ်ပါသည်။ မှတ်တမ်းများ စုဆောင်းရန် လက်ခံသူအား သတ်မှတ်ခြင်းဖြင့် ၎င်းကို လုပ်ဆောင်နိုင်သည်။ အခြေခံအဆောက်အဦတွင် သီးခြားအိမ်ရှင်တစ်ခု ထပ်ထည့်ရန် အထူးမလိုအပ်ပါ။ မည်သည့် မေးလ်ဆာဗာသည် မှတ်တမ်းများ စုဆောင်းရန်အတွက် node တစ်ခုအနေဖြင့် လုပ်ဆောင်နိုင်သည်။ ကျွန်ုပ်တို့၏ကိစ္စတွင်၊ ၎င်းသည် Mailstore01 node ဖြစ်လိမ့်မည်။

ဤဆာဗာတွင် ကျွန်ုပ်တို့သည် အောက်ပါ command များကို ရိုက်ထည့်ရန် လိုအပ်သည်-

sudo su – zimbra 
zmcontrol stop
exit
sudo /opt/zimbra/libexec/zmfixperms -e -v

/etc/sysconfig/rsyslog ဖိုင်ကို တည်းဖြတ်ပြီး SYSLOGD_OPTIONS=”-r -c 2″ ကို သတ်မှတ်ပါ။

/etc/rsyslog.conf ကို တည်းဖြတ်ပြီး အောက်ပါစာကြောင်းများကို မှတ်ချက်မပေးဘဲ
$ModLoad imudp
$UDPServerRun 514

အောက်ပါ command များကိုရိုက်ထည့်ပါ။

sudo /etc/init.d/rsyslog stop
sudo /etc/init.d/rsyslog start
sudo su – zimbra
zmcontrol start
exit
sudo /opt/zimbra/libexec/zmloggerinit
sudo /opt/zimbra/bin/zmsshkeygen
sudo /opt/zimbra/bin/zmupdateauthkeys

zmprov gacf | အမိန့်ကို အသုံးပြု၍ အရာအားလုံး အလုပ်လုပ်နေကြောင်း စစ်ဆေးနိုင်သည်။ grep zimbraLogHostname။ အမိန့်ကိုလုပ်ဆောင်ပြီးနောက်၊ မှတ်တမ်းများကိုစုဆောင်းသည့်အိမ်ရှင်အမည်ကိုပြသသင့်သည်။ ၎င်းကိုပြောင်းလဲရန်အတွက်၊ သင်သည် zmprov mcf zimbraLogHostname mailstore01.company.ru အမိန့်ကို ရိုက်ထည့်ရပါမည်။

အခြားအခြေခံအဆောက်အအုံဆာဗာများ (LDAP၊ MTA နှင့် အခြားမေးလ်စတိုးဆိုင်များ) တွင်၊ မှတ်တမ်းများပေးပို့သည့်လက်ခံသူအမည်ကိုကြည့်ရှုရန် zmprov gacf |grep zimbraLogHostname ကို အမိန့်ပေးလိုက်ပါ။ ၎င်းကိုပြောင်းလဲရန်၊ သင်သည် zmprov mcf zimbraLogHostname mailstore01.company.ru အမိန့်ကိုလည်း ထည့်သွင်းနိုင်သည်။

ဆာဗာတစ်ခုစီတွင် အောက်ဖော်ပြပါ command များကို သင်ထည့်သွင်းရပါမည်။

sudo su - zimbra
/opt/zimbra/bin/zmsshkeygen
/opt/zimbra/bin/zmupdateauthkeys
exit
sudo /opt/zimbra/libexec/zmsyslogsetup
sudo service rsyslog restart
sudo su - zimbra
zmcontrol restart

၎င်းပြီးနောက်၊ မှတ်တမ်းများအားလုံးကို အဆင်ပြေစွာကြည့်ရှုနိုင်သည့်နေရာတွင် သင်သတ်မှတ်ထားသော ဆာဗာပေါ်တွင် မှတ်တမ်းတင်ထားမည်ဖြစ်သည်။ ထို့အပြင်၊ Zimbra OSE စီမံခန့်ခွဲသူကွန်ဆိုးလ်တွင်၊ ဆာဗာများ၏အခြေအနေနှင့်ပတ်သက်သည့်အချက်အလက်ပါသောစခရင်ပေါ်တွင်၊ လုပ်ဆောင်နေသော Logger ဝန်ဆောင်မှုကို mailstore01 ဆာဗာအတွက်သာပြသမည်ဖြစ်သည်။

Zimbra OSE မှတ်တမ်းများနှင့် အလုပ်လုပ်ပုံ

စီမံခန့်ခွဲသူတစ်ဦးအတွက် နောက်ထပ်ခေါင်းကိုက်ခြင်းသည် တိကျသောအီးမေးလ်ကို မှတ်သားထားနိုင်သည်။ Zimbra OSE ရှိ အီးမေးလ်များသည် မတူညီသော ဖြစ်ရပ်များစွာကို တစ်ပြိုင်နက်တည်း ဖြတ်သန်းသွားသောကြောင့်၊ လက်ခံခြင်း သို့မဟုတ် ပေးပို့ခြင်းမပြုမီ၊ အက်ဒမင်အတွက်၊ ဗိုင်းရပ်စ်ပိုးမ၀င်မီ၊ antispam စသည်တို့ဖြင့် စကင်န်ဖတ်ခြင်းတွင်၊ အီးမေးလ် မရောက်ပါက မည်သည့်အဆင့်တွင် ခြေရာခံရန် အတော်လေး ပြဿနာရှိနိုင်ပါသည်။ ပျောက်ဆုံးသွားသည် ။

ဤပြဿနာကိုဖြေရှင်းရန်အတွက်၊ သတင်းအချက်အလက်လုံခြုံရေးကျွမ်းကျင်သူ Viktor Dukhovny မှတီထွင်ခဲ့ပြီး Postfix developer များမှအသုံးပြုရန်အကြံပြုထားသည့်အထူး script ကိုသင်အသုံးပြုနိုင်သည်။ ဤ script သည် တိကျသောလုပ်ငန်းစဉ်တစ်ခုအတွက် မှတ်တမ်းများမှ entry များကို ပေါင်းစပ်ပေးပြီး၊ ၎င်းကြောင့်၊ ၎င်းသည် သီးခြားစာတစ်စောင်ပေးပို့ခြင်းနှင့် ဆက်စပ်သော entry အားလုံးကို လျင်မြန်စွာပြသနိုင်စေပါသည်။ ၎င်း၏လုပ်ဆောင်ချက်ကို 8.7 မှစတင်၍ Zimbra OSE ဗားရှင်းအားလုံးတွင် စမ်းသပ်ထားသည်။ ဒါက ဇာတ်ညွှန်းရဲ့ စာသားပါ။

#! /usr/bin/perl

use strict;
use warnings;

# Postfix delivery agents
my @agents = qw(discard error lmtp local pipe smtp virtual);

my $instre = qr{(?x)
	A			# Absolute line start
	(?:S+ s+){3} 		# Timestamp, adjust for other time formats
	S+ s+ 		# Hostname
	(postfix(?:-[^/s]+)?)	# Capture instance name stopping before first '/'
	(?:/S+)*		# Optional non-captured '/'-delimited qualifiers
	/			# Final '/' before the daemon program name
	};

my $cmdpidre = qr{(?x)
	G			# Continue from previous match
	(S+)[(d+)]:s+	# command[pid]:
};

my %smtpd;
my %smtp;
my %transaction;
my $i = 0;
my %seqno;

my %isagent = map { ($_, 1) } @agents;

while (<>) {
	next unless m{$instre}ogc; my $inst = $1;
	next unless m{$cmdpidre}ogc; my $command = $1; my $pid = $2;

	if ($command eq "smtpd") {
		if (m{Gconnect from }gc) {
			# Start new log
			$smtpd{$pid}->{"log"} = $_; next;
		}

		$smtpd{$pid}->{"log"} .= $_;

		if (m{G(w+): client=}gc) {
			# Fresh transaction 
			my $qid = "$inst/$1";
			$smtpd{$pid}->{"qid"} = $qid;
			$transaction{$qid} = $smtpd{$pid}->{"log"};
			$seqno{$qid} = ++$i;
			next;
		}

		my $qid = $smtpd{$pid}->{"qid"};
		$transaction{$qid} .= $_
			if (defined($qid) && exists $transaction{$qid});
		delete $smtpd{$pid} if (m{Gdisconnect from}gc);
		next;
	}

	if ($command eq "pickup") {
		if (m{G(w+): uid=}gc) {
			my $qid = "$inst/$1";
			$transaction{$qid} = $_;
			$seqno{$qid} = ++$i;
		}
		next;
	}

	# bounce(8) logs transaction start after cleanup(8) already logged
	# the message-id, so the cleanup log entry may be first
	#
	if ($command eq "cleanup") {
		next unless (m{G(w+): }gc);
		my $qid = "$inst/$1";
		$transaction{$qid} .= $_;
		$seqno{$qid} = ++$i if (! exists $seqno{$qid});
		next;
	}

	if ($command eq "qmgr") {
		next unless (m{G(w+): }gc);
		my $qid = "$inst/$1";
		if (defined($transaction{$qid})) {
			$transaction{$qid} .= $_;
			if (m{Gremoved$}gc) {
				print delete $transaction{$qid}, "n";
			}
		}
		next;
	}

	# Save pre-delivery messages for smtp(8) and lmtp(8)
	#
	if ($command eq "smtp" || $command eq "lmtp") {
		$smtp{$pid} .= $_;

		if (m{G(w+): to=}gc) {
			my $qid = "$inst/$1";
			if (defined($transaction{$qid})) {
				$transaction{$qid} .= $smtp{$pid};
			}
			delete $smtp{$pid};
		}
		next;
	}

	if ($command eq "bounce") {
		if (m{G(w+): .*? notification: (w+)$}gc) {
			my $qid = "$inst/$1";
			my $newid = "$inst/$2";
			if (defined($transaction{$qid})) {
				$transaction{$qid} .= $_;
			}
			$transaction{$newid} =
				$_ . $transaction{$newid};
			$seqno{$newid} = ++$i if (! exists $seqno{$newid});
		}
		next;
	}

	if ($isagent{$command}) {
		if (m{G(w+): to=}gc) {
			my $qid = "$inst/$1";
			if (defined($transaction{$qid})) {
				$transaction{$qid} .= $_;
			}
		}
		next;
	}
}

# Dump logs of incomplete transactions.
foreach my $qid (sort {$seqno{$a} <=> $seqno{$b}} keys %transaction) {
    print $transaction{$qid}, "n";
}

script ကို Perl ဖြင့်ရေးသားထားပြီး ၎င်းကို run ရန်အတွက် ဖိုင်တစ်ခုတွင် သိမ်းဆည်းထားရန် လိုအပ်သည်။ collate.pl၎င်းကို executable လုပ်ပါ၊ ထို့နောက် သင်ရှာဖွေနေသော စာ၏ သက်သေခံအချက်အလက်ကို ထုတ်ယူရန် pgrep ကို အသုံးပြု၍ မှတ်တမ်းဖိုင်ကို ဖွင့်ပါ။ collate.pl /var/log/zimbra.log | pgrep '<20200929164500.user@mail.company.ru>'. ရလဒ်သည် ဆာဗာပေါ်ရှိ စာများ၏ ရွေ့လျားမှုနှင့်ပတ်သက်သည့် အချက်အလက်ပါရှိသော လိုင်းများ၏ စဉ်ဆက်မပြတ် ထွက်ပေါက်တစ်ခုဖြစ်သည်။

# collate.pl /var/log/zimbra.log | pgrep '<20200929101700.user@mail.company.ru>'
Oct 13 10:17:00 mail postfix/pickup[4089]: 4FF14284F45: uid=1034 from=********
Oct 13 10:17:00 mail postfix/cleanup[26776]: 4FF14284F45: message-id=*******
Oct 13 10:17:00 mail postfix/qmgr[9946]: 4FF14284F45: from=********, size=1387, nrcpt=1 (queue active)
Oct 13 10:17:00 mail postfix/smtp[7516]: Anonymous TLS connection established to mail.*******[168.*.*.4]:25: TLSv1 with cipher ADH-AES256-SHA (256/256 bits)
Oct 13 10:17:00 mail postfix/smtp[7516]: 4FF14284F45: to=*********, relay=mail.*******[168.*.*.4]:25, delay=0.25, delays=0.02/0.02/0.16/0.06, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 878833424CF)
Oct 13 10:17:00 mail postfix/qmgr[9946]: 4FF14284F45: removed
Oct 13 10:17:07 mail postfix/smtpd[21777]: connect from zimbra.******[168.*.*.4]
Oct 13 10:17:07 mail postfix/smtpd[21777]: Anonymous TLS connection established from zimbra.******[168.*.*.4]: TLSv1 with cipher ADH-AES256-SHA (256/256 bits)
Oct 13 10:17:08 mail postfix/smtpd[21777]: 0CB69282F4E: client=zimbra.******[168.*.*.4]
Oct 13 10:17:08 mail postfix/cleanup[26776]: 0CB69282F4E: message-id=zimbra.******
Oct 13 10:17:08 mail postfix/qmgr[9946]: 0CB69282F4E: from=zimbra.******, size=3606, nrcpt=1 (queue active)
Oct 13 10:17:08 mail postfix/virtual[5291]: 0CB69282F4E: to=zimbra.******, orig_to=zimbra.******, relay=virtual, delay=0.03, delays=0.02/0/0/0.01, dsn=2.0.0, status=sent (delivered to maildir)
Oct 13 10:17:08 mail postfix/qmgr[9946]: 0CB69282F4E: removed

Zextras Suite နှင့်သက်ဆိုင်သည့်မေးခွန်းများအားလုံးအတွက်၊ သင်သည် Zextras ကိုယ်စားလှယ် Ekaterina Triandafilidi ကို katerina@zextras.com အီးမေးလ်ဖြင့် ဆက်သွယ်နိုင်ပါသည်။

source: www.habr.com

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster